<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Model Radar</title>
    <description>The latest articles on DEV Community by Model Radar (@modeldeprecation).</description>
    <link>https://dev.to/modeldeprecation</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3934417%2Ffe2eafa1-adca-4b6a-850e-43029fd6e6ed.png</url>
      <title>DEV Community: Model Radar</title>
      <link>https://dev.to/modeldeprecation</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/modeldeprecation"/>
    <language>en</language>
    <item>
      <title>LLM providers are retiring models faster than you can migrate</title>
      <dc:creator>Model Radar</dc:creator>
      <pubDate>Sat, 16 May 2026 07:54:14 +0000</pubDate>
      <link>https://dev.to/modeldeprecation/llm-providers-are-retiring-models-faster-than-you-can-migrate-4pj3</link>
      <guid>https://dev.to/modeldeprecation/llm-providers-are-retiring-models-faster-than-you-can-migrate-4pj3</guid>
      <description>&lt;p&gt;On May 15, 2026, xAI retired 8 Grok API models. The notice period was 9 days.&lt;/p&gt;

&lt;p&gt;If you had &lt;code&gt;grok-2&lt;/code&gt;, &lt;code&gt;grok-3&lt;/code&gt;, or &lt;code&gt;grok-4-fast&lt;/code&gt; pinned in production, here's the part that actually bites: the retired slugs don't hard-error. They &lt;strong&gt;silently redirect to &lt;code&gt;grok-4.3&lt;/code&gt;&lt;/strong&gt; — reasoning models drop to &lt;code&gt;low&lt;/code&gt; effort, non-reasoning to &lt;code&gt;none&lt;/code&gt; — and you get billed at grok-4.3 pricing ($1.25 / $2.50 per 1M tokens). xAI's original retirement email said the requests would "no longer work"; a later docs update introduced the silent-redirect behavior. The two are contradictory, and either way your output quality and your bill changed without a single error in your logs.&lt;/p&gt;

&lt;p&gt;This is not an xAI problem. It's the whole industry right now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OpenAI&lt;/strong&gt; removed &lt;code&gt;chatgpt-4o-latest&lt;/code&gt; from the API on Feb 17, 2026. The Assistants API sunsets Aug 26, 2026.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anthropic&lt;/strong&gt; ends Claude Opus 4 and Sonnet 4 on Jun 15, 2026 (Opus 3 already retired Jan 5; Haiku 3 on Apr 19).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google&lt;/strong&gt; can shut off Gemini 2.0 Flash / Flash-Lite as early as Jun 1, 2026; they've been restricted to existing customers since Mar 6.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Pinning model IDs is correct — and it's now a liability
&lt;/h2&gt;

&lt;p&gt;The standard advice is to pin explicit model versions for reproducibility, and that advice is right. A floating alias means your behavior changes silently under you. But a pinned ID means that when the provider retires it, you break — or worse, get silently rerouted. Either way, the failure mode is the same: &lt;strong&gt;something you depend on changed, and nobody told you in a channel you actually watch.&lt;/strong&gt; Provider changelogs are scattered across docs pages, status pages, dashboard banners, and one-off emails to whatever address owns the billing account.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I did about it
&lt;/h2&gt;

&lt;p&gt;I started keeping a normalized, cross-provider timeline of every deprecation / breaking change / pricing change I could verify against provider docs: provider, model, event type, announced date, effective date, recommended replacement, source link.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Timeline: &lt;a href="https://ai-model-change-radar-west0ngs-projects.vercel.app/" rel="noopener noreferrer"&gt;https://ai-model-change-radar-west0ngs-projects.vercel.app/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;RSS: &lt;a href="https://ai-model-change-radar-west0ngs-projects.vercel.app/rss.xml" rel="noopener noreferrer"&gt;https://ai-model-change-radar-west0ngs-projects.vercel.app/rss.xml&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It currently covers OpenAI, Anthropic, Gemini, and xAI. It's manually curated and fact-checked right now — the data is the hard part, not the page. If you spot a missing or wrong event, or a provider you want covered, tell me and I'll add it.&lt;/p&gt;

