
You changed one line — the model ID — and your entire Claude integration turned red. Requests that worked yesterday now come back 400 Bad Request, and the error messages are about as helpful as a shrug.
Welcome to Claude Haiku 5.5. Anthropic launched it on October 7, 2026 as its cheapest, fastest small model yet ($0.10 per million input tokens — a tenth of Haiku 4.5's price), and buried in the official migration guide is a warning worth reading twice: "Code written for Claude Haiku 4.5 can break on Claude Haiku 5.5." With Haiku 4.5 listed for retirement no sooner than October 15, 2026 — meaning the retirement window opens today — the migration is no longer something to postpone.
The good news: every break is documented, and every one has a fix. I went through Anthropic's migration guide line by line so you don't have to. Here are the 5 changes that throw a 400, the 3 that fail silently, and the pricing trap that quietly quintuples your bill.
Fix 1: Your thinking budget is now a 400 error
If your requests still carry the old extended-thinking syntax, Haiku 5.5 rejects them outright:
Before (Haiku 4.5 — works):
{
"model": "claude-haiku-4-5-20251001",
"thinking": {"type": "enabled", "budget_tokens": 10000},
"max_tokens": 20000,
"messages": [...]
}
After (Haiku 5.5 — fixed):
{
"model": "claude-haiku-5-5",
"thinking": {"type": "adaptive"},
"output_config": {"effort": "medium"},
"max_tokens": 20000,
"messages": [...]
}
Manual thinking budgets are gone. Haiku 5.5 uses adaptive thinking — the model decides how much to think — and you steer it with the output_config.effort dial: low, medium, high, xhigh or max (default medium). Two details that bite: thinking is on by default, and you can switch it off only at low, medium or high effort with {"type": "disabled"} — asking for disabled at xhigh or max returns a 400. Also note the new model ID: claude-haiku-5-5 is fixed, with no date suffix and no alias.
Fix 2: Delete temperature, top_p and top_k
This one breaks more codebases than anything else, because nearly everyone sets temperature: 0 for deterministic output. On Haiku 5.5, omit all three parameters entirely. The rules from the migration guide:
temperaturemust be1if you include it at all — any other value is a 400.top_pmust be0.99(its default) — even1fails.- Any
top_kvalue fails. - Sending
temperatureandtop_ptogether fails too.
The fix is a deletion, not a substitution: remove the three lines and guide the model's behavior through prompting instead. Anthropic is explicit — steer with words, not sampling knobs.
Fix 3: End messages on a user turn — prefill is rejected
If you use assistant prefill (ending messages with an assistant turn for the model to continue — the classic classification trick), Haiku 5.5 returns a 400 even with thinking turned off. Haiku 4.5 accepted this whenever thinking was disabled; 5.5 never does.
The migration path depends on what the prefill was for:
- Output format: use structured outputs (
output_config.formator tools withstrict: true), or a tool with an enum field for classification. - Preambles: ask in the system prompt for a direct answer.
- Continuations: move them into the user message.
- Context reminders: put them in the user turn.
One platform caveat: structured outputs aren't available for Haiku 5.5 on Amazon Bedrock. There, describe the format in the prompt or use a tool without strict, and validate the output in your own code.
Fix 4: Computer use moved to a toolset
If your integration drives computer use with the computer_20250124 tool, requests now fail. On the Claude API and Google Cloud, replace it with the toolset {"type": "computer_toolset_20260801"}. Drop the computer-use-2025-01-24 beta header, dispatch on each tool_use block's name and toolset_name rather than input.action, handle every such block in a turn, and echo toolset_name on results. If you send the fine-grained-tool-streaming-2025-05-14 beta header alongside a toolset entry, remove it — that combination also 400s. On Bedrock, use computer_20251124 with the computer-use-2025-11-24 beta header. Side benefit: Haiku 5.5 also supports the browser-use toolset (browser_toolset_20260801), which Haiku 4.5 never had.
Fix 5: Stop editing history — thinking blocks are now append-only
This is the sneakiest 400. Haiku 5.5's thinking blocks stay valid only while everything sent before them is unchanged. If your code modifies system, tools, or earlier messages between requests and then sends a thinking block back, the API returns a 400. Haiku 4.5 never ran this check, so replay-style loops that mutate prompts break silently on upgrade.
The fix: keep conversations append-only. Pass thinking blocks back exactly as received, with tool results, and never rewrite earlier turns. Note this also affects which account replays a conversation: thinking blocks from Haiku 5.5 work only in the account that produced them (or a linked account). A different account's replay doesn't error — the API silently drops the block and the request succeeds without that reasoning.
The 3 silent breaks (200 OK, wrong result)
These don't throw errors — they just quietly do the wrong thing.
1. Responses can begin with a thinking block. Because adaptive thinking is on by default, a response can start with one or more thinking blocks before any text. If your code reads content[0] as the answer, it now reads a block with no text. Select content blocks by their type field, not by position.
2. Thinking tokens count toward max_tokens. A max_tokens value tuned for Haiku 4.5 can now stop with stop_reason: "max_tokens" right after the thinking block — before any actual answer. Raise max_tokens to leave room for thinking, or choose a lower effort level. Worse: thinking blocks from earlier assistant turns now stay in context and count as input tokens too (Haiku 4.5 kept only the latest turn's), so multi-turn conversations cost more than the tokenizer change alone explains. Use thinking-block clearing to prune older blocks.
3. The new tokenizer counts ~30% more tokens. Haiku 5.5 uses the same newer tokenizer as Claude 4.7 and later, so the same text produces roughly 30% more tokens than on 4.5. Recount every prompt with model set to claude-haiku-5-5 — don't reuse 4.5 measurements. And large images: 5.5 uses the high-resolution image tier, so a 2,000×1,500 image costs about 2.5× the visual tokens it did on 4.5.
The pricing cliff: $0.10 becomes $0.50 at 100,001 tokens
Haiku 5.5 is the only current Claude model priced by prompt length. Up to 100,000 prompt tokens: $0.10 input / $0.50 output per million. Above it: $0.50 / $2.50 — five times higher. Anthropic says about 90% of Haiku 4.5 requests stayed under the line, but combine the threshold with the 30%-heavier tokenizer and prompts that sat comfortably below 100K on 4.5 can cross it after migration. That "75% cheaper on average" headline quietly becomes 50% cheaper for long-context work. Recount before you budget — and remember batch processing takes another 50% off.
Two more things before you ship
Handle stop_reason: "refusal". Haiku 5.5 runs safety classifiers that can decline a request with no server-side fallback — your client has to handle it. It's also the first Haiku with built-in safeguards for high-risk cybersecurity requests, so penetration-testing-style prompts that worked on 4.5 may now refuse; Anthropic routes those through its trusted access programs.
Priority Tier isn't supported on 5.5. If your organization holds a Haiku 4.5 Priority Tier commitment, plan capacity separately — the model simply doesn't offer it. (Same theme as this week's GPT-5.5 retirement breaking Codex setups: model transitions always have a billing tail.)
Where does Haiku 5.5 actually shine? Summaries, classification, extraction, subagent work, live support — and it's now generally available in GitHub Copilot for subagents and quick edits. Anthropic still points complex agentic coding at Sonnet 5.5 and Opus 5.5, and on its own benchmarks Haiku 5.5 beats GPT-6 Luna (72.4% vs 48.9% on OSWorld 2.1 computer use) — though those are Anthropic's own figures, so treat them as vendor claims, not gospel.
Frequently Asked Questions
Why does Claude Haiku 5.5 return a 400 error on my old code?
Haiku 5.5 rejects five things Haiku 4.5 accepted: manual thinking budgets (budget_tokens), non-default temperature/top_p/top_k, assistant message prefill, the computer_20250124 tool, and thinking blocks sent back after earlier turns were edited. Each needs a specific request change — see Fixes 1–5 above.
Can I turn thinking off on Claude Haiku 5.5?
Yes — send thinking: {"type": "disabled"} with effort at low, medium or high. The same request at xhigh or max effort returns a 400. Alternatively, use a lower effort level, where the model can skip thinking entirely on simple requests.
Does Claude Haiku 5.5 accept temperature 0?
No. Only temperature: 1 and top_p: 0.99 are accepted; anything else — including top_p: 1 or any top_k — returns a 400. Omit all three parameters and guide behavior through prompting.
When is Claude Haiku 4.5 retired?
Anthropic's deprecation schedule lists claude-haiku-4-5-20251001 as active, retiring no sooner than October 15, 2026. The company gives at least 60 days' notice before a retirement takes effect, so check the official deprecations page for the confirmed date — but don't plan new work on 4.5.
Is Claude Haiku 5.5 really 75% cheaper than Haiku 4.5?
On average, per Anthropic — but only for typical workloads. The 90% per-token discount applies below 100,000 prompt tokens; above it, prices quintuple and the new tokenizer counts about 30% more tokens for the same text. Long prompts erode the headline saving fast.
Comments
Post a Comment