The Lab · AI Tools
Claude Sonnet 4.5 Retires November 30: What to Check Now
Anthropic deprecated Claude Sonnet 4.5 on September 30; API calls to it fail after November 30, 2026.
Each line jumps to its section
- Anthropic deprecated Claude Sonnet 4.5 on September 30, 2026, giving 61 days before retirement
- claude-sonnet-4-5-20250929 stops answering requests after November 30, 2026, no grace period after that date
- The recommended replacement is claude-sonnet-5-5, priced the same and sharing the 1M token context window
- A free Usage export shows exactly which API keys still call the retiring model id
On September 30, 2026, Anthropic posted a deprecation notice for Claude Sonnet 4.5 on its model deprecations page. Anyone calling claude-sonnet-4-5-20250929 by its exact id has until November 30, 2026, to move off it. After that date, requests to that id fail outright. I read the notice the day it posted because a dated model id is exactly the kind of thing that's easy to hardcode into a script once and forget about for months.
What Changed for Claude Sonnet 4.5?
The notice is short and specific. Claude Sonnet 4.5, with the exact id claude-sonnet-4-5-20250929, moved from Active to Deprecated status on September 30. Its retirement date is November 30, 2026, and the documentation names claude-sonnet-5-5 as the recommended replacement. Anthropic's own lifecycle terms matter here: Active means fully supported, Deprecated means still functional but no longer recommended with a retirement date already assigned, and Retired means requests fail. Sonnet 4.5 is sitting in that middle stage right now, which is the stage where migrating still costs you nothing but waiting.
This isn't Anthropic's first deprecation notice, and it won't be the last. Sonnet 4.5 is the sixth model to get one since October 2025, following Claude Opus 4.1 in June and Claude Sonnet 4 and Claude Opus 4 together back in April. Each of those followed the same shape: a deprecation date, a retirement date roughly two months out, and a named replacement. Sixty-one days is actually on the longer side of what I've seen in that history. Anthropic's documentation commits to at least 60 days of notice for any publicly released model, so this one lands right at the minimum plus a day.
What's worth knowing if you've never read this page before: it only covers Anthropic-operated platforms, meaning the Claude API itself, Claude Platform on AWS, and Microsoft Foundry. Amazon Bedrock and Google Cloud set their own retirement schedules for the same model. If you're calling Sonnet 4.5 through Bedrock, the November 30 date on Anthropic's own page doesn't automatically apply to you. Check Bedrock's own model table before you assume the timeline matches.
That split trips people up. I almost assumed one date covered everything the first time I read a deprecation notice, and it doesn't.
The page also lists what happened to older Sonnet models, and the pattern is consistent. Claude Sonnet 3.7 got its notice on October 28, 2025, and was retired February 19, 2026, almost four months later. Claude Sonnet 4 got its notice on April 14, 2026, and was retired June 15, two months out. The gap between notice and retirement moves around, but it's never shorter than that 60-day floor Anthropic has committed to.
Why Does a Dated Model ID Matter If I Use an Alias?
Because the risk here isn't really about Sonnet 4.5 the model. It's about the string claude-sonnet-4-5-20250929 sitting somewhere in a config file, an environment variable, or a line of code that nobody's looked at since the day it was written. Anthropic's model names come in two shapes: a dated snapshot id, which points at one exact model forever, and a rolling alias that automatically follows whichever version is current. claude-sonnet-5-5 is a rolling name. claude-sonnet-4-5-20250929 is frozen in time, which is exactly why it can be deprecated out from under you while an alias quietly keeps working.
I'd guess most people reading a Claude Code changelog aren't the ones who get caught by this. The ones who do are usually running a script that was written once, worked, and never got touched again, the kind of thing you build for yourself and then forget exists until it breaks. That's not a hypothetical for a one-person studio. Small scripts pile up fast when there's nobody else reviewing what you wrote six months ago.
I've seen the same pattern with other pinned settings. An environment variable like ANTHROPIC_DEFAULT_OPUS_MODEL, set once to a dated snapshot and never revisited, behaves exactly the same way: it works right up until the model behind it disappears, and then it fails with no warning that would've helped you see it coming.
The fix costs almost nothing right now.
It gets expensive on December 1 if you wait.
What Should a Solo Builder Check Today?
Start with the audit Anthropic already built for this. The Usage page in Claude Console has an Export button that downloads a CSV broken down by API key and model, so you can see exactly which keys are still calling claude-sonnet-4-5-20250929 without reading through every script by hand. That export is the fastest way to find out if this notice even applies to you before you go searching code for a string you might not actually be using.
If it does apply, the actual swap is small: replace the dated id with claude-sonnet-5-5 wherever it appears. But don't treat that as a find-and-replace you can do blind. I wrote up five specific breaking changes when Sonnet 5.5 shipped on September 28, and at least one of them changes shape instead of throwing an error, which means it can pass a quick test and still behave differently in production. Run whatever you're migrating against real inputs before you trust it, not just a single prompt that happens to work.
Anthropic's own migration guide is worth the ten minutes it takes to read, especially the section on testing changes against your actual workloads before the retirement date rather than after. Sixty-one days sounds like a long runway until you're the person who opens the page on November 29.
A few things I'd check specifically, beyond the swap itself. Any retry or fallback logic that names a model id directly instead of a tier needs the same update, or it'll quietly fall back to a model that's also gone. Any cached prompt or few-shot example tuned around Sonnet 4.5's exact phrasing habits is worth a second look too, since a model swap can shift output style even when the task stays identical. And if you've got the dated id written into a README or a setup script for a tool you hand to someone else, that's the copy most likely to get missed, because nobody runs a setup script twice.
None of this is hard. It's just easy to skip when nothing's broken yet.
What Does Anthropic Promise About Models It Retires?
There's a part of this process that's easy to miss because it's not in the notice itself. Anthropic has a published commitment on model deprecation and preservation that says retired model weights get kept long-term rather than deleted, with the stated goal of eventually making past models accessible again. The same document names the actual downsides plainly: researchers lose access for ongoing comparisons, anyone who values a specific model's exact behavior has to migrate whether they want to or not, and retiring a model carries its own safety and model-welfare questions that Anthropic says it's trying to account for.
I don't have a comparison point from another provider's exact retirement policy to say whether this is generous or just standard practice now. What I can say is that the notice-then-retire structure, with a named replacement and a fixed date instead of a vague future warning, is the kind of thing that makes a solo builder's life easier even when it's mildly annoying in the moment. I know exactly when claude-sonnet-4-5-20250929 stops answering. I don't have to guess, and I don't have to monitor for a silent shutoff with no warning attached. Compare that to a dependency that just vanishes from a package registry with a changelog nobody reads, and a fixed date with 60 days of notice looks like the better deal.
The downsides the document names are real too, and worth reading in full rather than taking my summary of them. Losing access to a specific model mid-project is a genuine cost for anyone running a comparison study across versions, not just an inconvenience. A solo builder usually isn't in that position, but it's a reminder that "deprecated" isn't a neutral word for everyone reading the same notice. For most of us it's a calendar reminder. For someone benchmarking model behavior over time, it's a research dataset quietly losing a data point.
It's also a reminder that this is a cadence, not a one-off. Six notices in just under a year means this page is worth a periodic glance even when nothing's deprecated right now, the same way I'd check a dependency's release notes before assuming an old version still gets patched.
That preservation commitment doesn't mean a retired model keeps answering API calls past its date. It means the weights aren't thrown away, which is a different promise. Don't read "retired" as "temporarily unavailable." On November 30, claude-sonnet-4-5-20250929 stops working for good, full stop, whatever happens to the weights behind the scenes.
Bottom Line
Nothing about this notice is urgent today, and that's exactly the trap. Sixty-one days feels comfortable right up until it's gone. My actual plan: pull the Usage export this week to see if claude-sonnet-4-5-20250929 shows up anywhere in my own API calls, and if it does, swap to claude-sonnet-5-5 and run real inputs through it before I trust the output, not after. If the export comes back clean, I still bookmark the deprecations page, because Sonnet 4.5 won't be the last name to show up on it this year.
If you've never checked whether any of your own code hardcodes a dated model id instead of a rolling alias, this is the week to find out. The export takes two minutes. Finding out on November 30 instead takes a lot longer.
I'll check again closer to the date too, since a list this long doesn't shrink on its own. One glance at the export, once, costs a lot less than a broken script on a morning I'd rather spend on something else.