Claude 3 Haiku has three retirement dates.
Anthropic's own API stopped serving it on 20 April 2026. Google's Vertex catalog shuts it down on 23 August 2026. Amazon Bedrock's end-of-life date is 10 September 2026.
One named model, three calendars, and 143 days between the first date and the last. None of the three is wrong.
We pulled every lifecycle notice we track on 27 August 2026 and cross-checked each printed date against the provider's own live page, not just our feed.
The pattern that survived is narrower and more useful than "deprecation is messy": the retirement date is a property of the route, not the model.
Claude 3 Haiku has three retirement dates, not one
Anthropic notified developers on 19 February 2026 and retired claude-3-haiku-20240307 on 20 April 2026, on its own model deprecations page.
Amazon's Bedrock model lifecycle page carries the same model as anthropic.claude-3-haiku-20240307-v1:0. It went Legacy on 10 March 2026, its public extended access period opened on 10 June 2026, and its end-of-life date is 10 September 2026. Both the commercial and us-gov region rows carry identical dates.
Google's partner-model deprecations page lists it a third way. Model ID claude-3-haiku, deprecated as of 23 February 2026, shut down on 23 August 2026, and in the meantime "available to existing customers only."
| Route | Model ID as that route spells it | Notice | Retires |
|---|---|---|---|
| Anthropic API | claude-3-haiku-20240307 |
2026-02-19 | 2026-04-20 |
| Google Vertex | claude-3-haiku |
2026-02-23 | 2026-08-23 |
| Amazon Bedrock | anthropic.claude-3-haiku-20240307-v1:0 |
Legacy 2026-03-10 | 2026-09-10 |
Read the gaps rather than the dates. First-party to Vertex is 125 days. Vertex to Bedrock is 18. First to last is 143.
That 143 does not grow when you add Vertex, because Vertex lands between the other two rather than outside them. We are pointing that out because the tempting version of this article inflates the spread every time it finds a new route, and the honest version does not. Adding a third receipt made the story wider, not longer.
Azure Foundry is the fourth route, and it is the one that does not appear at all. We searched its retirement schedule and its catalog navigation for claude-3-haiku and found nothing. That is a genuine absence, not a missing date, and the distinction matters enough that we carry two different dashes in the table further down.
Opus 4.1 has two dates and a pricing tier between them
Claude Opus 4.1 is the cleaner case for what a spread costs you, because the split is two-way rather than three-way and one side of it has money attached.
Anthropic notified developers on 5 June 2026 and retired claude-opus-4-1-20250805 on 5 August 2026, pointing at Claude Opus 4.8. Microsoft's 27 August Azure Foundry retirement snapshot shows claude-opus-4-1 as Retired on exactly the same calendar day, 5 August 2026, replacement claude-opus-5. Two routes, one date, no drama.
Bedrock is the third route and it disagrees by 156 days. anthropic.claude-opus-4-1-20250805-v1:0 went Legacy on 8 July 2026 and its end-of-life date is 8 January 2027.
So a team on Bedrock still had a working Opus 4.1 endpoint on the day the model's own maker had already stopped serving it, and will still have one for five months after that. Longer is not automatically better here, and the reason is a third date on the same row.
Bedrock publishes a public extended access start date for this model: 8 October 2026. AWS's own description of what that means is the sentence to read twice. Active users of a Legacy model can keep calling it until end-of-life, "but you should expect higher pricing, which will be set by the model provider."
Then the same section hedges its own hedge. When a model first enters Legacy, AWS says it will notify customers of the transition date and of "pricing changes (if any)."
Both halves are on the page. AWS commits to a warning about a price change without committing that every model gets one, and it explicitly hands the number to the provider rather than setting it. No receipt we found gives an actual dollar figure for Opus 4.1 in extended access, on AWS's page or anywhere else, so we are not printing one. A specific number would be the single most quotable sentence in this article and we do not have it.
What we can say is structural: 8 October 2026 is a budget event with no published price, sitting three months before an availability event, on a route whose customers may never have read Anthropic's announcement because Anthropic's announcement was not addressed to them.
Sometimes it is a date against silence
Divergence is not always two dates against each other. Sometimes it is a date against nothing.
Google's first-party Gemini API deprecations page lists gemini-2.5-pro, released 17 June 2025, with a shutdown column reading "No shutdown date announced." Only the preview snapshots on that page carry dates.
Google's own Vertex page lists the same model, same 17 June 2025 release date, with a firm retirement date of 20 October 2026 and a recommended upgrade to Gemini 3.5 Flash.
One vendor, one model ID, one release date, two pages, and the enterprise customer is the one holding the deadline. The developer on the free-tier API surface sees open-ended availability for the same model ID.
Every route is running its own clock
Four platforms, four published commitments, and not one of them is phrased relative to another.
AWS states it directly on the page that carries the dates: "For Amazon Bedrock usage, only the dates on this page apply." Its floor is measured from its own launch, not the provider's: a model "will remain on Amazon Bedrock for at least 12 months before the EOL date," and once demoted it stays in Legacy "for at least 6 months."
Microsoft's clock is fixed at Azure's general availability, not the model maker's: the "Retirement date (18 months out) is set programmatically and available via the Models API." Microsoft also reserves an override, stating it "reserves the right to invoke an emergency retirement with shortened notice" for compliance or security problems.
Google's Vertex commitment runs from Vertex's own release: models on its long-support list "will be available for at least 12 months after initial release." Vertex adds a directional guarantee the others do not: "retirement timelines may be extended, they won't be moved to an earlier date."
Anthropic, as the model's actual maker, commits to notice rather than lifespan: "at least 60 days' notice before model retirement for publicly released models."
| Route | What the clock is measured from | Stated floor |
|---|---|---|
| Amazon Bedrock | Bedrock launch for that model | 12 months on-platform, 6 months in Legacy |
| Azure Foundry | Azure general availability | 18 months, set programmatically |
| Google Vertex | Vertex release for that model | 12 months, extendable, never pulled earlier |
| Anthropic API | The retirement announcement | 60 days' notice |
Stack those and the divergence stops looking like anyone's failure. A model that launches on Bedrock six months after it launches on the first-party API inherits a Bedrock clock that starts six months late, and Bedrock's floor keeps it alive accordingly. Nobody is being slow. Each platform is honouring a promise it made to its own customers about its own catalog.
That also means the spread is not a bug anyone at these companies is going to fix. It is the arithmetic of four independent commitments landing on the same named model.
Not every route punishes you for it, either. xAI's May 2026 retirement notice is the counterexample: requests to the retired model slugs "will automatically redirect" to a current model rather than failing, so callers who missed the date got a different model instead of an error. Bedrock is explicit that it does not work that way. "Migration will not happen automatically."
Who this bites
Three scenarios. Each is constructed from the receipted mechanics above rather than from a support ticket we have seen, and we are labelling them as scenarios for that reason.
Scenario one: the pinned model ID. A team hardcodes claude-3-haiku-20240307 and treats the pin as the safety measure. Against Bedrock that buys them until 10 September 2026. The identical reasoning applied to Anthropic's API expired on 20 April 2026. The pin froze the model version, which was the easy half. It did not freeze the calendar, and the two teams that made the same decision are 143 days apart on when it stops working.
Scenario two: the silent extension. A team on Bedrock reads "8 January 2027" and files it. Nothing breaks on 8 October 2026. They are moved into public extended access instead, on a route where AWS has told them to expect higher pricing set by the model provider, and where AWS's own commitment is to notify customers of a pricing change rather than to hold the price. Availability was never the risk on this route. The invoice was.
Scenario three: no date, no runway. A developer builds on gemini-2.5-pro through the first-party API, sees "No shutdown date announced," and plans accordingly. Their colleague running the same model through Vertex has 20 October 2026 in a spreadsheet. Neither of them is misreading their own documentation. They are reading two documents, and only one of them contains a deadline.
Carelessness is not the common failure here. Every one of these teams checked exactly one page, and the page they checked was correct.
The table needs two kinds of dash
Everything below was read off the platform's own page on 27 August 2026 and cross-checked against our feed.
| Model | First-party | Bedrock | Vertex | Azure Foundry | Spread |
|---|---|---|---|---|---|
| Claude Opus 4.1 | 2026-08-05 | 2027-01-08 | no date | 2026-08-05 | 156 days |
| Claude 3 Haiku | 2026-04-20 | 2026-09-10 | 2026-08-23 | not offered | 143 days |
| Claude Sonnet 4 | 2026-06-15 | 2026-10-14 | no date | not offered | 121 days |
GPT-4o (2024-05-13) |
2026-10-23 | not offered | not offered | 2026-10-01 | 22 days |
GPT-5 (2025-08-07) |
2026-12-11 ‡ | not offered | not offered | 2027-02-09 | ~60 days |
| Grok 3 | 2026-05-15 | not offered | not offered | 2026-05-01 | 14 days |
| Grok 4 Fast (Reasoning) | 2026-05-15 | not offered | not offered | 2026-05-01 | 14 days |
| Gemini 2.0 Flash | no sooner than 2026-06-01 † | not offered | 2026-06-01 | not offered | 0 days |
| Gemini 2.5 Pro | no date | not offered | 2026-10-20 | not offered | not computable |
text-embedding-004 |
no sooner than 2026-01-14 † | not offered | 2027-04-01 | not offered | 442 days |
not offered means we checked what that platform publishes — its catalog and documentation, or in Bedrock's case its lifecycle and end-of-life page plus this data pull — and the model is absent entirely. no date means the model is offered there, but no retirement date for it appeared on that platform's own deprecations page during this pull. Those two cells are not interchangeable, and collapsing them into one dash is how a table starts lying.
† marks a floor rather than a scheduled date. Our feed classifies those items as earliest-possible, so they read as "no sooner than" and never as a countdown.
‡ GPT-5's first-party row carries a hedge in our own classification, not in OpenAI's. OpenAI's deprecations page states 11 December 2026 plainly, with no qualifying language around it. We label the item approximate; OpenAI does not. Current rates for the replacement rows are on our OpenAI API pricing page.
Three rows deserve a second look.
text-embedding-004 is the widest spread we verified anywhere: 442 days between Google's first-party floor of 14 January 2026 and Vertex's exact date of 1 April 2027. While re-checking it we found the two Google pages also disagree about when the model was released, 9 April 2024 against 14 May 2024. A 35-day gap on a birthday, on the same vendor's own documentation, for the same model ID.
Gemini 2.0 Flash is the opposite case and the more subtle one. Both routes publish 1 June 2026. They do not agree on how firm that is: our feed reads the first-party item as a floor and the Vertex item as exact. Same number, different promise.
GPT and Grok rows show what a normal spread looks like when only two routes exist. Fourteen days on Grok, twenty-two on GPT-4o. Small enough to survive by accident, large enough to fail a Friday deploy.
Our own tracker is missing one of the three
The tool we built to catch this misses part of the case study this article is built on, and the reason is the article's own thesis.
Our lifecycle feed publishes a routeDivergences array that groups the same model's notices across routes and reports the spread. For Claude 3 Haiku it reports 143 days across exactly two routes, first-party and Bedrock. The Vertex notice is in the same response, in the unfiltered item list, carrying 23 August 2026. It is not in the divergence group.
Narrowly, the observable difference is spelling. Anthropic and AWS both carry the dated suffix, claude-3-haiku-20240307 and anthropic.claude-3-haiku-20240307-v1:0, wrapped differently but dated identically, and the grouping handles that pair correctly. It handles the Opus 4.1 pair correctly for the same reason. Vertex spells the model claude-3-haiku, with no date suffix at all, so there is nothing for the dated pair to match it against.
We are keeping that claim narrow. Our normalization is not broken in general: the grouping demonstrably works across differently-wrapped identifiers when both carry a date. What it does not survive is a route that drops the date from the name entirely.
We will also say what we have not explained. Our OpenAI first-party coverage in this pull holds six items, all from one section of OpenAI's deprecations page. An entire earlier section of that same page, which publishes a first-party date of 23 October 2026 for gpt-4o-2024-05-13, does not appear in our items at all. We confirmed the date on OpenAI's page directly, which is why it is in the table above. We have not established why it is absent from the feed, and we are not going to attach it to the Haiku spelling story to make one tidy explanation out of two different gaps.
A tracker that undercounts route divergence because model identities diverge across routes is not an embarrassing coincidence. It is the same finding, arriving from the other side.
How we checked
Every date printed above was fetched from the platform's own live page during a single session on 27 August 2026, then cross-checked against our own public lifecycle feed at radar.benchlm.ai, which reported 367 items and 11 divergence groups at fetch time, and reported itself complete rather than truncated.
Where the two disagreed, the provider page won and the disagreement got written down. Three of those disagreements are in this article: the Haiku grouping, the GPT-4o absence, and the GPT-5 hedge label.
Two rules govern how the dates render. Items our feed classifies as earliest-possible or approximate are floors, so they appear as "no sooner than" and never as a deadline. And the timestamp on when we first observed a notice is never printed as the date the provider announced it, because those are different facts and only one of them is the provider's.
Radar runs this collection across 20 providers, each named on its coverage panel. It is a collector rather than a newsletter for the same reason the table above has two kinds of dash: a model's presence or absence in a catalog is an observable fact about an API, and a date on a page is an observable fact about a page. What either one means for your deployment is an editorial judgment, and we would rather hand you the first and let you make the second.
Our OpenAI Codex deprecation piece covers the other half of this problem: what happens when the notice window itself is the failure, rather than the number of calendars.
Don't learn about a retirement from your error logs. Track up to five models free — Radar emails you 90, 30 and 7 days before each date you track.
Watch the distance between the earliest date on a model's row and the latest, rather than the earliest by itself, because that gap is how long your organisation can hold two contradictory beliefs about the same model and have both of them be correct.
Reader questions
Frequently asked questions
01Do Bedrock and the model provider retire a model on the same date?
Often not. Anthropic retired claude-opus-4-1-20250805 on 5 August 2026; Amazon Bedrock lists end-of-life for the same model version on 8 January 2027, 156 days later. AWS states plainly that for Amazon Bedrock usage, only the dates on its own lifecycle page apply. Check the route you call, not the provider announcement.
02When does Claude Opus 4.1 retire on Amazon Bedrock?
Bedrock's published end-of-life date for anthropic.claude-opus-4-1-20250805-v1:0 is 8 January 2027. It entered the Legacy state on 8 July 2026, and its public extended access start date is 8 October 2026. AWS says active users can keep calling a Legacy model until end-of-life, but should expect higher pricing set by the model provider.
03Which retirement date applies to my application?
The one published by the platform your requests actually reach. A team calling Anthropic's API directly, a team calling Bedrock, and a team calling Vertex are on three separate clocks for the same named model. Anthropic's date does not bind AWS, and AWS's date does not bind Google.
04Does Amazon Bedrock migrate my application automatically when a model retires?
No. AWS states that migration will not happen automatically, and that you need to update your application code before the end-of-life date. Bedrock exposes each model's state through the modelLifecycle field in its API response, so the check can be scripted rather than diarised.
Source ledger
External sources linked in this article
- 01model deprecations pageplatform.claude.com
- 02Bedrock model lifecycle pagedocs.aws.amazon.com
- 03partner-model deprecations pagedocs.cloud.google.com
- 0427 August Azure Foundry retirement snapshotgithub.com
- 05Gemini API deprecations pageai.google.dev
- 06May 2026 retirement noticedocs.x.ai
- 07deprecations pagedevelopers.openai.com
Continue with live BenchLM data
Share or save
