Skip to content
Guides17 min read

Gemini 2.5 Deprecated: Your Dec 1 Migration Checklist

Md Badsha
Platform Engineer
3 Nov 2026Updated 9 Nov 2026
On this page
Gemini 2.5 Deprecated: Your Dec 1 Migration Checklist

TL;DR — Checked 3 November 2026: Google deprecated gemini-2.5-pro and gemini-2.5-flash on 2 November 2026. From 1 December 2026, Pro requests automatically route to gemini-3.8-flash and Flash requests to gemini-3.5-flash-lite, billed at the new models' rates — nothing errors, your traffic just runs on a different model. The safe move is to change the model string yourself this month, fix four breaking API changes, and re-run your evals: the reroute is price-neutral for Flash users but halves the direct cost for Pro users until 3.8 Flash's intro price ends on 31 December 2026.

What exactly did Google announce about Gemini 2.5?#

Google deprecated both stable Gemini 2.5 models on 2 November 2026, and the change is already visible: neither model can be selected in Google AI Studio any more, and API access is limited to existing users who have actively used them in the past. From 1 December 2026, every API request to gemini-2.5-pro automatically routes to gemini-3.8-flash, and every request to gemini-2.5-flash automatically routes to gemini-3.5-flash-lite, billed at the replacement model's rates. Google's deprecations page carries a caution box for each model saying exactly this, and points developers to the migration guides before 1 December. One model is explicitly untouched: gemini-2.5-flash-lite is not deprecated and remains available until further notice, so if that is the string in your config, this post does not apply to you.

This is also a reversal worth knowing about. In mid-October 2026, Google staff on the official developer forum told users the 2.5 models were "not deprecated" and would "continue to be served until further notice," while access was quietly limited to prior users. Teams that read that message and planned around it now have four weeks. The lesson generalises: a model that is "not deprecated" but closed to new users is already on its way out, and the time to pin a migration plan is when access narrows, not when the deprecation lands.

What happens on December 1 if I change nothing?#

Your calls keep returning 200s, and that is precisely the danger. Nothing fails at the switch: the old model strings keep working, but the model behind them changes, along with its defaults, its pricing, and its parameter rules. A Pro workload that relied on Pro-level reasoning silently becomes a Flash workload, and a Flash workload silently becomes a Lite workload — a smaller, cheaper model tuned for high-volume tasks. If you have latency budgets, quality evals, or cost alerts calibrated to the old model, all three drift at once with no error to catch it. Google's own advice in the deprecation notice is to review the breaking changes before 1 December, not after, because after that date you are debugging a model you did not choose.

Your current model stringFrom 1 December 2026 it runs onBilled at
gemini-2.5-progemini-3.8-flashGemini 3.8 Flash rates
gemini-2.5-flashgemini-3.5-flash-liteGemini 3.5 Flash-Lite rates
gemini-2.5-flash-liteUnchanged — not deprecatedGemini 2.5 Flash-Lite rates

Prices checked 3 November 2026. The reroute is a Google Gemini API behaviour; if you call Gemini through Vertex AI, check your console separately — Google Cloud's model-versions page lists its own 2.5 retirement date and says nothing about routing, so Vertex callers should not assume the same reroute applies.

What breaks when the reroute happens?#

Four API changes break old code, and all four are documented in Google's Gemini 3.8 migration guide rather than in the deprecation notice itself — which is why teams that only read the notice miss them. First, thinking control changes shape: thinking_budget (a number) becomes thinking_level, a string enum of low, medium, or high, with medium as the default; minimal is not supported on 3.8 Flash and returns an error. Second, sampling parameters are removed: temperature, top_p, and top_k are deprecated on Gemini 3 models, and candidate_count is unsupported entirely — requests that set them will not behave as before. Third, prefilled model turns are gone: multi-turn conversations must use server-side previous_interaction_id, and a conversation whose last turn is a model turn errors on Gemini 3.x. Fourth, function calling gets stricter: on the generateContent API every FunctionResponse must include call_id and name, and pre-tool text that used to pass can now surface as Malformed_Function_Call errors.

Old pattern (2.5)New pattern (3.x)If you skip it
thinking_budget: 1024thinking_level: "medium" (or low / high)Error (minimal also errors on 3.8 Flash)
temperature, top_p, top_kRemove themSilently ignored or rejected behaviour
candidate_countRemove itUnsupported on Gemini 3 and later
Prefilled model turnsServer-side previous_interaction_id400-style turn-validation errors
FunctionResponse without call_id/nameInclude both on generateContentMalformed_Function_Call errors

