If your app has a hard-coded model ID, you are one provider email away from a production incident. Here is what just happened, and why it keeps happening.
xAI: 8 models, ~9 days
Around May 6, 2026, xAI emailed API customers announcing Grok 4.3 and the retirement of 8 models effective May 15, 2026, 12:00 PM PT:
-
grok-4-1-fast-reasoning,grok-4-1-fast-non-reasoning -
grok-4-fast-reasoning,grok-4-fast-non-reasoning grok-4-0709grok-code-fast-1grok-3grok-imagine-image-pro
That is roughly nine days of notice to find every hard-coded slug in your stack, test a replacement, and ship.
The part that actually bites: silent redirect + rebill
The announcement email said requests to the retired models "will no longer work." xAI's migration docs say something different: the old slugs silently redirect to grok-4.3 — reasoning models at low effort, non-reasoning at none effort, grok-imagine-image-pro to grok-imagine-image-quality — billed at grok-4.3 pricing ($1.25 / $2.50 per 1M tokens).
Read that again. Depending on which source is current, your app either (a) starts throwing errors, or (b) keeps "working" while silently changing the underlying model, its reasoning behavior, and your per-token price — with no exception, no log line, nothing. Both outcomes are bad. The only safe move is to migrate off the slugs entirely and pin explicit model + reasoning_effort.
This is not an xAI problem. It is the new normal.
Same window, other providers, all dated:
| Provider | Event | Effective |
|---|---|---|
| OpenAI |
chatgpt-4o-latest snapshot removed from API |
2026-02-17 |
| OpenAI | Assistants / Threads / Runs API sunset | 2026-08-26 |
| Anthropic | Claude Opus 3 retired | 2026-01-05 |
| Anthropic | Claude Haiku 3 retired | 2026-04-19 |
| Anthropic | Claude Opus 4 + Sonnet 4 retired | 2026-06-15 |
| Gemini 2.0 Flash / Flash-Lite earliest shutdown | 2026-06-01 | |
| xAI | 8 Grok models retired | 2026-05-15 |
Model names are not stable infrastructure anymore. They are dated, expiring identifiers, and the notice window is shrinking (OpenAI's Feb retirements were ~2 weeks; xAI's was ~9 days).
What to actually do
- Grep your codebase for every hard-coded model string today.
- Route model IDs through config/env, never inline in business logic.
- Canary the recommended replacement before the cutoff — replacements differ on latency, reasoning depth, tool use, and price.
- Subscribe to something that watches provider lifecycle events so the deadline finds you before prod does.
For #4 I got tired of finding out from a 500, so I keep a single normalized cross-provider timeline — provider, model, event type, announced date, effective date, recommended replacement, source link — with an RSS feed, free and no signup:
https://ai-model-change-radar-west0ngs-projects.vercel.app/ — RSS: https://ai-model-change-radar-west0ngs-projects.vercel.app/rss.xml
It deliberately does not track your bill or benchmark model quality. It answers exactly one question: "did something change that will break or reprice the models I depend on?" If it is missing a provider or event you care about, that feedback is the most useful thing you can send.
Top comments (0)