ClaudeHowSupport Us

Disabled thinking rejected on Sonnet 5.5: use between_tools

The error

Sonnet 5.5 rejects thinking: {"type": "disabled"} with a 400 whose message names the replacement:

"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.

Sonnet 5 accepted the disabled form, so this is usually the first failure when a Sonnet 5 route that ran thinking-off is moved to Sonnet 5.5.

Which replacement to reach for first

The error offers two, and Anthropic's own guidance is to try them in the opposite order to how most people read the message. First, adaptive thinking at low effort: at low effort the model skips thinking on most simple requests and keeps it short on the rest. Measure time to first token at the median and the tail on your own traffic, and compare quality. Only if that doesn't meet the latency bar, send between_tools.

What between_tools does, and what it won't accept

It is the lowest thinking setting: no extended thinking, with the short notes the model writes between tool calls returned as thinking blocks carrying their text. It has limits that are each a 400 when crossed. It works only at effort high or below — at xhigh or max the error reads output_config.effort 'xhigh' is not supported when thinking is disabled on this model. It takes no other field inside thinking, so display, budget_tokens and block_binding alongside it are rejected. It does not allow a per-message effort change mid-conversation. And it exists on Sonnet 5.5 only.

Clean up the prompt as well

Remove any instruction telling the model not to think; with thinking at its lowest setting, such rules make internal tags in the visible output more likely. Size max_tokens for any thinking as well as the reply — on the adaptive route, thinking counts toward it even though its text isn't returned — and pass thinking blocks, including the progress notes, back unchanged with the assistant turn. If you took the adaptive route, read the response by block type rather than position: it can begin with a thinking block whose text is empty under the default display setting.

See between_tools is not supported for this model for the failure this setting causes when a request is re-sent to another model, and migrating: Sonnet 5 to Sonnet 5.5.

Verified 2026-09-30 against ClaudeHow facts module (src/data/facts/) — see /about/#accuracy.