Claude Sonnet 4.5 retires on November 30, 2026: how to move off it
Updated November 4, 2026

On this page
When it stops working, by platform
Anthropic deprecated claude-sonnet-4-5-20250929 on September 30, 2026 and retires it on the Claude API on November 30, 2026. The recommended replacement is claude-sonnet-5-5. Once a model is retired, requests to it fail (Claude deprecations page).
That date covers the platforms Anthropic operates: the Claude API, Claude Platform on AWS, Claude Models on Google Cloud (Anthropic managed) and Microsoft Foundry. Amazon Bedrock and Claude Models on Google Cloud (Google managed), the one the SDKs reach through AnthropicVertex, set their own dates.
| Where you call it | Who sets the date | Stops working |
|---|---|---|
| Claude API | Anthropic | Nov 30, 2026 |
| Claude Platform on AWS | Anthropic | Nov 30, 2026 |
| Claude Models on Google Cloud (Anthropic managed) | Anthropic | Nov 30, 2026 |
Microsoft Foundry, claude-sonnet-4-5 version 1 | Anthropic, and Foundry lists the same date | Nov 30, 2026 |
Amazon Bedrock, anthropic.claude-sonnet-4-5-20250929-v1:0 | AWS | Apr 8, 2027 |
Claude Models on Google Cloud (Google managed), claude-sonnet-4-5@20250929 | Google Cloud's page |
- Amazon Bedrock moved the model to legacy on October 8, 2026. From January 8, 2027 it's in public extended access, where AWS says to expect higher pricing set by the model provider. End of life is April 8, 2027, and requests fail after that. While a model is legacy, new customers can't use it and existing customers may lose access after 15 days of inactivity (AWS model lifecycle). A job that runs once a month can lose access before April.
- Bedrock's lifecycle can differ by Region. Read the
modelLifecyclefield fromGetFoundationModelin each Region you call (AWS model lifecycle). - Microsoft Foundry lists
claude-sonnet-4-5version 1 retiring on November 30, 2026, withclaude-sonnet-5-5as the replacement (Foundry retirement schedule). - On Claude Models on Google Cloud (Google managed), Google's dates can differ from the Claude API schedule. The Claude docs send you to Google Cloud's Claude models page for the current one (Claude docs).
Find every place you call it
The model's ID depends on where you call it. Search for all of these:
claude-sonnet-4-5-20250929: the dated ID on the Claude API.claude-sonnet-4-5: the alias. It points to the most recent dated snapshot of the model (Claude model IDs page), so move it too. Claude Platform on AWS lists the model under this name (Claude docs). Foundry deployments default to it, and on Foundry the deployment name is what you send (Claude models overview).anthropic.claude-sonnet-4-5-20250929-v1:0: the Bedrock ID. Bedrock serves this model through inference profiles, so in code it usually has a prefix such asglobal.,us.,eu.orjp., or sits inside an inference profile ARN (Claude on Bedrock page).claude-sonnet-4-5@20250929: the ID on Claude Models on Google Cloud (Google managed).
One case-insensitive pattern catches every spelling, including SDK model constants, which swap the hyphens for underscores (the Claude docs spell newer ones ModelClaudeSonnet4_6 and CLAUDE_SONNET_4_6):
git grep -n -i -E 'sonnet[-_. ]?4[-_.]5'Then check the places a repository search misses:
git greponly reads tracked files. Check.envfiles, CI secrets and your hosting provider's environment settings by hand.- Infrastructure code: Terraform or CDK stacks, and IAM policies if yours scope Bedrock access to a model ARN. The new model needs its own entry there.
- Eval sets, test fixtures, recorded responses and notebooks that pin the model.
- Calls from code you don't own, such as scripts and other teams' services. In the Claude Console, open the Usage page and click Export for a CSV broken down by API key and model (Claude deprecations page).
On November 2, 2026, GitHub's code search counted about 250,000 files on public GitHub that still name claude-sonnet-4-5-20250929, not counting Bedrock's own ID (an approximate count). If your project started from a template or copied an example, check those files too.
Check temperature, top_p and top_k first
This is the change most likely to fail your first request. On API version 2023-06-01, Claude 4.7 and later models, claude-sonnet-5-5 included, return a 400 error when temperature, top_p or top_k is set to anything but its default. API version 2026-10-21 removes all three, so sending any of them returns a 400 on every model (Claude deprecations page).
The Claude docs say to leave them out and guide the model with prompting. If you set temperature: 0 for repeatable output, it never guaranteed identical outputs on earlier models anyway (Claude migration guide). Our guide to the temperature, top_p and top_k removal covers where they hide and what to use instead.
What else changes on Claude Sonnet 5.5
Swapping the ID is the easy part. These are the changes the Claude Sonnet 5.5 migration guide lists for code coming from Claude Sonnet 4.5. Most of them return a 400 error, so your first test run finds them.
- Thinking is on by default. A request with no
thinkingfield runs with adaptive thinking, where Claude Sonnet 4.5 ran without it. Read content blocks bytype, because code that readscontent[0].textbreaks, and passthinkingblocks back unchanged in tool loops. To turn off up-front thinking, send{"type": "between_tools"}.{"type": "disabled"}returns a 400. - Thinking budgets return a 400. Replace
budget_tokenswith an effort level inoutput_config.effort. The guide says there's no fixed mapping from a budget to a level, so run your evals at two or three levels. The default ishigh. - Prefill returns a 400, because the conversation must end with a user message. For output format, use structured outputs, or a tool with enum fields for classification. Move continuations and reminders into the user turn.
- Forced tool use returns a 400. A
tool_choiceof typeanyortoolis rejected. Sendauto, mark the toolstrict: true, and say in your instructions when to call it. - More tokens. The guide says the same text produces about 30 percent more tokens than on Claude Sonnet 4.5. Recount with token counting, and revisit
max_tokensand cost.max_tokensnow covers thinking too, which is billed as output. - Renamed options. Move
output_formattooutput_config.format. Remove theinterleaved-thinking-2025-05-14beta header and any context window beta header, and replacefine-grained-tool-streaming-2025-05-14witheager_input_streaming: trueon each tool that needs it. - Refusals. Handle a
stop_reasonofrefusal. The guide lists the categories that trigger one.
Test it before you switch
- The Claude deprecations page recommends testing a replacement well before the retirement date. Run your evals, or a sample of real requests, on both models. Compare format, length, tool calls, latency and cost per request.
- Read the model ID from config, not code, so you can switch and roll back without a deploy (our suggestion).
- Move a slice of traffic first and watch for 400 errors and refusals. After November 30 you can't roll back to Claude Sonnet 4.5 on the Claude API, so pick a rollback model that's still active.
- On Bedrock, keep your SDK on its current major version while you still call Claude Sonnet 4.5. The new majors send API version
2026-10-21, which Bedrock serves only to Claude 4.7 and later models, so those calls can return a 400 (Claude on Bedrock page).
Where Since.dev fits
Since.dev tracks every model's retirement on each platform that serves it, from the publishers' own pages, along with API changes like the removed sampling parameters. The retirement calendar lists the Claude dates.
- Scan any public GitHub repository, no sign-in needed. For a repository you scan or connect, it finds the exact file and line that names the model, with the days left and what to move to.
- A coding agent can ask through the MCP server: call
check_codewith a model ID, orwhats_changedwithmodel. - On Team and up, it opens a fix pull request that swaps the model. The pull request opens ready for review, and nothing merges or deploys.
Questions
What happens if I still call claude-sonnet-4-5-20250929 after November 30, 2026?
On the Claude API, Claude Platform on AWS, Claude Models on Google Cloud (Anthropic managed) and Microsoft Foundry, the request fails, because a retired model is no longer available. On Amazon Bedrock it keeps working until April 8, 2027.
Is claude-sonnet-4-5 a different model from claude-sonnet-4-5-20250929?
No. On the Claude API, claude-sonnet-4-5 is an alias that points to the most recent dated snapshot of the model. Treat it as the same model and move both.
How long can I keep using it on Amazon Bedrock?
Until April 8, 2027, its end of life on Bedrock. It has been legacy since October 8, 2026, so new customers can't use it, and an account that stops calling it for 15 days may lose access. From January 8, 2027, AWS says to expect higher pricing set by the model provider (AWS model lifecycle).
Can I move to claude-sonnet-4-6 instead?
You can, but the recommended replacement is claude-sonnet-5-5, and claude-sonnet-4-6 retires not sooner than February 17, 2027 (Claude deprecations page), so you may move again next year. It's a smaller step: thinking stays off by default, thinking budgets still work as a deprecated setting, and it accepts a non-default temperature on API version 2023-06-01. It already rejects prefill (Claude Sonnet 5.5 migration guide).

Put your code on continuous management.
Scan a public repository now, or give your agent one line.
See how out of date your code is.
Tell your agent what changed since it was trained.
claude mcp add --transport http since https://api.since.dev/mcp