"thinking.type.disabled" is not supported on Opus 5.5
The error
A request to Opus 5.5 that turns thinking off returns a 400 invalid_request_error, whatever the
effort level:
"thinking.type.disabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.
A fixed thinking budget fails the same way, with the message naming thinking.type.enabled instead.
On Opus 5 the disabled form was accepted at effort high or below, so this usually surfaces the first
time a latency-sensitive route written for Opus 5 is pointed at Opus 5.5.
Why there is no workaround in the thinking field
On Opus 5.5 thinking is always on. The field accepts adaptive or nothing, and the two are equivalent. Effort is the only control left over how much the model thinks — and therefore over latency and cost — which is why the error message points you at it.
The fix
Remove the thinking field, or set it to adaptive. For the route that wanted speed, set
output_config.effort to low: at low effort the model keeps its thinking short, and on some
prompts skips it. Measure time to first token and quality; move to medium if quality drops.
Then size max_tokens for thinking as well as the answer — thinking counts toward the limit even
when its text isn't returned, so a limit sized for a thinking-off route will cut replies short.
Read response content by block type rather than position, since a response can now begin with thinking blocks whose text is empty under the default display setting. Pass those blocks back unchanged in tool-use loops.
Two prompt changes that go with it
Delete any instruction telling the model not to think — it can't comply, and such rules make stray internal tags in the visible answer more likely. And remove any instruction asking the model to write its reasoning into the response as a substitute for thinking: on Opus 5.5 that pattern can be declined outright as reasoning extraction. If you need to see the reasoning, request the summarized thinking display and read the thinking blocks.
Related
See migrating: Opus 5 to Opus 5.5 and Opus 5.5 defaults to medium effort.
Verified 2026-09-30 against ClaudeHow facts module (src/data/facts/) — see /about/#accuracy.