ClaudeHowSupport Us

"thinking.type.between_tools" is not supported for this model

The error

A request carrying thinking: {"type": "between_tools"} returns a 400 on any model other than Sonnet 5.5:

"thinking.type.between_tools" is not supported for this model.

Almost nobody sends that setting to the wrong model on purpose. The usual cause is code that re-sends a Sonnet 5.5 request body to a different model unchanged — a router, a client-side retry after a refusal, an evaluation harness cycling through models, or fallback middleware.

Why the same body can't travel

between_tools is Sonnet 5.5's lowest thinking setting and its replacement for disabled, which it rejects. Every other model has a different vocabulary: Sonnet 5 and Opus 5 accept disabled, Opus 5.5 and the Fable models accept nothing but adaptive, and the older Opus and Sonnet models think only when asked. A thinking configuration is therefore per-model data, not a request constant.

Anthropic's server-side fallback handles this for you: when a between_tools request on Sonnet 5.5 is retried on Sonnet 5, it runs there with thinking disabled. That server-side fallback runs on the Claude API only, though. The SDK's refusal-fallback middleware, and any retry you write yourself, get no such translation, so they have to rebuild the field for the target model.

The fix

Build the thinking field for the target model at the moment you send, rather than copying it from the original request. A small mapping is enough. Sending to Sonnet 5.5 and want thinking minimal: use between_tools at effort high or below. Sending the same intent to Sonnet 5 or Opus 5: use disabled, remembering that Opus 5 accepts it only up to effort high. To Opus 5.5 or a Fable model: omit the field and use low effort, since thinking can't be turned off. To Opus 4.8 or older: omit the field, which already means no thinking.

Check the effort level travels safely too — per-message effort changes are a 400 with between_tools, and effort above high is a 400 with it as well.

See disabled thinking rejected on Sonnet 5.5 and adaptive vs always-on thinking.

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