&lt;p&gt;If you run anything against an LLM API in production, subscribe to the RSS feed or check it before your next deploy. The next 9-day notice is already on the calendar.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>machinelearning</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Your LLM provider will deprecate your model. xAI just gave 9 days' notice.</title>
      <dc:creator>Model Radar</dc:creator>
      <pubDate>Sat, 16 May 2026 07:40:02 +0000</pubDate>
      <link>https://dev.to/modeldeprecation/your-llm-provider-will-deprecate-your-model-xai-just-gave-9-days-notice-1mnn</link>
      <guid>https://dev.to/modeldeprecation/your-llm-provider-will-deprecate-your-model-xai-just-gave-9-days-notice-1mnn</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  xAI: 8 models, ~9 days
&lt;/h2&gt;

&lt;p&gt;Around May 6, 2026, xAI emailed API customers announcing Grok 4.3 and the retirement of &lt;strong&gt;8 models effective May 15, 2026, 12:00 PM PT&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;grok-4-1-fast-reasoning&lt;/code&gt;, &lt;code&gt;grok-4-1-fast-non-reasoning&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;grok-4-fast-reasoning&lt;/code&gt;, &lt;code&gt;grok-4-fast-non-reasoning&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;grok-4-0709&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;grok-code-fast-1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;grok-3&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;grok-imagine-image-pro&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is roughly nine days of notice to find every hard-coded slug in your stack, test a replacement, and ship.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part that actually bites: silent redirect + rebill
&lt;/h2&gt;

&lt;p&gt;The announcement email said requests to the retired models "will no longer work." xAI's migration docs say something different: the old slugs &lt;strong&gt;silently redirect to &lt;code&gt;grok-4.3&lt;/code&gt;&lt;/strong&gt; — reasoning models at &lt;code&gt;low&lt;/code&gt; effort, non-reasoning at &lt;code&gt;none&lt;/code&gt; effort, &lt;code&gt;grok-imagine-image-pro&lt;/code&gt; to &lt;code&gt;grok-imagine-image-quality&lt;/code&gt; — billed at &lt;strong&gt;grok-4.3 pricing ($1.25 / $2.50 per 1M tokens)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;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 + &lt;code&gt;reasoning_effort&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  This is not an xAI problem. It is the new normal.
&lt;/h2&gt;

&lt;p&gt;Same window, other providers, all dated:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Event&lt;/th&gt;
&lt;th&gt;Effective&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;OpenAI&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;chatgpt-4o-latest&lt;/code&gt; snapshot removed from API&lt;/td&gt;
&lt;td&gt;2026-02-17&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenAI&lt;/td&gt;
&lt;td&gt;Assistants / Threads / Runs API sunset&lt;/td&gt;
&lt;td&gt;2026-08-26&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Anthropic&lt;/td&gt;
&lt;td&gt;Claude Opus 3 retired&lt;/td&gt;
&lt;td&gt;2026-01-05&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Anthropic&lt;/td&gt;
&lt;td&gt;Claude Haiku 3 retired&lt;/td&gt;
&lt;td&gt;2026-04-19&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Anthropic&lt;/td&gt;
&lt;td&gt;Claude Opus 4 + Sonnet 4 retired&lt;/td&gt;
&lt;td&gt;2026-06-15&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google&lt;/td&gt;
&lt;td&gt;Gemini 2.0 Flash / Flash-Lite earliest shutdown&lt;/td&gt;
&lt;td&gt;2026-06-01&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;xAI&lt;/td&gt;
&lt;td&gt;8 Grok models retired&lt;/td&gt;
&lt;td&gt;2026-05-15&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;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).&lt;/p&gt;

&lt;h2&gt;
  
  
  What to actually do
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Grep your codebase for every hard-coded model string today.&lt;/li&gt;
&lt;li&gt;Route model IDs through config/env, never inline in business logic.&lt;/li&gt;
&lt;li&gt;Canary the recommended replacement before the cutoff — replacements differ on latency, reasoning depth, tool use, and price.&lt;/li&gt;
&lt;li&gt;Subscribe to &lt;em&gt;something&lt;/em&gt; that watches provider lifecycle events so the deadline finds you before prod does.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;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:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://ai-model-change-radar-west0ngs-projects.vercel.app/" rel="noopener noreferrer"&gt;https://ai-model-change-radar-west0ngs-projects.vercel.app/&lt;/a&gt;&lt;/strong&gt; — RSS: &lt;strong&gt;&lt;a href="https://ai-model-change-radar-west0ngs-projects.vercel.app/rss.xml" rel="noopener noreferrer"&gt;https://ai-model-change-radar-west0ngs-projects.vercel.app/rss.xml&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It deliberately does &lt;em&gt;not&lt;/em&gt; 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.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>api</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
