If you have code calling OpenAI, Anthropic or Gemini on Vertex AI, several dates in the next three months will break some of it. Here's what's going, the gotchas we hit while checking our own code, and a two-minute way to see if you're affected.
What's switching off
| Date | What | Provider's replacement |
|---|---|---|
| 20 Oct 2026 | Gemini 2.5 Pro, Flash and Flash-Lite on Vertex AI only (not deprecated on the Gemini API) | See Google's Vertex AI model versions page |
| 23 Oct 2026 | Older OpenAI snapshots only: o1, o3-mini, o4-mini, gpt-3.5-turbo, gpt-4, gpt-4-turbo, gpt-4.1-nano, gpt-4o-2024-05-13 (plus gpt-image-1 and some fine-tunes; see OpenAI's deprecations page) |
gpt-5.6-luna (for 4.1-nano), gpt-5.6-sol (o1, o3-mini, gpt-4, gpt-4-turbo, gpt-4o-2024-05-13), gpt-5.6-terra (gpt-3.5-turbo, o4-mini) |
| 30 Nov 2026 |
claude-sonnet-4-5-20250929 (Anthropic's own platforms; Bedrock and Vertex set their own dates) |
claude-sonnet-5-5 |
| 6 Jan 2027 | Last day existing OpenAI customers can start new fine-tuning jobs | n/a |
| 14 Jan 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, and fine-tunes built on them
|
gpt-6-luna |
On the shutdown date, requests to those IDs fail. In a queue or cron job, that can look like silence until somebody notices the backlog.
Check your repo in two minutes
rg -n --hidden -g '!node_modules' -g '!.git' \
-e 'gpt-4' -e 'gpt-3\.5' -e 'o1' -e 'o3-mini' -e 'o4-mini' \
-e 'claude-sonnet-4-5' -e 'gemini-2\.5' -e 'ft:gpt' .
Expect some noise from short patterns like o1. Check config files, .env.example, seed data, test fixtures and docs, not just code. Then look for the model being chosen at runtime (OPENAI_MODEL, MODEL_NAME and so on) and check the live values in each environment.
Five gotchas
-
Undated names are still on the list.
gpt-4owith no date currently resolves togpt-4o-2024-08-06, which shuts down on 14 Jan. OpenAI can re-point it, but don't assume the undated name keeps you safe. -
An empty
shutdown_datedoesn't mean you're safe. OpenAI says to watch theshutdown_datefield onGET /v1/models, but it can benull, so check the deprecations page as well. -
A name-only swap can 400. In our own API checks,
gpt-6-lunarejectedmax_tokenswith HTTP 400 (usemax_completion_tokens, ormax_output_tokenson the Responses API). Chat Completions calls with function tools also neededreasoning_effort: "none". -
Ship parameter changes and the model switch together. In our tests the old models rejected
reasoning_effortand the new one needed it, so a "settings first, model later" rollout breaks one way or the other. - Fine-tunes have no direct successor. They shut down with their base model. If you rely on one, decide what replaces it before 6 Jan, when new fine-tuning jobs stop.
Once you've found the calls, run 10 to 20 real prompts against the old and new models while the old one still works, and diff the outputs. JSON field names and classifier buckets drift without any error.
Disclosure: I'm at Burnt & Toast, and we built Last Orders, a free open-source CLI that does the
rgstep properly (aliases, env vars, fine-tunes) and flags the calls whose parameters will break. Install it withpipx install lastorders, then runlastorders scan .. There's also a GitHub Action (burntandtoast/lastorders@v0.4.6). Source: github.com/burntandtoast/lastorders. The free scan tells you which calls will break. If you want them rewritten for you, there's a paid automatic fix at £179 per repo including VAT, one-off.
Top comments (0)