thinking type enabled with budget_tokens returns a 400 on Claude Haiku 5.5
Returns 400
Applies to claude-haiku-5-5 on the Anthropic Messages API.
Anthropic's docs describe this error but don't quote the exact message, so we don't either.
How to fix it
Remove the budget and set an effort level in output_config.effort.
Before
{
"max_tokens": 1024,
"messages": [
{
"content": "Summarize this ticket.",
"role": "user"
}
],
"model": "claude-haiku-4-5-20251001",
"thinking": {
"budget_tokens": 4000,
"type": "enabled"
}
}After (Claude Haiku 5.5)
{
"max_tokens": 1024,
"messages": [
{
"content": "Summarize this ticket.",
"role": "user"
}
],
"model": "claude-haiku-5-5",
"output_config": {
"effort": "high"
},
"thinking": {
"type": "adaptive"
}
}Official source
Athinkingvalue of{"type": "enabled", "budget_tokens": N}returns a 400 error, so a request that sends it needs a newthinkingvalue.
https://platform.claude.com/docs/en/models/haiku-5-5/migration-guide (last checked 2026-11-02)
Other changes for the same models
- 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
- Assistant message prefill returns a 400 on Claude Haiku 5.5
- temperature, top_p and top_k can return an error on Claude Haiku 5.5
- Forced tool_choice on Claude Haiku 5.5 skips thinking
FAQ
How do I fix this when moving to claude-haiku-5-5?
Remove the budget and set an effort level in output_config.effort.
Where is this documented?
In Anthropic’s official docs: https://platform.claude.com/docs/en/models/haiku-5-5/migration-guide, last checked 2026-11-02.