Every hosted model you can call today has a date after which it will not answer. Most providers publish that date. Six of the thirteen we checked publish no commitment about how much warning you get, and one provider will quietly answer with a different model instead of failing.

That last one is the whole reason to read this before your next deployment.

Almost everywhere, retirement is loud

The normal behaviour is an error. Anthropic: requests past the retirement date fail. Mistral is the most specific — retired identifiers return a 404. Google's Vertex says the endpoint is permanently deactivated. Moonshot returns a 404 meaning "model does not exist". Cohere says requests past the shutdown date will fail, though it never documents the error code. AWS Bedrock says it plainly, and adds the sentence that matters: migration will not happen automatically.

An error is the good outcome. It is loud, it is immediate, and it appears in your logs the moment it happens.

Azure is the exception, and the default is the trap

On Microsoft's platform a deployment carries an upgrade policy. Set it to never auto-upgrade and the deployment simply stops working at the retirement date, like everywhere else.

But the field can be unset, and unset does not mean pinned. Microsoft documents the equivalence directly: a null policy behaves as "upgrade once the current version expires". A deployment nobody configured is not pinned — it is set to be replaced.

And the replacement is not a point release. Microsoft's own worked example has a GPT-4o deployment from a 2024 snapshot upgrading, on its retirement date, to GPT-5.1. Pinning the version string does not save you either: at the retirement date the deployment moves to whatever the default version is by then. Preview deployments are upgraded with no opt-out at all.

So on one major platform, the day your model retires, your application keeps returning 200s and starts returning them from a different model. Nothing in the response says so.

What providers actually promise, which is less than you think

Of thirteen providers, seven publish a quantified minimum notice and six do not.

Mistral publishes the clearest policy: one month for experimental and preview tiers, six months for generally available models, and one month for third-party models. Stating this in advance of any specific model is what makes it a policy, not just a schedule.

Cohere publishes a table but no promise. Its commitment is about the channel of notification, not its duration. Impacted customers "will always be notified via email and in our documentation along with blog posts". ⚠️ A figure of 90 days on the same page is easy to misread; it defines who counts as an existing user, not how much warning anyone gets. The page also says the shutdown date is assigned at deprecation time, which means it is not knowable in advance. In its April 2026 embedding retirement, the announcement and the retirement were the same date.

Meta publishes nothing at all, and for the open weights that is defensible: the community licence grants a worldwide royalty-free right with no clause reserving any power to withdraw it, and the only termination triggers are your own breach or your own litigation. Weights you have downloaded cannot be retired out from under you, and none have been removed from official distribution — every repository we probed is live.

The hosted API is a different story, and it has already gone. The page that documented its sunset now returns an error on its old host and a 404 on its new one, and no archived copy exists anywhere. Meta's stated terms for that shutdown are, on the public record, simply lost.

A commitment is not a constant

Anthropic's published minimum was "at least 6 months" in an archived capture dated 7 August 2025, and "at least 60 days" in a capture dated three days later. Its own deprecation table tracks the change: the two announcements before it ran 181 and 189 days; every one after it has run between 76 and 60. The first announcement that would have fallen short of the older figure came three days after the wording changed.

We are reporting the sequence, which is documented, and not a motive, which is not. The practical reading is the one the numbers support on their own: once a floor is published, the floor becomes the schedule.

OpenAI moved the other way. It had no published minimum until roughly June 2026; the section is absent from seven archived captures across that spring, then present afterwards. The tiers it published then, such as six months for generally available models, simply described what it was already doing.

⚠️ Mistral's table does not match Mistral's policy. One model shows the same date for deprecation and retirement (zero days' notice, against a stated floor of one month), and a cluster of former flagships got 24 to 29 days. The policy page carries no effective date, so we cannot say it was in force when those retirements happened, and we do not claim a breach. The arithmetic is on the provider's own published dates; the inference is not available.

The same model dies on three different days

If you reach a model through a cloud platform, the platform sets the date. Anthropic says so, and Bedrock says it more bluntly: for its own usage, only the dates on its page apply.

The gap is not small. One Claude model retires on the vendor's own API in April 2026, on Vertex in August, and on Bedrock in September — a 143-day spread for the same model id. Another runs to a 156-day spread. A failover path pointed at a second platform can therefore outlive, or predecease, your primary by five months.

Pinning helps less than it should

The standard advice is to pin a dated snapshot instead of a floating alias. It is good advice and it is not sufficient.

Mistral warns that its aliases switch automatically, potentially exposing you to silent changes in behaviour and pricing, yet uses exactly such an alias in its own first-API-request quickstart. Google's quickstart hands you a model that sits in its shortest-lived availability tier, retiring 45 days after a replacement ships, which neither quickstart mentions.

Cohere inverts the risk: it ships no floating alias at all. Its two aliases are bound to dated snapshots, so nothing silently swaps — but both were deprecated on the same day as their targets, so the alias bought no protection either.

Moonshot settles the question. In August 2026 it retired its floating identifiers and its pinned dated snapshots on the same day. Pinning bought nothing at all.

And DeepSeek offers no pinned identifier to buy: its chat endpoint has been repointed through nine successive models, each time under an unchanged name and the phrase "the interface is unchanged" — including, on one occasion, to a model its own documentation labelled experimental.

⚠️ Even a genuinely pinned id is not a promise of identical output. Anthropic's own wording: weights are fixed for a given id, but the serving infrastructure around the model changes, and infrastructure updates can produce minor differences in observable behaviour with the model id and weights unchanged.

Three things that bite before the published date

Throughput can fall from the announcement. Alibaba states that from the day a retirement notice is published, the rate limits on the affected model are progressively reduced. The endpoint keeps working; the capacity does not.

Access can be conditional on recent use — independently, at three providers. Bedrock says existing customers may lose access to legacy models after 15 days of inactivity. Cohere defines an existing user as one who called the model within 90 days of the announcement. Alibaba sends its notices only to accounts with calls in the last three months. An idle failover path can therefore lose its model before any published date, and never be told.

Status pages will not warn you. Retirements are handled as release notes, not incidents. We found none on any status page we checked.

What to do

Read the retirement date from the platform you actually call, not from the model's maker. Set the upgrade policy explicitly if you are on Azure, because the default is not the safe one. Exercise your failover path on a schedule, so it does not go idle into a usage-conditional cutoff. And keep the model id in configuration, not code. The thing you will have to change under pressure is a string.

If you are costing this out, our LLM price comparison and cost calculator both stamp the date their rate card was compiled — for the same reason this guide prints access dates. A price for a model is only as current as the day someone checked it.

Where this comes from, and what will date it

Every provider statement above was read from that provider's own documentation on 2 September 2026, and the two historical claims — Anthropic's changed wording and OpenAI's added section — from dated archive captures. Notice intervals were computed from the providers' own published announcement and retirement dates.

Deliberately excluded: a widely repeated shutdown date for Meta's hosted API, which no primary or archived source we could reach supports; several model identifiers from one vendor whose documentation refuses direct retrieval and came back with two conflicting spellings; and a third-party claim about automatic model switching at a Chinese provider that appears in none of that provider's own documents.

This guide will go out of date faster than anything else we publish, and by design. These pages change weekly, several carry no last-updated date at all, and one provider was observed editing a past deprecation entry in place — changing the recommended replacement model with no changelog. Treat every specific date here as a snapshot of 2 September 2026 and check the provider before acting.