One more thing to audit: thought signatures. Gemini 3 models require signature preservation across turns for thinking to work correctly, so if your code drops or regenerates thought blocks between turns, fix that in the same pass — Google's migration guide lists it under baseline Gemini 3 requirements. And if you use grounding, re-check the pricing structure too: 2.5-era grounding was 1,500 free requests per day then $35 per 1,000 grounded prompts, while Gemini 3.x grounding is 5,000 free search requests a month shared across Gemini 3 and newer models, then $14 per 1,000, subject to a 1,500-per-day cap.

What does the migration cost?#

Here is the honest answer, computed from Google's own pricing page and tokens.bd's catalog, both checked 3 November 2026. The session below is 1 million input tokens plus 100,000 output tokens — a heavy agentic session — converted at 124.35 BDT per USD (exchange-rates.org, 3 November 2026). For Pro users the reroute is a gift with an expiry date: direct 3.8 Flash costs $1.13 per session against $2.25 for 2.5 Pro, a 50% cut — but only while the intro price lasts through 31 December 2026, after which 3.8 Flash costs $2.25 per session, exactly what Pro cost. For Flash users the reroute is price-neutral: 2.5 Flash and 3.5 Flash-Lite both cost $0.55 per session direct. The expensive trap is doing nothing and assuming the reroute is also cheaper on every route: on tokens.bd, 3.8 Flash costs $2.68 per session, more than Google's direct intro price, because a gateway charges for BDT payment, a single key, and no international card — not for cheaper Gemini.

RoutePrice per 1M in / outHeavy session (1M in + 100K out)In BDT
2.5 Pro direct (prompts ≤200K)$1.25 / $10.00$2.25≈৳280
3.8 Flash direct, intro (to 31 Dec 2026)$0.75 / $3.75$1.13≈৳140
3.8 Flash direct, standard (from 1 Jan 2027)$1.50 / $7.50$2.25≈৳280
2.5 Flash direct$0.30 / $2.50$0.55≈৳68
3.5 Flash-Lite direct$0.30 / $2.50$0.55≈৳68
2.5 Flash-Lite direct (not deprecated)$0.10 / $0.40$0.14≈৳17
3.8 Flash via tokens.bd$1.80 / $8.75$2.68≈৳333
3.7 Flash via tokens.bd$1.80 / $9.00$2.70≈৳336

Prices checked 3 November 2026. Two footnotes matter. First, 2.5 Pro prompts over 200K tokens cost $2.50/$15.00, a $4.00 (≈৳497) session — for those workloads the reroute to intro-priced 3.8 Flash cuts the session by about 72%. Second, thinking tokens are billed as output on Gemini, so a high thinking_level on 3.8 Flash inflates the output side of the session; Google itself notes 3.8 Flash uses more tokens on long, complex tasks by design and suggests dropping to low for everyday work.

Bar chart of heavy-session costs checked 3 November 2026: 2.5 Pro direct $2.25, 3.8 Flash direct intro $1.13, 3.8 Flash direct standard $2.25, 2.5 Flash and 3.5 Flash-Lite $0.55 each, tokens.bd 3.8 Flash $2.68

Which replacement should I pick?#

The official reroute is the default answer, not necessarily the best one. For Pro users doing coding, agents, or long-horizon work, gemini-3.8-flash is the right test: it is Google's most intelligent Flash model, built for exactly that work, with a 1M-token context and 64K max output, and its intro price makes the test cheap until 31 December. For Flash users running high-volume, latency-sensitive work, gemini-3.5-flash-lite is the faithful successor — same $0.55 session, tuned for translation, simple data processing, and agentic volume. If neither feels right, gemini-3.6-flash remains supported as a middle step, and gemini-2.5-flash-lite stays available for the smallest, cheapest tier at $0.14 a session. Only after testing the Gemini replacements should you look sideways: on tokens.bd, a heavy session costs $0.15 (≈৳19) on Claude Haiku 5.5, $0.21 (≈৳26) on GPT-6 Luna, $0.38 (≈৳47) on DeepSeek V4.1 Flash 1017, and $0.23 (≈৳28) on GLM-5.3 Flash — all cheaper than any Gemini route, but all different models with different strengths, so treat them as candidates to eval, not drop-in substitutes.

  1. Staying on Gemini, coding or agents: gemini-3.8-flash — test first, watch the 31 December intro expiry.
  2. Staying on Gemini, high volume or latency-sensitive: gemini-3.5-flash-lite — same price as 2.5 Flash, built for volume.
  3. Cheapest Gemini tier, unchanged: gemini-2.5-flash-lite — not deprecated, $0.14 a heavy session.
  4. Cheapest session on tokens.bd, any provider: Claude Haiku 5.5 at $0.15 — eval it before switching providers.
  5. Do not do: let the 1 December reroute choose for you, or assume the reroute model matches the old model's quality.

