Skip to main content
Radar

Every change to the models you run, with its source and its date. Releases, price changes, retirements, API changes, and incidents.Every change to the models you run, with its source.

Follow model changes
BenchLM Researchdeprecation

Deprecated means flagged, not broken

Deprecated means still working, stop building on it. Five AI providers spell that state five different ways, and on Microsoft Foundry the docs and the API use the word to mean opposite things.

A thick redacted ink bar on ash ledger paper, its right half crossed by a diagonal cobalt strike with a cobalt pool at the pivot
Published
Last reviewed
Data as of
Reading time
13 min
External sources
1
Tags: deprecation, model-lifecycle, openai, anthropicData and scoring methodology
In this article7 sections

In conventional software usage and most vendor documentation, deprecated means a feature or model still works, but you are told to stop using it. Microsoft's Foundry API is the exception: there, Deprecated means retired and no longer serving inference.

Open a general dictionary, though, and the software sense is missing entirely.

Cambridge Dictionary's entry for deprecate offers disapproval and nothing else: "to not approve of something or say that you do not approve of something." No computing sense. Nothing about a thing that still answers your requests.

So the most load-bearing word in every model-retirement notice you will read this year is one the everyday dictionary defines differently, and one that five AI providers do not spell the same way. We read all five against the three software definitions that got there first, fetched on 31 August 2026 and re-verified on 4 September.

Deprecated, legacy, EOL and retired are four different states

Four words get used as though they were interchangeable. What separates them is whether your next call returns a response or an error, which is not a subtle difference at three in the morning.

Legacy is the earliest warning and the quietest one. OpenAI applies it to models and endpoints that "no longer receive updates," then says where that road goes: "a legacy model or endpoint will be deprecated at some point in the future." Anthropic's wording for the same stage is close enough to be a paraphrase.

In the conventional vocabulary, Deprecated is the middle state, and the one people misread. Anthropic's definition runs to nine words: "The model is still functional but no longer recommended." Functional. Your code runs.

EOL and retired are the end of the line. AWS says of a model past its end-of-life date that "requests made to this version will fail." Microsoft Foundry, formerly Azure AI Foundry, names the failure exactly: "All inference requests return 410 Gone."

Table 1
Word Who uses it this way What your call does today
Legacy OpenAI, Anthropic, AWS Bedrock Works. No further updates
Deprecated OpenAI, Anthropic, Microsoft Foundry, Google for partner models Works. New deployments may be blocked
Deprecating Microsoft Foundry's API only Works. Same state the docs call Deprecated
EOL AWS Bedrock Fails after the date
Retired, shut down, sunset Anthropic, OpenAI, Microsoft Foundry Fails
Obsolete MDN used it, then abolished it Not a stage in any vocabulary we checked

OpenAI collapses two of those terminal words deliberately, using sunset and shut down interchangeably for one event. Nobody's vocabulary here is wrong. Five providers publish six vocabularies between them, and your migration calendar has to read all six.

The everyday dictionary does not know the software meaning

Cambridge's example sentence is a budget complaint: "We deprecate this use of company funds for political purposes." A reader who only knows that sense will not guess that a deprecated endpoint keeps answering. Those two meanings have drifted far enough apart that a mainstream dictionary does not carry the technical one at all.

Go back further and the word gets stranger. Etymonline dates deprecate to the 1620s, from Latin deprecari, "to pray (something) away," built from de "away" and precari "to pray." You deprecated a plague. By the 1640s it had shifted to expressing disapproval, and that is where the general dictionary left it.

We are not going to draw a line from Roman prayer to Java annotations, because there isn't one to draw. The etymology is a good joke about a word that now amounts to a polite request that you stop, and nothing more than that. Software borrowed a disapproval word and attached a schedule to it.

Java, MDN and the IETF have already settled this

Java's @Deprecated annotation is the most-cited formal statement of the term in software, and Oracle's current documentation for Java 21 still opens the same way: "A program element annotated @Deprecated is one that programmers are discouraged from using." Discouraged. Not blocked, not removed.

Java also splits deprecation into two flavours, which is the detail most explainers skip. The annotation carries a forRemoval boolean. Set it true and the docs say it "indicates intent to remove the annotated program element in a future version." Set it false and use is discouraged with no specific intent to remove it. One language's own tooling therefore holds two different deprecations: one with a stated removal intent, one without.

MDN's definition covers the web platform rather than a language, and lands in the same place. A deprecated technology is one "used to mark an API or technology that is no longer recommended," which might be removed later or might be kept indefinitely for compatibility.

