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:

  1. One constant or setting per use case, not model strings scattered across files.
  2. Pin dated snapshots on purpose, and write down their retirement date next to them.
  3. 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.