Claude Sonnet 5.5 breaking changes and the exact error text: five changes, two combination limits, one response-shape change
Anthropic released Claude Sonnet 5.5 on 2026-09-28, and the official overview states «Five breaking changes affect code already running on Claude Sonnet 5»; the vendor's migration guide separately lists «five settings that return a 400 error» — the two sets of five come from two different official documents, not one table. This page puts both kinds of official sentence next to the verbatim error strings: turning off up-front thinking, forced tool use, thinking-block binding, computer_20251124 no longer accepted, and advisor pairing, plus one change that raises no error but reshapes the response.
Updated 2026-09-30
Four errors people hit first
Disabling thinking: straight into 400
The verbatim error (kept untranslated in all four languages): "thinking.type.disabled" is not supported for this model. Use "thinking.type.between_tools" for the lowest thinking setting, or "thinking.type.adaptive" and "output_config.effort" to control thinking behavior. The lowest documented setting is between_tools; to steer thinking use adaptive together with output_config.effort.
between_tools with xhigh or max
Official wording: between_tools is accepted at low, medium and high effort; at xhigh or max it returns a 400 error. To run at those levels, use adaptive thinking — omit the thinking field or send adaptive.
between_tools carrying other fields
Official wording: between_tools takes no other field — sending display, budget_tokens or block_binding with it returns a 400 error. This is where the thinking-block binding change most often bites.
Old tool definitions and advisor pairings
The overview gives one sentence each: on the Claude API and Google Cloud the earlier computer_20251124 computer-use tool is not accepted; and the advisor tool rejects Claude Opus 4.8, Claude Opus 4.7 and Claude Sonnet 5 as advisors. Both are fixes to tool definitions and pairings, not to the model id.
What problem this page solves
It answers the case of «my code worked on Sonnet 5 and now returns 400 on Sonnet 5.5». The four common shapes are: a request carrying the disabled thinking type, one forcing tool choice, one still declaring computer_20251124, and one pairing Opus 4.8, Opus 4.7 or Sonnet 5 as an advisor. The fifth is subtler — the combination of effort with between_tools. The vendor wrote an original sentence for each; this page matches them to the error text.
2026-09-28: Claude Sonnet 5.5 released
The official overview (re-checked 2026-09-30) states «Five breaking changes affect code already running on Claude Sonnet 5», and the migration guide lists the five settings that return a 400 error together: thinking budgets, sampling parameters, assistant prefill, forced tool choice, and requests that set the thinking type to disabled. Claude Code's changelog at 2.1.284 records it as the default Sonnet model on the Anthropic API.
Order of changes and where the docs sit
Anthropic's Opus 5.5 launch page of 2026-09-22 already carried the sentence that Sonnet 5.5 and Haiku 5.5 would follow in the coming weeks, with many of the same improvements. Migration preparation starts with that sentence, not with the release date.
The release day. Anthropic's overview reads «Released September 28, 2026» and lists the five breaking changes on the same page, and Claude Code at 2.1.284 records it as the default Sonnet model on the Anthropic API.
The date this page was checked. On 2026-09-30 both official sentences — in the migration guide and in the overview — were still verbatim valid, so the error strings and combination limits are copied as written. On the site side claude-sonnet-5-5 has been available since 2026-09-29 (claude-sonnet-5-5-guide remains the authority), and every availability sentence here carries that date.
Layers: official text / error text / our reading
Five changes officially announced
The five confirmed changes (with Sonnet 5.5 since 2026-09-28): (1) up-front thinking is turned off with between_tools — thinking itself cannot be disabled; (2) forced tool use is rejected; (3) thinking blocks are bound to the model and the session; (4) on the Claude API and Google Cloud the earlier computer_20251124 computer-use tool is not accepted; (5) the advisor tool rejects Claude Opus 4.8, Claude Opus 4.7 and Claude Sonnet 5 as advisors. The vendor separately notes one more change that fails no request but moves text between tool calls back into thinking blocks.
What the vendor did not state (no unverified items)
Not published — and no rumour goes here either; this page will not invent it: an exemption or rollback timetable for these five changes, a mandatory retirement date for Claude Sonnet 5 (the deprecations table only gives «Not sooner than June 30, 2027»), and any claim that a third-party framework has already adapted. Circumvention tricks that circulate in the community are not treated as fact here. What is officially confirmed is narrower: Claude Sonnet 5 is still Active and not listed for deprecation.
Migration cost is not Anthropic's alone
Anthropic: the shape of thinking and tool use
In the vendor's own words: between_tools is the lowest thinking setting, thinking cannot be switched off entirely, and forced tool choice returns 400. What changes is the request shape; neither the model name nor its price moves — input $2 and output $10, priced the same as Sonnet 5.
OpenAI: reasoning tiers and the endpoint move too
Only official sentences are used here: gpt-6.1-sol does not support the none or the minimal reasoning effort, while gpt-6-sol and gpt-6-luna do support none — the published effort list for these two models reads none, low, medium, high, xhigh, max, so minimal was never in it. The changelog also states that tool calling has to go through the Responses API. Claims that moving between vendors needs no code change are supported by neither vendor's documentation.
The fixes the vendor gives (copied, not improvised)
The error reads: "thinking.type.disabled" is not supported for this model. Use "thinking.type.between_tools" for the lowest thinking setting, or "thinking.type.adaptive" and "output_config.effort" to control thinking behavior. The lowest thinking setting the vendor documents is between_tools, accepted at low, medium and high effort. At xhigh or max it returns a 400 error, and there adaptive thinking is the answer: omit the thinking field or send adaptive. between_tools accepts no other field — display, budget_tokens or block_binding sent with it returns 400. And once between_tools is in use, effort cannot change mid-conversation.
The QCode side: Sonnet 5.5 has been available since 2026-09-29
claude-sonnet-5-5 has been available on QCode since 2026-09-29 (checked 2026-09-30; 99 calls in the site's 30-day usage table — the status page claude-sonnet-5-5-guide remains the authority). Code that must keep running during migration can also call claude-opus-5-5 and claude-sonnet-5 under the same key, and gpt-6-sol on the OpenAI side. What has to change is the thinking and effort writing inside the request body wherever you route, so this page is about the request body, not the channel.
Questions
I get the thinking.type.disabled error — how do I fix it?
Two documented paths: set the thinking type to between_tools for the lowest amount of thinking, or set it to adaptive and control behaviour with output_config.effort. Mind the combination limits — between_tools only works at low, medium and high effort and cannot carry other fields.
Forced tool choice used to work — is the rejection deliberate?
The vendor lists forced tool choice among the five settings that return a 400 error, as part of the five breaking changes. No exemption window or rollback schedule is published for it, so this page carries no guess about it working again later.
Does computer_20251124 still work?
Per the official overview sentence: on the Claude API and Google Cloud it is not accepted. This page only states the platforms the vendor named and does not infer what happens elsewhere — that part has no published sentence.
How should I handle the thinking blocks that now appear?
The vendor calls this out separately: no request fails, but text between tool calls comes back inside thinking blocks. Two documented handling paths — set a display value that returns the text, or turn off up-front thinking with between_tools. An implementation that streams that text straight to users goes quiet between tool calls until one of the two is set.
Will Claude Sonnet 5 be forcibly retired?
The deprecations row gives a floor: Not sooner than June 30, 2027, and the status column still reads Active. This page does not read «not sooner than» as a switch-off date, and does not treat the five breaking changes as a retirement notice — those are two different things.
Did the vendor publish benchmarks justifying these changes?
The launch page carries Anthropic's own score table, and this page transcribes no benchmark numbers. Its job is to match the error text with the vendor's documented fixes; whether the model is good enough is something you have to measure on your own workload.
Sources
Three Anthropic pages: the model overview (the release date and the list of five breaking changes), the migration guide (the error strings and the between_tools paragraphs), and pricing plus the deprecations table (the same-price sentence and Sonnet 5's «Not sooner than June 30, 2027» row), together with Claude Code changelog 2.1.284. From OpenAI only two sentences are used: the none-effort line in the latest-model guide and the Responses API line in the changelog. Every quoted line is archived verbatim.
Get the code running first, then decide which generation to follow
claude-sonnet-5-5, claude-opus-5-5, claude-sonnet-5 and gpt-6-sol share one QCode key (all in stock as of 2026-09-30), so nothing about your credentials has to change during migration.
Related pages
Claude Sonnet 5.5 guide
That page holds Sonnet 5.5's specification and pricing table — 1M context, 128K maximum output, $2 input, $10 output. This one is only about the five things your code runs into.
Claude Sonnet 5.5 versus Opus 5.5
How to choose between the two models of the same generation, by price and specification. Migration errors live here; model choice lives there.
GPT-6 Sol / Luna pricing tracker
The other side of a cross-vendor move: the official gpt-6-sol and gpt-6-luna tables and billing rules, including the parts where their request bodies also have to change.
Error strings and limit sentences are copied verbatim and left untranslated in all four languages, because they are what gets searched for and compared by code. Exemption periods, retirement dates and third-party adaptations that the vendor did not publish stay blank. QCode is independent of Anthropic and OpenAI; model status on the site belongs to the dedicated page for that model, and availability sentences here always carry the date they were checked.