GEMINI LABJP
VIDEO — Agentic video understanding reached 3.7 Flash, 3.6 Flash, and 3.5 Flash-Lite on September 1. The model navigates the timeline itself rather than sampling frames at a fixed rateTOKENS — Because it pulls transcripts, frames, or audio only when it needs them, Google measures up to 88% fewer tokens on long-form contentSCOPE — It works across both the Interactions and GenerateContent APIs. If you have costed out long-video work before, the assumptions have movedMUSIC — Lyria 3.5 entered public preview on September 3, generating full-length songs at 44.1 kHz stereoCONTROL — Lyria 3.5 accepts text and image inputs, with better musical coherence, more natural vocals, and finer control over duration and structureROBOTICS — gemini-robotics-er-2-streaming-preview is tuned for real-time streaming over the Live API, with function calling that blocks on physical robot actionsVIDEO — Agentic video understanding reached 3.7 Flash, 3.6 Flash, and 3.5 Flash-Lite on September 1. The model navigates the timeline itself rather than sampling frames at a fixed rateTOKENS — Because it pulls transcripts, frames, or audio only when it needs them, Google measures up to 88% fewer tokens on long-form contentSCOPE — It works across both the Interactions and GenerateContent APIs. If you have costed out long-video work before, the assumptions have movedMUSIC — Lyria 3.5 entered public preview on September 3, generating full-length songs at 44.1 kHz stereoCONTROL — Lyria 3.5 accepts text and image inputs, with better musical coherence, more natural vocals, and finer control over duration and structureROBOTICS — gemini-robotics-er-2-streaming-preview is tuned for real-time streaming over the Live API, with function calling that blocks on physical robot actions
Articles/Dev Tools
Dev Tools/2026-08-17Advanced

Your Shipped App Still Remembers the Retired Model

Finishing the server-side migration is only half of a model retirement. The older builds of your app still hold the old model name, and once the cutoff passes, rolling back stops being a recovery option. Here is how I moved model resolution onto the server.

Gemini API234model migration4mobile appsoperations17indie development22

Premium Article

On the morning of the cutoff, every server-side call had already been switched over. I still felt uneasy, and the reason was specific: the older builds of my apps sitting on the App Store and Google Play were still holding the old model name.

The wallpaper apps I run as an indie developer lean on Gemini for image classification and description text. The calls themselves live on the server, but there was a period when early builds carried a client-side config file that said which model backed which feature.

When the preview image models were retired at the end of June, a piece of that leftover surfaced. My server logs showed a thin but steady trickle of requests carrying a model name that, in theory, nobody was sending anymore.

A retirement date is not the day your migration finishes. It is the day your oldest still-supported client stops working. Miss that distinction and your preparation is only half done.

Deploying does not rewrite the binaries already out there

If you only run a web service, model retirement is structurally simple. You deploy, and the next request takes the new path. Nobody walks the old one.

Add a mobile app and that assumption breaks. The binary lives on the user's device, and you have no way to rewrite it. Updates happen on the user's schedule and the store's.

LayerTime until a change takes effectAgainst the cutoff
Server codeImmediately on deployCan be done by the day
Remote configMinutes, or next launchCan still be done on the day
App binaryReview, phased release, user updateWill not be in place by the day

Only the third row is outside your control. The moment you bake a value with an expiry date into that layer, the cutoff stops being yours to manage.

Once I understood that shape, I started peeling proper nouns out of the client config one at a time. The work is unglamorous, but it reads better as a single idea: move values that expire into places you can still edit.

The moment the cutoff passes, rollback stops being recovery

The second thing that is easy to miss is that a retirement date inverts the meaning of a rollback.

During a migration we naturally keep an escape route. Revert the environment variable. Redeploy the previous revision. Halt the phased release so the old build stays put. Normally these are all correct moves.

Past the cutoff, the model at the end of the old path no longer exists. Rolling back is no longer a return to a known-good state; it is choosing a state that is guaranteed to fail. Calls after retirement stop with a hard error rather than a deprecation warning, so there is no window in which this shows up as partial degradation. And in the middle of an incident, that is exactly the button your hand reaches for.

Starting about a week before the date, I began checking three things concretely:

  1. Which point in the deploy history is the first one that resurrects a call to the retired model
  2. Blocking rollbacks past that revision in the deployment settings themselves
  3. Where the "previous app version" left behind by pausing a phased release actually lands when it reaches Gemini

The third one was the awkward one. Pausing an iOS phased release only stops the rollout; people who already updated do not go back, and people who have not updated stay where they are. So the pause neither reverts everyone nor advances everyone. It freezes two populations in place. If the older population's path dies at the cutoff, freezing it prolongs the outage rather than ending it.

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
You will be able to estimate how long a value baked into a shipped binary keeps affecting your operations
You will be able to decide for yourself where the line sits between the client and the server when Gemini API model resolution moves server-side
You will be able to judge, before you press it, whether a rollback across a retirement date is safe
Secure payment via Stripe · Cancel anytime

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Gemini Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • Copy-paste ready implementation code
  • New advanced guides published daily
  • $5/mo or $15 for lifetime access
View Membership →

Related Articles

Dev Tools2026-08-30
Why Shipped Clients Deserve a Refusal, Not a Silent Model Substitution
A model can retire, but the apps already on people's phones cannot. This is how I built a sunset ledger keyed on output contracts, and how I now back-date my own deadline from the version residue curve.
Dev Tools2026-08-28
A twice-daily batch that only ran once — reconstructing run counts from artifacts
One half of a scheduled job silently never fired, and throughput sat at half of plan for over a week without a single error in the logs. Here is how I reconstructed actual run counts from artifacts and backlog, with working code.
Dev Tools2026-08-25
Turning Logging Off in AI Studio Also Turns Off Interactions API Conversation History
When no Gemini API logs show up in AI Studio, the usual culprit is the store default, which is inverted between the two APIs. Here is the side effect that quietly stops conversation history, and how to set store per request so it never surprises you.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links