On October 23, OpenAI retired gpt-4-0613. Code that still asked for it started getting errors that day.
More dates are coming:
| Date | Model | Replacement |
|---|---|---|
| Nov 30, 2026 | claude-sonnet-4-5-20250929 | claude-sonnet-5-5 |
| Dec 11, 2026 | gpt-5-2025-08-07, o3-2025-04-16 | gpt-5.6-sol |
| Jan 14, 2027 | gpt-4o-2024-08-06, gpt-4o-2024-11-20, gpt-4o-mini-2024-07-18, gpt-4.1-2025-04-14, gpt-4.1-mini-2025-04-14 | gpt-6-luna |
| Feb 26, 2027 | whisper-1, gpt-4o-transcribe, gpt-4o-mini-transcribe, gpt-4o-transcribe-diarize | gpt-live-transcribe or gpt-transcribe |
Why this one slips through
Most breaking changes are caught by a compiler, a type checker or a test. A retired model isn't:
- The model ID is a string. Nothing type-checks it.
- It often lives in config: an environment variable, a YAML file, a database row.
- Tests usually mock the LLM call, so they keep passing.
So the first sign is a production error from the provider, the day after the date.
Find the model IDs in your repo
grep -RInoE \ "(gpt-[0-9a-z.\-]+|o[134](-mini)?(-[0-9]{4}-[0-9]{2}-[0-9]{2})?|claude-[a-z0-9.\-]+|whisper-[0-9]|text-embedding-[a-z0-9\-]+|gemini-[a-z0-9.\-]+)" \ --include=*.py --include=*.ts --include=*.js --include=*.go --include=*.java \ --include=*.yml --include=*.yaml --include=*.json --include=*.env* --include=*.toml \ . | grep -v node_modules | sort -u Then check each one against its provider's deprecation page. Also check where your model names come from at runtime: if they're in environment variables or a settings table, grep won't see them.
Make the model name easy to change
A few habits that turn a retirement into a one-line change:
- One constant or setting per use case, not model strings scattered across files.
- Pin dated snapshots on purpose, and write down their retirement date next to them.
- Test the real model name at least once in CI, even if everything else is mocked: a single cheap smoke call catches a retired ID.
The calendar, maintained
We keep the full list at versyka.com/model-retirements, with dates from OpenAI, Anthropic, Google, Mistral, Cohere, AWS Bedrock, Azure, Groq and Together AI. There's also a .ics feed you can add to your calendar. No sign-up.
If you connect a repository, Versyka runs that scan daily and opens a tested pull request that swaps in the replacement model before the date.
