thinking type disabled returns a 400 on Claude Sonnet 5.5
Returns 400
Applies to claude-sonnet-5-5 on the Anthropic Messages API.
Error message, quoted from Anthropic's docs:
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.How to fix it
Send thinking: {"type": "between_tools"} at low, medium or high effort. At xhigh or max, use adaptive thinking instead.
{
"max_tokens": 1024,
"messages": [
{
"content": "Summarize this ticket.",
"role": "user"
}
],
"model": "claude-sonnet-4-5-20250929",
"thinking": {
"type": "disabled"
}
}{
"max_tokens": 1024,
"messages": [
{
"content": "Summarize this ticket.",
"role": "user"
}
],
"model": "claude-sonnet-5-5",
"thinking": {
"type": "between_tools"
}
}Official source
On Claude Sonnet 5.5,disabledreturns a 400invalid_request_error
https://platform.claude.com/docs/en/models/sonnet-5-5/migration-guide#turn-off-up-front-thinking (last checked 2026-11-02)
Other changes for the same models
- temperature, top_p and top_k return an error on Claude Sonnet 5.5
- Assistant message prefill returns a 400 on Claude Sonnet 5.5
- tool_choice any or tool returns a 400 on Claude Sonnet 5.5
- thinking type enabled with budget_tokens returns a 400 on Claude Sonnet 5.5
- Top-level output_format returns a 400 on Claude Sonnet 5.5
- computer_20250124 isn’t accepted by Claude Sonnet 5.5 or Haiku 5.5
- fine-grained-tool-streaming-2025-05-14 with a toolset returns a 400
- Beta headers to remove when moving to Claude Sonnet 5.5
- Claude Sonnet 5.5 thinks by default when thinking is omitted
FAQ
What does "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." mean?
thinking type disabled returns a 400 on Claude Sonnet 5.5 The fix: Send thinking: {"type": "between_tools"} at low, medium or high effort. At xhigh or max, use adaptive thinking instead.
How do I fix this when moving to claude-sonnet-5-5?
Send thinking: {"type": "between_tools"} at low, medium or high effort. At xhigh or max, use adaptive thinking instead.
Where is this documented?
In Anthropic’s official docs: https://platform.claude.com/docs/en/models/sonnet-5-5/migration-guide#turn-off-up-front-thinking, last checked 2026-11-02.