Diagram of the 1 December 2026 Gemini reroutes: gemini-2.5-pro routes to gemini-3.8-flash and gemini-2.5-flash routes to gemini-3.5-flash-lite, while gemini-2.5-flash-lite stays unchanged

The 4-week migration checklist#

Week 1 is an audit, and it starts with a single search across every repo, config file, and prompt registry you own. The pattern below finds the two affected strings while skipping flash-lite and preview IDs, which need different handling. Expect to find the strings in places you forgot: CI environment variables, mobile app bundles, serverless configs, notebook cells, and hardcoded fallbacks in error handlers. Log every hit with its owner before changing anything, because the change itself is small and the blast radius is the part that surprises people. While you are in there, also search for thinking_budget, temperature, top_p, top_k, and candidate_count in the same files — the parameter fixes ship in the same change as the model string, not as a follow-up.

bash
# Find every affected model string (skips flash-lite and preview IDs)
grep -rnE 'gemini-2\.5-(pro|flash)([^-a-z0-9.]|$)' .

Week 2 is the code change, and it is deliberately boring: swap the model string, convert the thinking parameter, delete the removed parameters, and fix function-call payloads. The Python diff below shows the shape of it; the same four edits apply in every SDK. Change one service at a time behind a config flag if you can, so a bad eval result rolls back with a variable change rather than a redeploy. Keep the old string in a comment for one release cycle with the date it stops meaning what it used to mean — future you will thank present you when someone greps the history in January.

python
# BEFORE (Gemini 2.5)
response = client.models.generate_content(
    model="gemini-2.5-pro",
    contents=prompt,
    config={"thinking_budget": 1024, "temperature": 0.7, "top_p": 0.9},
)

# AFTER (Gemini 3.8 Flash)
response = client.models.generate_content(
    model="gemini-3.8-flash",
    contents=prompt,
    config={"thinking_level": "medium"},  # low / medium / high; minimal errors
)

Week 3 is evals, and it is the week most teams skip and most regret skipping. Re-run the same prompt set against the old model and the new model side by side, on the same week, before the reroute forces the comparison on you. Measure three things: output quality on your hardest prompts, not your easiest; token usage, because 3.8 Flash reasons in smaller steps and can use more tokens on complex tasks; and tool-call reliability, because the stricter function-calling rules are where silent breakage hides. If quality drops on a specific prompt class, try thinking_level: "high" for that class before concluding the new model is worse — the default medium is a balance, not a ceiling. Record the results next to the old model's numbers; in January, when someone asks why the bill changed, that record is the answer.

Week 4 is rollout and monitoring: ship the new string to production before 1 December, on a day you choose, with billing alerts set for the new model's rates. Watch the first week of invoices line by line — the reroute billing change is exactly the kind of thing that looks right in aggregate and wrong per workload. Set a second calendar reminder for 31 December 2026: that is when 3.8 Flash's intro price ends and the standard $1.50/$7.50 rate begins, doubling the session cost back to $2.25. If your budget was built on the intro price, re-forecast in December, not in January when the invoice arrives.

Timeline of Gemini migration deadlines: 3 November 2026 post checked, 17 November 2026 preview model shutdowns, 1 December 2026 automatic reroutes, 31 December 2026 end of 3.8 Flash intro pricing, 1 January 2027 standard 3.8 Flash pricing

What about Vertex AI, AI Studio, and the November 17 shutdowns?#

