Claude Haiku 5.5(2026年10月7日提供開始)にモデルIDを差し替えたら、それまで動いていたコードが400エラーで止まった――これは不具合ではなく、Anthropic が移行ガイドで公表している破壊的変更そのものです。この記事は Claude API を使う開発者向けに、症状から原因を逆引きできる形で10個並べます。
最も多いのは次の3つです。(1)temperature / top_p / top_k に既定以外の値を入れている、(2)budget_tokens で手動の extended thinking を指定している、(3)アシスタントメッセージの prefill を送っている。いずれも Haiku 4.5 では通っていた書き方で、Haiku 5.5 では公式の移行ガイドどおりエラーになります。この3つを外して1回投げ直すのが最短の近道です。
まず結論:最多の3パターンと直す場所
症状 | 原因 | 送るJSONのどこを変えるか |
|---|---|---|
400エラー(invalid request) | サンプリングパラメータに既定以外の値 | temperature / top_p / top_k のキーごと削除 |
thinking を指定したリクエストだけエラー | budget_tokens による手動の extended thinking | budget_tokens をやめ、深さは effort で指定 |
会話の投げ方を変えた途端にエラー | アシスタントメッセージの prefill | messages の最後をユーザーターンで終える |
切り分け:最小のリクエストを1本だけ通す
原因を当てにいく前に、「アカウントとモデルIDは生きているのか」を先に確定させます。エンドポイントと認証ヘッダーは普段使っているものをそのまま流用し、ボディだけ次の最小形に置き換えて1本投げます。
- "model": "claude-haiku-5-5"
- "max_tokens": 1024
- "messages": [ { "role": "user", "content": "ping" } ]
これ以外のキーは入れません。temperature、top_p、top_k、thinking、そして messages の末尾に置いたアシスタントの書き出し(prefill)を全部落とした状態です。
- これが通った:モデルIDと提供経路は正常。原因はリクエストの中身にあります。消したキーを1つずつ戻していけば、どれが犯人か1分で割れます
- これも通らない:モデルIDの表記か、使っている提供先(Claude API / Amazon Bedrock / Google Cloud / Microsoft Foundry / Claude Platform on AWS)側の問題です。後述の原因10を先に見てください
原因10個:症状 → なぜ起きるか → 直し方
1. budget_tokens で思考予算を手で指定している
症状:thinking を付けたリクエストだけがエラーになる。付けない呼び出しは通る。
なぜ:Haiku 5.5 の思考は adaptive thinking に変わり、既定でオンです。手動の extended thinking はエラー扱いになりました。
直し方:thinking から budget_tokens を外します。深さを変えたい場合は effort で指定します(既定は medium。公式のベンチマーク図には Low / Medium / High / Xhigh / Max の5段階が登場します)。「思考を止めてコストを下げる」のではなく「effort を下げる」が正しい操作になった、と読み替えてください。
2. temperature / top_p / top_k を指定している(400エラー)
症状:どんな短いプロンプトでも400エラー。
なぜ:既定以外のサンプリングパラメータは400エラーになります。「0 を入れて決定論的に動かす」という定番の書き方がそのまま詰まります。
直し方:値を既定に戻すのではなく、キーそのものを送らないのが確実です。自作のラッパーや社内の共通クライアントが温度を既定で詰めていることが多いので、呼び出し側だけ直して直らないときは共通層を見てください。
3. アシスタントメッセージの prefill を送っている
症状:出力の書き出しを固定していた呼び出しだけがエラーになる。
なぜ:messages の最後をアシスタントのターンにして続きを書かせる prefill は、Haiku 5.5 ではエラーです。
直し方:messages の最後をユーザーターンで終える形に戻します。書き出しを縛りたいときは、prefill ではなく指示文の側で形式を伝えます。
4. computer use のツール名が古い
症状:画面操作系のツールを宣言している呼び出しだけが落ちる。
なぜ:Claude API と Google Cloud では、computer use がツールセットの指定を必要とする形に変わりました。
直し方:tools の computer_20250124 を computer_toolset_20260801 に差し替えます。なお Haiku 5.5 では browser use ツールも新しく使えます(Claude API と Google Cloud)。Claude の Python / TypeScript SDK は computer use と browser use にベータ対応しています。
5. 前のターンを書き換えて thinking ブロックを送り返している
症状:エラーは出ないのに、思考が引き継がれていないように見える。長い会話で品質が落ちる。
なぜ:前のターンを書き換えると thinking ブロックが無効になります。システムプロンプトや過去メッセージを後から整形・要約し直して投げ直す実装が該当します。
直し方:thinking ブロックを送り返すなら、会話は追記のみにします。また思考ブロックは、それを生成したアカウント(または連携アカウント)でしか使えません。保存した会話を別アカウントで再生する作りにしていると同じ形で壊れます。
6. 応答の1個目が thinking ブロックでパースが壊れる
症状:200が返っているのに、画面に出る本文が空。あるいはパースで例外になる。
なぜ:応答が thinking ブロックから始まることがあります。content の先頭を決め打ちでテキストとして読んでいたコードがそのまま壊れます。
直し方:コンテンツブロックは位置ではなく type で選ぶ。「配列の0番目」を見ている箇所を洗い出して、type がテキストのものを探す形に直します。移行で踏みやすく、しかもエラーにならないので気づきにくい箇所です。
7. thinking のテキストが返ってこない
症状:思考はオンのはずなのに、思考の中身が画面に出ない。
なぜ:thinking のテキストは既定で省略されます。
直し方:要約された思考が欲しければ、thinking.display に "summarized" を指定します。「思考が動いていない」のではなく「表示が既定で切られている」だけなので、ロールバックする前にここを見てください。
8. stop_reason が "refusal" で返ることを想定していない
症状:ごく一部のリクエストで、本文が空のまま終わる。例外処理に落ちる。
なぜ:安全性分類器がリクエストを拒否することがあります。サーバ側のフォールバックは用意されていません。
直し方:クライアント側で stop_reason が "refusal" のケースを処理します。利用者に見せる文言と、ログに残す形をあらかじめ決めておくのが実務では楽です。
9. max_tokens が足りず応答が途中で切れる
症状:文章が途中でぶつ切りになる。JSON を返させている箇所で閉じ括弧が来ない。
なぜ:理由が2つ重なります。ひとつは、コンテキストと出力が広がった一方で thinking トークンが max_tokens に数えられること。もうひとつは、トークナイザが Claude 4.7 以降と同じものに変わり、同じ文章が Haiku 4.5 比で約30%多いトークン数になることです。
直し方:プロンプトを数え直し、max_tokens とコスト見積もりを両方見直します。Haiku 5.5 のコンテキストウィンドウは1Mトークン、最大出力は128Kトークン(Message Batches API では output-300k-2026-03-24 のベータヘッダで300K)なので、上限そのものには余裕があります。単価の比較だけで請求額を見積もると外れるのも同じ理由です(公式は平均で約75%安くなるとしており、この計算にはトークン数の増加も織り込まれています)。
10. モデルIDの表記が提供先と合っていない
症状:最小のリクエストでも通らない。「そんなモデルは無い」と言われる。
なぜ:提供先によってIDの前置きが違います。Haiku 5.5 のIDは日付サフィックスの無いピン留めスナップショットです。
提供先 | モデルID |
|---|---|
Claude API | claude-haiku-5-5 |
Amazon Bedrock | anthropic.claude-haiku-5-5 |
Google Cloud | claude-haiku-5-5 |
Microsoft Foundry | claude-haiku-5-5 |
Claude Platform on AWS | claude-haiku-5-5 |
どうしても直らないときに戻せる先
締め切りが先にある場面では、いったん Haiku 4.5 に戻すのも手です。公式の非推奨表では、2026年10月9日時点で Haiku 4.5 はまだ Active・非推奨日は N/A(提供終了の告知は出ていない)で、「2026年10月15日より前には退役させない」という保証が付いています。ただし置き換え先は Haiku 5.5 ですから、戻すのは時間稼ぎと割り切って、上の10点を潰すほうが結局は早く済みます。
症状から引くチェックリスト
症状 | 疑うところ |
|---|---|
短いプロンプトでも400 | temperature / top_p / top_k の指定 |
thinking を付けた時だけエラー | budget_tokens による手動の思考予算 |
書き出しを固定した呼び出しだけエラー | アシスタントメッセージの prefill |
画面操作系のツールだけ落ちる | computer_20250124 のまま宣言している |
200なのに本文が空 | 応答の1個目が thinking ブロック(位置で読んでいる) |
思考の中身が出ない | thinking.display が既定(省略)のまま |
一部リクエストだけ無言で終わる | stop_reason が "refusal" |
応答が途中で切れる | max_tokens 不足(思考トークン+約30%増のトークナイザ) |
長い会話で品質が落ちる | 過去ターンの書き換えによる thinking ブロックの無効化 |
最小リクエストすら通らない | 提供先ごとのモデルIDの表記 |
同じ形でつまずくモデル
サンプリングパラメータと prefill の扱いが変わる移行は、Haiku 5.5 に限った話ではありません。Claude Sonnet 5.5 で400エラーが出るときの原因5つは同じ400型の切り分けで、thinking の指定方法まわりの考え方が流用できます。Claude Opus 5.5 が使えないときの確認7点、Claude Fable 5.1 の400エラーと tool_choice の制限も、手元の構成が複数モデルを切り替える作りなら併せて目を通しておくと手戻りが減ります。
Haiku 5.5 そのものの料金・性能・4.5 からの変化は、Claude Haiku 5.5 の提供開始と変更点にまとめています。
実務では、こうしたモデル更新のたびに「どこが壊れたのか」を追う時間がじわじわ効いてきます。Mihata では社内のAI活用の伴走支援も行っていますので、よろしければご相談ください。
よくある質問
Claude Haiku 5.5 で400エラーになる、いちばん多い原因は何ですか?
temperature / top_p / top_k に既定以外の値を指定していることです。Haiku 5.5 では既定以外のサンプリングパラメータが400エラーになります。値を既定に戻すのではなく、キーそのものを送らない形が確実です。
Haiku 5.5 で思考(thinking)をオフにしてコストを下げられますか?
Haiku 5.5 の思考は adaptive thinking で既定でオンです。budget_tokens による手動の extended thinking はエラーになります。深さを変えたい場合は effort で指定します(既定は medium)。
200が返るのに本文が空になるのはなぜですか?
応答が thinking ブロックから始まることがあるためです。コンテンツブロックは配列の位置ではなく type で選ぶように直してください。
Haiku 5.5 のモデルIDは提供先ごとに違いますか?
Claude API は claude-haiku-5-5、Amazon Bedrock は anthropic.claude-haiku-5-5 です。Google Cloud / Microsoft Foundry / Claude Platform on AWS はいずれも claude-haiku-5-5 です。
応答が途中で切れるときはどこを見ればよいですか?
max_tokens です。thinking トークンが max_tokens に数えられ、さらにトークナイザが変わって同じ文章が Haiku 4.5 比で約30%多いトークン数になるため、以前と同じ値だと足りなくなります。