What Google changed on October 8
The October 8 release notes deprecate two models. gemini-3.7-flash is replaced by gemini-3.8-flash, and gemini-3.5-flash is replaced by gemini-3.6-flash. Both are no longer selectable in Google AI Studio, and API requests to the old names are routed automatically to the replacement.1 The deprecation table says the same thing in other words: the endpoint is not shutting down, and it routes to the replacement.2
So there is no error and no 404, and no shutdown date to put in a calendar. Your code still sends gemini-3.7-flash, and a different model answers.
| You send | Google routes it to | Source |
|---|---|---|
gemini-3.7-flash | gemini-3.8-flash | Release notes, Oct 81 |
gemini-3.5-flash | gemini-3.6-flash | Release notes, Oct 81 |
gemini-3.8-flash as an alternative to 3.6.Google's 3.7 Flash guide now carries a deprecation caution at the top and describes the model as automatically routed to 3.8 Flash.3
Detect which model answered
Treat the model string in your code as a request, not as evidence. Three places can tell you what was served.
- The response. Log the model identifier your SDK returns next to the one you sent, and alert when they differ. The pages read here do not say whether a redirected response reports the requested or the served id, so test it with a few calls first. If it echoes your request, this check cannot see the redirect.
- Your gateway or request log. A log that records the model per request lets you group by it. INFRO's request log records the model, the selected connection, timings, usage and estimated provider cost, and
GET /v1/requestscan sort by slowest or costliest.4 - Behaviour. If ids are ambiguous, the redirect shows up as a step change in output tokens per request and in latency at the same timestamp.
import logging
log = logging.getLogger("llm.model")
def check_served(requested: str, response) -> None:
served = getattr(response, "model", None)
if served is None:
log.warning("no model id on response; requested=%s", requested)
elif served != requested:
log.warning("model differs: requested=%s served=%s", requested, served)On INFRO, the traffic-changes finding "model answered by a new snapshot" fires when a model id the provider had not reported in the previous 14 days carries at least 20% of today's successful requests and at least 50 of them. It is evaluated per provider connection and needs 7 days of reported ids first.5 It works from the ids the provider reports, so it shares the caveat above. It reads request metadata and not answers, so it cannot say whether quality changed.5
What shifts when the redirect lands
Output length. Google says Gemini 3.8 Flash can use more tokens on longer, complex tasks by design: it takes smaller reasoning steps, calls tools iteratively and verifies its work. Its advice is to lower the reasoning effort for everyday tasks, or to use 3.6 Flash, which remains supported.6 The default thinking level is medium.6 INFRO's output-tokens signal fires on a rise of at least 15% and at least 20 tokens.5
Latency. More reasoning and more tool calls usually mean longer responses, though no latency figures were confirmed for this article. INFRO flags p95 latency or time to first token up at least 25% and at least 300 ms for two days running.5 Check your timeouts and streaming deadlines against the new numbers.
Cost. Rates are the provider's list rates, billed by Google to your account. 3.6 Flash is listed at $1.50 per 1M input tokens and $7.50 per 1M output tokens, against $9.00 output for 3.5 Flash.7 3.8 Flash is $0.75 and $3.75 through December 31, 2026, then $1.50 and $7.50 from January 1, 2027.6
Parameters. Google's 3.6 guide says its models require removing the deprecated sampling parameters (temperature, top_p, top_k) and prefilled model turns.7 The pages read do not say how the redirect treats a request that still sends them, so check your error rate and test one call that does.
Pin a replacement or ride the redirect
Riding the redirect is fine for low-risk traffic: drafts, internal tools, anything without a strict schema or a latency budget. Pin when any of these is true:
- The output feeds a parser or a structured-output schema.
- You have a p95 or time-to-first-token budget.
- A cost forecast assumed the old model's tokens per request.
- You need the same model in staging and production.
- You want a change to happen when you approve it, not when Google moves a name.
Pinning means naming the replacement yourself: gemini-3.6-flash for 3.5 Flash traffic, gemini-3.8-flash or 3.6 Flash for 3.7 Flash traffic. Run the same prompts on both, compare output tokens, latency and your own quality checks, then switch. Pinning a model name does not freeze it forever; see alias versus snapshot for what a name can still do, and the price-step article before you forecast January.
