Claude Sonnet 4.5 retires on 30 November 2026: the 400 errors on Sonnet 5.5 and the fix
This model does not support assistant message prefill. The conversation must end with a user message.
tool_choice: type "tool" and "any" are not supported for this model.
"thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.
# 400 errors from claude-sonnet-5-5, quoted from Anthropic's migration guide on 6 November 2026, not captured by us
Short answer: claude-sonnet-4-5-20250929 retires on 30 November 2026 on the Claude API, Foundry and Google Cloud (Bedrock: 8 April 2027). Its replacement, claude-sonnet-5-5, returns 400 for assistant prefill, forced tool choice, thinking budgets, sampling parameters and disabled thinking, so changing the ID alone can break your app.
Checked on 6 November 2026 against Anthropic's deprecations page and Sonnet 5.5 migration guide, and Microsoft's, Google's and Amazon's lifecycle pages.
Why it happens
Anthropic's deprecations page lists claude-sonnet-4-5-20250929 as Deprecated (notice of 30 September 2026), with retirement on 30 November 2026 and claude-sonnet-5-5 as the replacement, and says requests to retired models fail. Which platforms: Anthropic says its dates apply to the Claude API, Claude Platform on AWS, Claude Models on Google Cloud (Anthropic managed) and Microsoft Foundry, and Microsoft's own schedule agrees (claude-sonnet-4-5, version 1, 2026-11-30). Partners set their own dates: Google's page for Google-managed Claude also says 30 November 2026, and Amazon Bedrock's model card says Legacy, end of life 8 April 2027. How we verified it (a dated vendor change): the dates and error messages are quoted from those pages, read on 6 November 2026. We have no Anthropic API key here, so we sent no requests: the errors and the steps are quoted from Anthropic's guide, not tested. Anthropic doesn't publish the message a retired model returns, so none is shown; we add it here after 30 November.
You may also see
To turn thinking off on this model, send "thinking": {"type": "between_tools"} instead of {"type": "disabled"}. The model does not think before responding. The short updates it writes between tool calls come back as thinking blocks.
# claude-sonnet-5-5 with thinking disabled (Anthropic's guide)adaptive thinking is not supported on this model
# the reverse mistake: adaptive thinking sent while the model ID is still claude-sonnet-4-5 (Anthropic's errors page)ResourceNotFoundException: This model version has reached the end of its life.
# Amazon Bedrock, after its own end-of-life date of 8 April 2027 (Bedrock's model card)
Fix
- Find every use. In code and config, run
git grep -n "claude-sonnet-4-5", which also catches the Google Cloud ID (claude-sonnet-4-5@20250929) and the Bedrock ID (anthropic.claude-sonnet-4-5-20250929-v1:0). For usage you can't see in code: Claude Console โ Usage โ Export gives a CSV by API key and model. In n8n, Anthropic Chat Model 1.3 defaults to this model; the free scanner reads exported workflows. - Change the model ID to
claude-sonnet-5-5(on Amazon Bedrock:anthropic.claude-sonnet-5-5), in the same change as the steps below. Anthropic's guide also gives a Claude Code command for this:/claude-api migrate this project to claude-sonnet-5-5. - Remove
temperature,top_pandtop_k. Anthropic's guide says sampling parameters return an error and doesn't print the message. API version 2026-10-21 returns a 400 for them on every model, and Anthropic says its latest SDK sends that version by default. - Replace prefill, by what it was for. Output format: structured outputs (
output_config.format), or tools with enum fields for classification. Preambles: ask for a direct answer in the system prompt. Continuations and context reminders: move them to the user message. Unwanted refusals: clear instructions in the user message are usually enough. - Replace forced tool choice with
autoand a strict tool:
Strict tools need# before, on Sonnet 4.5 "tool_choice": {"type": "tool", "name": "get_weather"} # after, on Sonnet 5.5: strict on the tool, auto here, and the prompt says when to use it "tools": [{"name": "get_weather", "input_schema": {...}, "strict": true}], "tool_choice": {"type": "auto"}additionalProperties: falseon every object, and a request can have at most 20. The model can now answer without calling the tool, so say in the prompt when to use it. The token counting endpoint rejects forced tool choice too. - Replace thinking budgets with an effort level:
There's no fixed mapping from a budget to an effort level, so test two or three levels. Sonnet 5.5 thinks by default, and Sonnet 4.5 didn't. To keep up-front thinking off, send# before, on Sonnet 4.5 "thinking": {"type": "enabled", "budget_tokens": 10000} # after, on Sonnet 5.5 "thinking": {"type": "adaptive"}, "output_config": {"effort": "high"}{"type": "between_tools"}athigheffort or below;{"type": "disabled"}returns a 400. - Fix how you read the response. It can start with a
thinkingblock, so code that readscontent[0].textbreaks: read blocks bytype, passthinkingblocks back unchanged in tool loops, and revisitmax_tokens, which now covers thinking plus text. Also moveoutput_formattooutput_config.format, removeinterleaved-thinking-2025-05-14and any context-window beta header, replacefine-grained-tool-streaming-2025-05-14witheager_input_streaming: trueon the tool, and parse tool input with a JSON parser. - Pipeline built on forced tools and can't change it by the 30th? A smaller first step is an earlier Sonnet, which Anthropic says still accepts them:
Model Forced tool choice Prefill Thinking budgets Retires (Anthropic) claude-sonnet-5-5400 400 400 not sooner than 28 Sep 2027 claude-sonnet-5works 400 400 not sooner than 30 Jun 2027 claude-sonnet-4-6works 400 works, deprecated not sooner than 17 Feb 2027 (Foundry's table: 10 Feb 2027) - Test with real requests before 30 November, and recount tokens: Anthropic says the same text produces about 30 percent more tokens on Sonnet 5.5 than on Sonnet 4.5.
Get it fixed: $49
Pay by card, no account needed. Still failing after you merge: full refund within 30 days.
How it works: 1. Pay on Gumroad; the checkout asks for the repository. 2. Invite my GitHub user, Donrulezz, to that repository only (private is fine), or email a zip with the failing log to hello@deadlinefix.com. 3. You get a pull request with a list of every change; you review, merge and deploy. I never ask for cloud passwords or production keys.
Who does the work: me, Ashish, the owner of this site, based in India. My public code and tools are on GitHub: github.com/Donrulezz.
Rather do it yourself? The free AI model retirement scanner finds the model ID in code, config and n8n workflows.
Watch out
- Check your platform's date. 30 November covers the Claude API, Claude Platform on AWS, Claude on Google Cloud (Anthropic managed and Google managed) and Microsoft Foundry. Amazon Bedrock lists 8 April 2027, and says only the dates on its model card apply there.
- Change the model ID and the thinking setting together. Adaptive thinking sent to Sonnet 4.5 returns its own 400 (shown above).
- Sonnet 5.5 can decline a request with HTTP 200 and
stop_reason: "refusal", and Anthropic says benign work can trigger it. Checkstop_reasonbefore you read the content. - Notes the model writes between tool calls now come back in
thinkingblocks, empty by default. No request fails, but an interface that shows those notes goes quiet. - Computer use: Sonnet 5.5 doesn't accept
computer_20250124. Move tocomputer_toolset_20260801. - On Claude Managed Agents, Anthropic says only the model name needs to change.
Sources
- Anthropic: Model deprecations (claude-sonnet-4-5-20250929 retires 30 November 2026; which platforms its dates cover)
- Anthropic: Claude Sonnet 5.5 migration guide (settings that return 400, their messages, checklist per starting model)
- Anthropic: Claude API errors (prefill, thinking and tool_choice messages)
- Anthropic: What's new in Claude Sonnet 5.5 (model ID on each platform)
- Microsoft Learn: Model retirement schedule (claude-sonnet-4-5 version 1 on Foundry: 2026-11-30)
- Google Cloud: Claude Sonnet 4.5 (deprecated, shuts down 30 November 2026, existing customers only)
- Amazon Bedrock model card: Claude Sonnet 4.5 (Legacy, end of life 8 April 2027)
Other errors breaking soon
- GitHub Actions: "Event 'pull_request_target' is not allowed to trigger Actions workflows"
- Unable to display RD Web Access: Chrome 158 and Edge 159 turn off XSLT
- OpenAI Agent Builder shuts down on 30 November 2026: export your workflows, keep ChatKit, move prompt objects
- Exchange Online POP and IMAP: TLS 1.0 and 1.1 refused, imap-legacy.office365.com gone
- Windows KB5127648: 802.1X Wi-Fi, wired and VPN sign-in fails (NTLMv1 SSO blocked)
- Firebase: Runtime Node.js 20 was decommissioned
- Firebase Hosting deploy fails: 403 "Permission denied to get service [firebasehosting.googleapis.com]"
- GitHub webhooks: "Failed to connect to host" after GitHub added 3 webhook IP ranges (29 October 2026)
- AWS CodeBuild: Unknown runtime version named '20' of nodejs
- Google Cloud Python: non-supported Python version (3.10)
- Azure OpenAI o1, o3, o3-mini and o4-mini retire on 19 November 2026: 410 Gone
- OpenAI: "The model โฆ has been deprecated" or "Model not found" after a shutdown
- Nextcloud desktop 35.0.1 won't start: "UNIQUE constraint failed: metadata.inode"
- Contact Form 7 6.2: "Composer detected issues in your platform" (PHP 8.3 required)
- Biome 2.6: biome check fails on README.md and YAML files after the upgrade
- pytest 9.2: xdist_group tests run on different workers (--dist loadgroup)
- WordPress 7.2 ignores data-wp-init--, data-wp-watch-- and data-wp-run-- directives
- Ubuntu 26.04 upgrade stops with "Unable to upgrade MySQL" (mysql_native_password accounts)