AI Studio is the simplest case: the 2.5 models are already gone from the model picker, so any new experiment starts on a 3.x model whether you planned it or not. Vertex AI is the case that needs a separate check: this post covers the Gemini API, and Google Cloud's model-versions page lists its own 2.5 retirement date of 20 October 2026 with no mention of routing, according to secondary reporting of that page. If you call Gemini through Vertex, open your console and confirm your project's dates and replacements rather than assuming the 1 December Gemini API reroute covers you. And do not let 1 December eclipse 17 November: five preview models shut down two weeks earlier with no reroute at all — the Live API previews (gemini-3.1-flash-live-preview, gemini-2.5-flash-native-audio-preview-12-2025) move to gemini-3.8-live, and the TTS previews (gemini-2.5-flash-preview-tts, gemini-2.5-pro-preview-tts, gemini-3.1-flash-tts-preview) move to gemini-3.8-flash-tts or gemini-3.8-flash-lite-tts. Those endpoints turn off; they do not redirect.

What if I use Gemini through tokens.bd?#

Good news first: tokens.bd never carried the 2.5 models, so no tokens.bd key breaks on 1 December — the catalog already lists Gemini 3.7 Flash and 3.8 Flash. The migration for a tokens.bd user is a one-line model-id change to google/gemini-3.8-flash (or google/gemini-3.7-flash if you want the older 3.x model) through the same https://tokens.bd/v1 base URL and the same key, with BDT payment instead of an international card. The honest pricing note is that tokens.bd's 3.8 Flash at $1.80/$8.75 per million tokens costs more per session ($2.68) than Google's direct intro price ($1.13) — the gateway's value is one key across 60+ models, BDT payment, and per-key spend caps, not a cheaper Gemini bill. If your workload is Gemini-only and you can pay Google directly, direct is cheaper until the intro ends; if you need BDT payment or you mix providers, the gateway math is the whole catalog's, not one model's. Either way, change the string before December: a gateway cannot shield you from a model change you never made.

python
# tokens.bd: same base URL, new Gemini model id
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://tokens.bd/v1",
    api_key=os.environ["TOKENS_API_KEY"],
)
response = client.chat.completions.create(
    model="google/gemini-3.8-flash",  # was gemini-2.5-pro / gemini-2.5-flash direct
    messages=[{"role": "user", "content": "Summarise this release note."}],
)

FAQ#

Is Gemini 2.5 shutting down on 1 December 2026? Not quite — it is rerouting. From 1 December 2026, Gemini API requests to gemini-2.5-pro run on gemini-3.8-flash and requests to gemini-2.5-flash run on gemini-3.5-flash-lite, billed at the new rates. The endpoint is not turned off on that date; the model behind it changes. That is why "do nothing" is a real option with real consequences rather than an outage.

What happens if I change nothing? Your calls keep succeeding, but on a different model with different defaults, different parameter rules, and different billing. Pro workloads become Flash workloads; Flash workloads become Lite workloads. Quality, latency, and cost all drift without an error to alert you. Change the string yourself so you choose the date and can test before and after.

Can a new project still start on Gemini 2.5? No. The 2.5 models are no longer selectable in Google AI Studio, and API access is limited to users who have actively used them before — new keys and new projects get a "no longer available to new users" response. New projects should start on gemini-3.8-flash or gemini-3.5-flash-lite directly.

Is Gemini 2.5 Flash-Lite affected? No. gemini-2.5-flash-lite is explicitly not deprecated and remains available until further notice at $0.10/$0.40 per million tokens — a $0.14 heavy session, the cheapest Gemini route in this post. Do not bulk-replace it in your audit; the grep pattern in the checklist skips it on purpose.

Should I switch to 3.8 Flash, 3.5 Flash-Lite, or something else? Follow the reroute first, then eval: 3.8 Flash for coding and agents, 3.5 Flash-Lite for high-volume work, and 2.5 Flash-Lite if you are already on it. If you are open to switching providers, eval Claude Haiku 5.5 ($0.15 a heavy session on tokens.bd), GPT-6 Luna ($0.21), or GLM-5.3 Flash ($0.23) — but eval them; a cheaper session on a weaker model for your workload is not a saving.

Sources#

See also: Gemini API Pricing 2026: Every Model, Free Tier, Cost

Was this page helpful?

Still stuck? Open a support ticket

Use the coding models you already know, through one API

One key for OpenAI- and Anthropic-compatible tools. Pay in BDT or USD, and keep the coding agent you already use.

Create an account

Follow us for more articles