MDN also did something the AI providers have not. It abolished a word. Its writing guidelines state that "the distinction between obsolete and deprecated is not very helpful," and instruct MDN's own contributors to remove or replace every instance of obsolete they find. Mozilla looked at a two-word taxonomy, decided the second word earned nothing, and deleted it.

Then there is the formal spec, which surprises people who assume this is all convention. IETF RFC 9745, "The Deprecation HTTP Response Header Field," is Standards Track, published March 2025, and it defines the concept for any web resource. Its cleanest sentence is the one this whole article rests on: "The act of deprecation does not change any behavior of the resource."

Twelve words, from the IETF, settling the question that costs teams the most confusion. Deprecation is an announcement about the future. It is not an event in the present.

Five AI providers do not agree on what the word means

Now take that settled definition to the model catalogs, where it stops being settled.

Every provider below publishes a lifecycle vocabulary. Each one names the same underlying reality: a model that still answers, that you should stop building on, that will eventually stop answering. Not one of them names it the same way.

Table 2
Provider The still-works-but-stop stage The terminal stage Stated minimum notice
OpenAI Legacy, then Deprecated Shut down, or sunset 6 months GA, 3 months for specialized variants, about 2 weeks for previews
Anthropic Legacy, then Deprecated Retired 60 days
AWS Bedrock Legacy EOL 6 months in Legacy, 12 months on the platform
Microsoft Foundry Legacy (optional), then Deprecated Retired, 410 Gone 60 days GA, 30 days preview
Google, first-party Gemini No such stage A single retirement date Not stated on these pages
Google, partner models Deprecated Shut down Not stated on these pages

Read the second column first. OpenAI and Anthropic both reach "deprecated" through a preliminary "legacy" stage, so the same model can be described two different ways by the same vendor depending on how far along it is. Microsoft adds an optional legacy stage on top of a five-stage ladder. AWS has three states and never reaches the word at all.

AWS deserves its own paragraph, carefully scoped. On Amazon Bedrock's model-lifecycle documentation, the page that defines what happens to a model over time, the word deprecated does not appear as a lifecycle term. AWS uses Legacy for the stage every other provider here calls deprecated. Its notification language is about that state rather than about a label: "We will notify you when a model provider moves a model to the Legacy state." We are scoping that claim to one page. Amazon has a very large documentation estate and we have not read all of it.

AWS is also the only provider in this set whose still-working stage can cost you money. A Bedrock model in Legacy enters a public extended access period before its EOL date, and AWS states plainly what that means for the bill: "you should expect higher pricing, which will be set by the model provider." Deprecation as a price change, not only as a date.

Read the notice column next, because it is where the vocabulary gets expensive. OpenAI's floors run from six months for generally available models down to a preview tier that "may be retired with much shorter notice, such as 2 weeks." Anthropic commits to "at least 60 days' notice before model retirement for publicly released models." Microsoft splits the same commitment by stage, in a notifications table of its own: "At least 60 days before retirement" for generally available models, "At least 30 days before retirement" for previews. Six months, sixty days, two weeks. All of them are called notice, and all of them attach to the same word.

Microsoft's docs and Microsoft's API mean opposite things

Here is the sharpest example of the problem, and it lives inside one company's own documentation.

Microsoft Foundry publishes five lifecycle stages: Preview, Generally Available, Legacy, Deprecated and Retired. Its docs define Deprecated as a working-but-closed state, where "Existing customers can continue to create and manage deployments" while the model is "No longer available to new customers." Retired means removed from service. Clear enough, and consistent with everyone else.

Then you query the API, and the words move. Microsoft says so itself, in a single line that should be printed on a card: "The API uses different terminology than the docs and portal."

Table 3
What is actually true of the model Docs and portal call it API lifecycleStatus reports
Works, new customers blocked Deprecated Deprecating
Gone, requests return 410 Retired Deprecated

Read the second row twice. In Microsoft's API, lifecycleStatus: "Deprecated" does not mean what the same company's docs mean by Deprecated. Microsoft's own wording: "The API value 'Deprecated' means the model is retired and no longer serves inference." The four values the field can hold are Preview, GenerallyAvailable, Deprecating and Deprecated, and the last one is the tombstone rather than the warning.

A monitoring script that treats the API's Deprecated as a heads-up is reading a shutdown notice as a save-the-date. A dashboard that maps the API value onto the docs vocabulary will show teams a model in gentle decline when the endpoint has already stopped serving. Both failures are silent, and both are the kind of thing you find out about from a 410 rather than from an alert.

Our own deprecations page for the Foundry route carries the retirement dates and the notice policy for that platform. It does not carry this mapping. We checked before writing this section, which is why the mapping is here in prose rather than behind a link, and the gap is ours rather than Microsoft's.

