Back to Blog
Engineering

The Model Deprecation Calendar: What Retires Between June and October 2026

Saad KadriApril 15, 20265 min read

While auditing our catalog on April 25, 2026 we pulled every provider's deprecation schedule. Six widely-used model IDs across Anthropic and Google are scheduled for shutdown in the next six months. If your application hard-codes any of them, the calls will start returning 404 on the date listed. If your application talks to Consilium, our alias map redirects each retired ID to a live equivalent — but you should still know what is moving.

The calendar

DateProviderModel IDAliased forward to
Jun 1, 2026Googlegemini-2.0-flashgemini-3-flash-preview
Jun 1, 2026Googlegemini-2.0-flash-litegemini-3.1-flash-lite-preview
Jun 15, 2026Anthropicclaude-sonnet-4-20250514claude-sonnet-4-6
Jun 15, 2026Anthropicclaude-opus-4-20250514claude-opus-4-6
Jun 17, 2026Googlegemini-2.5-progemini-3.1-pro-preview
Jun 17, 2026Googlegemini-2.5-flashgemini-3-flash-preview
Jul 22, 2026Googlegemini-2.5-flash-litegemini-3.1-flash-lite-preview
Oct 2, 2026Googlegemini-2.5-flash-imagegemini-3.1-flash-image-preview

Sourced from Anthropic deprecations and Gemini deprecations as of April 25, 2026.

Already gone

One model in our previous catalog was already retired before the audit ran: gemini-3-pro-preview shut down on March 9, 2026 — about seven weeks before we caught it. The replacement target Google specifies is gemini-3.1-pro-preview, which is what our catalog now points to. Anyone who hit the old ID between March 9 and our April 25 update would have seen a 404 on the upstream call. (We didn't list it as a default, which is the only reason the impact was small.)

How aliasing keeps debates working

Every entry in the calendar above has a key in our MODEL_ALIASES map (apps/agents/src/shared/config/models.py). When a debate request arrives with one of these IDs — usually from a script someone wrote a year ago, or a debate session we replay from history — the resolver substitutes the live target before the agent class is constructed. The user's configured model is preserved in the session record so the substitution is auditable, but the actual upstream call uses an ID that responds.

The tradeoff: alias targets must themselves stay live. We deliberately do not point an alias at any model with its own retirement date inside the calendar window. So gemini-2.5-pro (retiring Jun 17) is not aliased to gemini-2.5-flash (also retiring Jun 17) — both go directly to the 3.x preview line. Same logic for claude-sonnet-4-20250514 claude-sonnet-4-6 (skipping claude-sonnet-4-5, which has its own future risk).

What you should do if you hard-code IDs

  • Search your code for any of the eight legacy IDs above and replace them with the alias target on the right. Do not wait for the retirement date — preview IDs have shorter notice windows, and the migration is mechanical.
  • If you call Consilium, you don't need to do anything — but it's still cleaner to migrate so the substitution is visible in your code, not invisible in our resolver.
  • For Gemini specifically: do not move from gemini-2.0-flash to gemini-2.5-flash. Both retire in June. Move straight to gemini-3-flash-preview.

Why we re-audit

Provider deprecation schedules don't arrive in a feed we can subscribe to. The shutdown dates land on documentation pages we have to fetch and re-read. We re-audit on a calendar (next run: end of May, just before the June 1 cluster) and commit the diff back to the catalog. The audit doc is in the repo at docs/design/model-freshness-2026-04.md with the verbatim source URLs for every row above.