Claude Sonnet 4.5 Retires Nov 30: 8 of 14 Requests Break on 5.5
Contents
Claude Sonnet 4.5 (claude-sonnet-4-5-20250929) stops working on the Claude API on November 30, 2026, and 8 of 14 common Sonnet 4.5 request shapes (combinations of request parameters) return HTTP 400 on its recommended replacement, Claude Sonnet 5.5. Anthropic deprecated Sonnet 4.5 on September 30: a deprecated model still answers, and after its retirement date every request to it fails. Amazon Bedrock keeps it until April 8, 2027, and Google Cloud has not announced a date. We sent the same 14 requests to Sonnet 4.5, Claude Sonnet 4.6 and Sonnet 5.5 through the Anthropic API, then compared response shapes, token counts and cost.
TL;DR
- Claude Sonnet 4.5 retires November 30, 2026 on the Claude API and April 8, 2027 on Amazon Bedrock.
- Sonnet 5.5 rejected 8/14 requests with API version
2023-06-01, and 9/14 with2026-10-21. - Sonnet 4.6 rejected 1 of the 14, assistant prefill, and costs the same as Sonnet 4.5.
- Short calls cost about the same on Sonnet 5.5 ($1.54 per 1,000) as on Sonnet 4.5 ($1.47), despite a 33% lower list price.
When does Claude Sonnet 4.5 stop working?
Sonnet 4.5 stops working on November 30, 2026 on every platform Anthropic runs, and later on the two platforms run by partners, so the retirement date depends on the platform you call it through.
| Platform | Status on October 26, 2026 | Last day of service |
|---|---|---|
| Claude API, Claude Platform on AWS, Claude Models on Google Cloud (Anthropic managed), Microsoft Foundry | Deprecated September 30 | Retires November 30, 2026 |
Amazon Bedrock (anthropic.claude-sonnet-4-5-20250929-v1:0) | Legacy since October 8 | End of life April 8, 2027; “public extended access” from January 8, 2027, when the price may rise |
Google Cloud, Google managed (claude-sonnet-4-5@20250929) | Generally available | No deprecation announced; the model page gives a retirement date of “not sooner than” September 29, 2026 |
Sources: Anthropic’s model deprecations page, the Bedrock model lifecycle (legacy) page, and Google Cloud’s Sonnet 4.5 model page and partner model deprecations (both updated October 22).
Bedrock’s Legacy state has rules of its own. New customers cannot start using the model, an existing account can lose access after 15 days without calls, and no new Provisioned Throughput (reserved capacity) can be bought for it. From January 8, 2027 the model enters public extended access, during which Anthropic may set a higher price.
Synthorai serves Sonnet 4.5 through Amazon Bedrock and Google Cloud, so requests to claude-sonnet-4-5 through Synthorai keep working after November 30; Bedrock’s own end date is April 8, 2027. On October 26 both claude-sonnet-4-5 and claude-sonnet-4-5-20250929 answered through Synthorai. Use the extra time to migrate: Bedrock’s price can change from January 8, and the model will go away.
Which Sonnet 4.5 requests fail on Sonnet 5.5?
Eight of the 14 request shapes that Sonnet 4.5 accepts fail on Sonnet 5.5, and one fails on Sonnet 4.6. We sent each shape once per model to the Anthropic API with anthropic-version: 2023-06-01, the version that Anthropic SDKs before the October 21 majors send. 200 means the request was accepted; 400 means it was rejected.
| Request | Sonnet 4.5 | Sonnet 4.6 | Sonnet 5.5 |
|---|---|---|---|
| No sampling or thinking settings | 200 | 200 | 200 |
temperature: 0 | 200 | 200 | 400 |
temperature: 1.0 (the default) | 200 | 200 | 200 |
top_p: 0.9 | 200 | 200 | 400 |
top_k: 40 | 200 | 200 | 400 |
thinking: {"type": "enabled", "budget_tokens": 2048} | 200 | 200 | 400 |
thinking: {"type": "disabled"} | 200 | 200 | 400 |
tool_choice: {"type": "auto"} | 200 | 200 | 200 |
tool_choice: {"type": "any"} | 200 | 200 | 400 |
tool_choice: {"type": "tool", "name": ...} | 200 | 200 | 400 |
| Assistant prefill (the request ends with a partial assistant turn) | 200 | 400 | 400 |
stop_sequences | 200 | 200 | 200 |
System prompt with a 1-hour cache_control | 200 | 200 | 200 |
max_tokens: 64000 | 200 | 200 | 200 |
The error messages say what to send instead:
| Request | Error message on Sonnet 5.5 |
|---|---|
temperature, top_p, top_k (non-default) | “`temperature` is deprecated for this model.” |
thinking with budget_tokens | ""thinking.type.enabled” is not supported for this model. Use “thinking.type.adaptive” and “output_config.effort” to control thinking behavior.” |
thinking: disabled | ”To turn thinking off on this model, send “thinking”: {“type”: “between_tools”} instead of {“type”: “disabled”}.” |
Forced tool_choice | ”tool_choice: type “tool” and “any” are not supported for this model.” |
| Assistant prefill | ”This model does not support assistant message prefill. The conversation must end with a user message.” |
API version 2026-10-21, which the new SDK majors send, removes the sampling parameters for all three models, so temperature fails on Sonnet 4.5 there too. The other rows matched the table above under both versions.
How do you fix each failing request?
Each failure has a replacement on Sonnet 5.5:
| Sonnet 4.5 request | Sonnet 5.5 replacement |
|---|---|
temperature, top_p, top_k | Remove them; guide the output in the prompt instead |
thinking with budget_tokens | "thinking": {"type": "adaptive"} (the model decides how much to think) with "output_config": {"effort": "low"}, "medium" or "high" (the default; effort sets how much thinking it may do) |
thinking: disabled | "thinking": {"type": "between_tools"} (no thinking before the answer; short notes between tool calls come back as thinking blocks) |
tool_choice: any or tool | tool_choice: auto and name the tool in the prompt; in our test, auto returned a tool call in 10 of 10 requests on every model |
| Assistant prefill | End with a user message; for JSON output, use structured outputs |
A Sonnet 4.5 call with a thinking budget becomes this on Sonnet 5.5:
import anthropic
client = anthropic.Anthropic()
# Sonnet 4.5:
# client.messages.create(model="claude-sonnet-4-5-20250929", max_tokens=4096,
# thinking={"type": "enabled", "budget_tokens": 2048}, messages=messages)
response = client.messages.create(
model="claude-sonnet-5-5",
max_tokens=4096,
thinking={"type": "adaptive"},
output_config={"effort": "medium"}, # low, medium or high (the default)
messages=[{"role": "user", "content": "Extract the invoice total as JSON."}],
)
What changes without an error?
The first content block of a Sonnet 5.5 response is not always text, so code that reads response.content[0].text can break on a 200. Sonnet 5.5 thinks by default (adaptive thinking at high effort), and a response that used thinking starts with a thinking block whose text is empty unless you ask for it. On 20 extraction prompts sent the way Sonnet 4.5 code sends them, with no thinking settings, 11 Sonnet 5.5 responses started with a thinking block. Sonnet 4.5 and Sonnet 4.6 returned text first in all 40 of their responses. Twenty classification prompts, which need a one-word answer, returned text first on all three models.
Read the text blocks by type instead of position:
text = "".join(block.text for block in response.content if block.type == "text")
Thinking also counts as output. Sonnet 5.5 averaged 69 thinking tokens per extraction call, reported in usage.output_tokens_details.thinking_tokens and billed at the output price, on calls where Sonnet 4.5 wrote none.
Is Sonnet 5.5 cheaper than Sonnet 4.5?
Sonnet 5.5 is 33% cheaper per token than Sonnet 4.5 ($2 / $10 per million input and output tokens, against $3 / $15), but the same calls cost about the same, because it counts more tokens for the same text and thinks by default. Over 40 short production calls per model (20 classification, 20 extraction), Sonnet 5.5 cost $1.54 per 1,000 calls and Sonnet 4.5 $1.47.
| Call | Sonnet 4.5 cost per call | Sonnet 5.5 cost per call | Input tokens, 4.5 to 5.5 |
|---|---|---|---|
| Classification (one-word label), n=20 | $0.00080 | $0.00067 | 240 to 309 |
| Extraction (JSON fields from an e-mail), n=20 | $0.00214 | $0.00241 | 310 to 388 |
| Single tool call with one tool defined, n=10 | $0.00253 | $0.00128 | 577 to 391 |
The token count changed with the tokenizer, the component that splits text into tokens: Sonnet 5.5 uses the tokenizer of Anthropic’s newer models, while Sonnet 4.5 and Sonnet 4.6 share an older one. We counted 8,000-character samples of real text with Anthropic’s free count_tokens endpoint, after subtracting the count for a message that says only “OK” (8 tokens on Sonnet 4.5, 10 on Sonnet 5.5), which is almost all per-message overhead:
| Text (8,000 characters) | Sonnet 4.5 and 4.6 | Sonnet 5.5 | Change |
|---|---|---|---|
| English technical blog post | 3,179 | 3,846 | +21% |
| German translation of the post | 3,536 | 4,546 | +29% |
| Chinese translation of the post | 5,770 | 6,378 | +11% |
| Japanese translation of the post | 5,559 | 6,112 | +10% |
| Python source code | 2,433 | 3,216 | +32% |
| JSON records | 2,079 | 2,745 | +32% |
The Chinese and Japanese posts contain English terms, numbers and Markdown; on short passages of pure Chinese or Japanese text the two tokenizers counted the same. Measured at Sonnet 4.5’s prices, the Sonnet 5.5 calls would have cost $2.31 per 1,000, so the token volume grew by 57% and the 33% price cut covered most but not all of it. The tool call was the exception: its input fell from 577 to 391 tokens despite the larger tokenizer, so the tool-use instructions the API adds to the prompt are likely shorter on Sonnet 5.5. For one tool and a short prompt, that halved the cost.
Should you move to Sonnet 4.6 instead?
Sonnet 4.6 is the lowest-effort move: it has the same price as Sonnet 4.5, the same tokenizer (every text above counted the same tokens), and only assistant prefill failed in our 14 requests. Its retirement date is not sooner than February 17, 2027, which postpones the Sonnet 5.5 move by about eleven weeks. Move to Sonnet 4.6 when November 30 arrives before you can rework thinking budgets, forced tool calls and response parsing, and plan the Sonnet 5.5 move for after.
| Sonnet 4.5 | Sonnet 4.6 | Sonnet 5.5 | |
|---|---|---|---|
| List price, input / output per million tokens | $3 / $15 | $3 / $15 | $2 / $10 |
| Requests rejected of our 14 | 0 | 1 | 8 |
| Tokens for the same text | baseline | same | +21% English, +32% code and JSON, about +10% Chinese and Japanese posts |
| Cost per 1,000 short calls in our test | $1.47 | $1.47 | $1.54 |
| Claude API retirement | November 30, 2026 | Not sooner than February 17, 2027 | Not sooner than September 28, 2027 |
What should you check before November 30?
| If your code | Check | Change |
|---|---|---|
Sets temperature, top_p or top_k | Any non-default value | Remove for Sonnet 5.5; Sonnet 4.6 still accepts them on 2023-06-01 |
| Sets a thinking budget | thinking.budget_tokens | Adaptive thinking with an effort level |
| Turns thinking off | thinking: disabled | thinking: between_tools |
| Forces a tool | tool_choice any or tool | auto, with the tool named in the prompt |
| Prefills the assistant turn | Requests ending with an assistant message | End with a user message; structured outputs for JSON |
Reads content[0].text | Response parsing | Filter blocks by type == "text" |
| Budgets by token count | Prompt and context limits | Re-count with count_tokens; English grew 21% and code 32% in our test |
| Runs on Amazon Bedrock | The Bedrock date, not Anthropic’s | April 8, 2027, with a possible price change from January 8 |
FAQ
When is Claude Sonnet 4.5 retired? Claude Sonnet 4.5 is retired on November 30, 2026 on the Claude API, Claude Platform on AWS, Claude Models on Google Cloud (Anthropic managed) and Microsoft Foundry. Amazon Bedrock ends it on April 8, 2027, and Google-managed Google Cloud had not announced a date as of October 26, 2026.
What replaces Claude Sonnet 4.5?
Anthropic recommends Claude Sonnet 5.5 (claude-sonnet-5-5). Claude Sonnet 4.6 also works as a shorter-term replacement: same price as Sonnet 4.5, only assistant prefill rejected in our test, and available until at least February 17, 2027.
What happens to Sonnet 4.5 requests after November 30?
Requests to a retired model fail, so calls to claude-sonnet-4-5-20250929 on the Claude API return an error from November 30. No platform moves the calls for you; you change the model name and the request shapes yourself.
Related reading
- Claude Sonnet 5.5 cost: effort levels and cost per task against Sonnet 5
- LLM thinking controls: how adaptive thinking and effort work across vendors
- GPT-4 and GPT-3.5 Turbo shutdown: the same migration question on OpenAI’s side
- LLM structured outputs: JSON output without assistant prefill