Google does not deprecate its own models

Google supplies the last vocabulary, and it supplies two of them.

Google's Gemini Enterprise Agent Platform (formerly Vertex AI) documents lifecycle stages for first-party Gemini and embedding models with no deprecated stage in them. There is a release, there is a retirement date, and there is nothing named in between. The only softening is directional: retirement timelines can move, but "they won't be moved to an earlier date than what is listed."

Vertex AI is no longer the current product name, though Google still uses it on that product's own page to orient people who knew it by the old one. Both names point at the same catalog.

Now open the partner-model page on the same platform, and the missing word reappears. Google's page for third-party models "lists deprecated MaaS models and their shutdown dates," and each entry carries the two-stage shape Microsoft uses: a deprecation date, a later shutdown date, and existing-customers-only access in between. Claude 3 Haiku on Google Cloud is the worked example, "deprecated as of February 23, 2026" and shut down on August 23, 2026, "available to existing customers only" for the six months between.

One platform. Two vocabularies. Which one applies to you depends on who built the model you happen to be calling.

That split is the whole argument of this article in a single company. The word does not describe a technical state. It describes a policy, and policies are written per catalog, per platform, per legal department.

What to do when your model is deprecated

Deprecation is not an outage. Deprecation is the budget you have been given to avoid one, and the mistake teams make is filing the email rather than spending the budget.

  • Find the date for your route, not the announcement. Anthropic "provides a recommended replacement and assigns a retirement date" for its own API. That date does not bind Bedrock, Microsoft Foundry or Google, each of which publishes its own. We traced one model carrying three different retirement dates at once, because the date belongs to the route rather than to the model.
  • Grep for hard-coded model IDs. Every pinned ID in a config file or a prompt template is a dated liability. A pin freezes the model version, which was never the part that expires.
  • Check what the API actually said. If you are scripting a lifecycle check against Microsoft Foundry, map Deprecating to your warning state and Deprecated to your alarm state, not the other way round.
  • Count the days, then book the work. From announcement to shutdown is the whole migration window, and it is sometimes far shorter than the published floor suggests. We wrote up the case where that gap was the entire story: the shutdown of OpenAI's original Codex API.

Every date we track sits on one page: AI model deprecations, in one calendar, each row carrying the receipt it came from. Our model pages for individual IDs, such as Claude Opus 4.8, keep the identity and the current numbers together, which is where most people start when a notice lands and they need to know what they are actually running.

Radar collects those notices across 20 providers, each named on its coverage panel.

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.

The conventional definition is not the hard part. The software sources and provider documentation above agree that deprecated means flagged and working, and the IETF has written it into a standard. What none of them agree on is which word marks that state on which platform, so the useful question is never "what does deprecated mean." It is "what does this vendor's word mean, on the route my requests actually take, before which date."

Reader questions

Frequently asked questions

01What does deprecated mean in software?

In standard software usage, it means a function, endpoint or API still runs, but its maintainers want you to move away from it. Microsoft's Foundry API is a documented exception: its `Deprecated` lifecycle value means the model is already retired.

02What is the meaning of deprecated in software?

Deprecated means flagged, not broken: the feature still works today, its maintainers have said it will be removed, and new code should not depend on it. The Java, MDN and IETF definitions all carry that same two-part meaning, still available and discouraged.

03What does it mean to deprecate software?

To deprecate a feature, endpoint or model is to announce its retirement while keeping it running. The announcement opens a notice period; the removal comes at the retirement, shutdown or end-of-life date. Deprecating is the warning, retiring is the removal.

04What is the difference between deprecated and retired?

In conventional software and provider documentation, deprecated labels a working thing; retired means it no longer works. Anthropic makes that split explicit. Microsoft's Foundry API is the exception: its `Deprecated` status means retired, and retired inference requests return `410 Gone`.

05Is deprecated the same as obsolete?

Increasingly, yes. MDN removed the split from its own style guide, calling the distinction between obsolete and deprecated unhelpful, and instructs its writers to replace obsolete with deprecated wherever they find it. No major AI provider we checked uses obsolete as a lifecycle stage at all.

06What should I do when a model I use is deprecated?

Find the shutdown date for the exact route you call, not the one the model's maker announced, then grep your codebase for the hard-coded model ID. Deprecation is the notice period. Treat it as your migration budget and book the work while the old endpoint still answers.

Source ledger

External sources linked in this article

1
  1. 01RFC 9745

Share or save

Share on XShare on LinkedIn

Keep reading

All research

Choose the right model before an expensive mistake. One weekly recommendation: what to choose, what costs less, and what is not worth switching to.

Read a sample issue

Join 2,000+ readers.