この記事の目次
Claude Code の APIエラー 400 は、主にリクエストの内容に関するエラーです。多くは API がリクエストを拒否して返したもので、一部は送信前に Claude Code 自身が出しています。API Error: 400 の後ろに続く英語のエラー文言を照合すれば原因を切り分けられ、公式のエラーリファレンスは文言ごとに直し方を載せています。この記事では「画像が大きすぎる」「Claude Code が古くて選んだモデルに対応していない」「会話履歴のツール呼び出しが食い違った」「プロキシやゲートウェイがヘッダーを落とした」「MCP ツールの定義が不正」の5系統を扱います。主な対処は画像の縮小、claude update や /model、/rewind、ゲートウェイ設定、MCP サーバーの無効化で、条件や例外は各節で説明します。この記事では、文言から系統を特定し、公式どおりの手順で戻すところまでを順に説明します。
Claude Code の APIエラー 400 は何を意味するのか?
この記事で扱うエラーは、主にリクエストの入力内容に関するものです。公式リファレンスの「Request errors」の節は「リクエストの内容に関するエラー」と説明しており、ほとんどは API がリクエストを拒否して返したもので、一部は送信前に Claude Code 自身がローカルで出しています。
同じページでも、API Error: 500 や Repeated 529 Overloaded errors は「Server errors」という別の節に分類されています。400 系は原因がリクエストの内容にあるので、文言に応じて画像、モデル指定、Claude Code のバージョン、会話履歴、ツール定義、経由する経路を確認していきます。
このエラー一覧は CLI、デスクトップアプリ、クラウドセッションで共通です。3つとも同じ Claude Code CLI を内部で動かしているためで、どこで出た 400 でも以下の対応がそのまま使えます。500 や 529、接続エラーを含めた全体像は Claude Code のエラー原因を分類で読み解くガイド にまとめています。
表示された文言から原因をどう見分けるか?
API Error: 400 の後ろに出る文言を、次の表と照らし合わせてください。左の列は公式リファレンスに載っている文言の一部です。
| 文言に含まれる部分 | 系統 | 最初の対処 |
|---|---|---|
image dimensions exceed max allowed size |
画像 | 画像を縮小して貼り直す |
Request rejected as unprocessable by the model |
画像・文書の溜まりすぎ | Esc 2回で戻る、または /clear |
"thinking.type.enabled" is not supported for this model |
Claude Code が古い | claude update して再起動 |
does not support this model; version ... or newer is required |
Claude Code が古い | claude update、またはモデルを切り替える |
is older than the minimum version required by your organization's policy |
組織ポリシーのバージョン下限 | 更新してから続ける |
due to tool use concurrency issues / orphaned tool_result / duplicate tool_use ID |
会話履歴の不整合 | Opus 4.7/4.8 なら先に claude update、その後 /rewind または Esc 2回 |
Extra inputs are not permitted ... context_management |
プロキシ・ゲートウェイ | anthropic-beta ヘッダーを転送させる |
role 'system' must precede an 'assistant' message |
プロキシ・ゲートウェイ | プロキシを外して再現を確認 |
tools.N.custom.input_schema: JSON schema is invalid |
MCP ツール定義 | 該当 MCP サーバーを無効化 |
max_tokens must be greater than thinking.budget_tokens |
出力上限の設定 | CLAUDE_CODE_MAX_OUTPUT_TOKENS を思考予算より大きくする |
公式の一覧では、同じ「Request errors」の節に Prompt is too long(会話と添付がコンテキストウィンドウを超えた)や Request too large(リクエスト本体が 32MB の上限を超えた)も入っています。前者は /compact か /clear、内訳の確認は /context が公式の対処です。コンテキストの仕組みは Claude Code のコンテキストウィンドウ解説 を参照してください。
画像や PDF を貼ったあとに 400 が出たときは?
スクリーンショットを貼った直後に image dimensions exceed max allowed size が出たら、画像のサイズか縦横の寸法が API の上限を超えています。公式が示す上限は、画像1枚なら長辺 8000 ピクセル、会話内の画像が 20 枚を超えると 3000 ピクセルです。画面全体ではなく必要な範囲だけを撮り直すのが、公式も挙げている手早い方法です。同じエラーが何度も戻ってくる場合は Claude Code の更新が勧められています。
Unable to resize image は、添付した画像を Claude Code が API に送る前に縮小できなかったことを示します。入力形式の変換を求める表示があれば PNG、JPEG、GIF、WebP のいずれかに変換して貼り直します。CMYK の JPEG やアニメーション WebP、壊れている可能性のあるファイルが原因と書かれていれば、メッセージが勧める形式で保存し直します。
画像や文書を大量に貼ってきた長い会話では、次の文言が出ることがあります。
API Error: 400 Request rejected as unprocessable by the model (too many or oversized images, or unsupported parameters)
Claude Codeでこれが繰り返し出るなら、画像を足したターンより前まで Esc を2回押して戻るか、/clear で新しい会話を始めます。/clear はプロジェクトのメモリを残したまま新しい会話を始めるコマンドで、それまでの会話は同じ Claude Code のプロセス内なら、rewind メニューの先頭に出る /resume <session-id> (previous session) から再開できます。
PDF の場合は PDF too large (max 100 pages, 20MB) が目安です。ファイル全体を添付せず、Read ツールでページ範囲を指定して読ませるか、pdftotext などでテキストに抜き出してそのファイルをパスで渡します。
モデル指定や Claude Code のバージョンが原因の 400 はどう直すか?
新しいモデルを選んだ途端に 400 が出るなら、まずバージョンを疑います。代表的なのが次の文言です。
API Error: 400 ... "thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.
公式の説明は「使っている Claude Code が、選んだモデルの最低バージョンより古い」です。claude -v で現在のバージョンを確かめ、claude update で更新して Claude Code を再起動します。
claude -v
claude update
公式が挙げる最低バージョンは、Opus 4.7 が v2.1.111、Opus 4.8 が v2.1.154、Sonnet 5 が v2.1.197、Opus 5 が v2.1.219、Opus 5.5 が v2.1.280、Sonnet 5.5 が v2.1.284 です。更新できない事情があるときは /model で Opus 4.6 か Sonnet 4.6 を選び直す方法も示されています。
does not support this model; version ... or newer is required という文言は、エラーコード claude_code_version_too_old の 400 です。モデルごとの下限に引っかかった場合は、/model で別のモデルに切り替えればその場で作業を続けられます。is older than the minimum version required by your organization's policy と出た場合は組織の設定による下限なので、更新してから続けます。
更新したのに直らないときは、2点を確認してください。1つ目はリリースチャネルです。stable チャネルでは claude update しても最新の stable 版より先には進まず、それが必要なバージョンより古いことがあります。公式は latest チャネルに移ってから更新するよう案内しています。2つ目は、エラーを出したのがどの Claude Code かです。自分で入れた CLI なら claude update、デスクトップアプリならアプリの更新、VS Code 拡張なら拡張の更新と、更新すべき対象が分かれています。
番号ではなく There's an issue with the selected model と出る場合は、モデル名が認識されないか、アカウントにそのモデルの利用権がありません。対話モードでは /model で一覧から選び、-p の非対話モードでは --model か環境変数 ANTHROPIC_MODEL で正しい値を渡します。公式は、版番号付きのフル ID より sonnet や opus といったエイリアスを使うことを勧めています。Claude Opus is not available with the Claude Pro plan は、契約プランに含まれないモデルを選んでいる状態です。/model でプランに含まれるモデルを選び、最近プランを上げたばかりなら /logout と /login でログインし直します。モデルごとの性格の違いは Claude Code のモデルの違い で扱っています。
会話履歴の食い違い(tool_use や thinking)で出た 400 はどう戻すか?
作業の途中で、次のような文言が出ることがあります。
API Error: 400 due to tool use concurrency issues. Run /rewind to recover the conversation.
API Error: 400 orphaned tool_result in conversation history. Run /rewind to recover the conversation.
API Error: 400 duplicate tool_use ID in conversation history. Run /rewind to recover the conversation.
公式によれば、どれも「Claude Codeの履歴内の tool_use、tool_result、thinking ブロックの並びが、API の期待と合わなくなった」という同じ意味です。Opus 4.7 や Opus 4.8 を使っている場合は、最初に claude update を実行します。v2.1.156 より前の版では通常のツール利用中にこのエラーが起き、/rewind では解消しないと公式に書かれているためです。/rewind は会話やコードを以前の時点に戻すためのコマンドです。メニューの Restore code や Restore code and conversation を選ぶとファイルの変更も戻るため、今のコードを残したいときは Restore conversation(コードはそのままで会話だけを戻す)を選びます。そのうえで、文言のとおり /rewind を実行するか Esc を2回押し、壊れたターンより前のチェックポイントから続けます。
似た系統の文言と対処も、公式は個別に示しています。
Invalid data in redacted_thinking block: v2.1.281 以下で毎ターン失敗するならclaude updateしてからセッションを再開し、それでも続けば/cleartool_use.name: String should have at most 200 characters:claude updateしてから会話を再開する。更新後の版は読み込み時に長すぎる名前を修復するmax_tokens must be greater than thinking.budget_tokens: 環境変数CLAUDE_CODE_MAX_OUTPUT_TOKENSを思考予算より大きい値にする
プロキシや LLM ゲートウェイ経由で 400 が出るときは?
社内のゲートウェイや ANTHROPIC_BASE_URL で指定したプロキシを経由しているときにだけ 400 が出るなら、経路側を疑います。代表は次の文言です。
API Error: 400 ... Extra inputs are not permitted ... context_management
公式の説明では、Claude Code と API の間にあるプロキシやゲートウェイが anthropic-beta ヘッダーを落としたため、そのヘッダーとセットで送られる項目を API が受け付けなかった状態です。ゲートウェイ互換性のページは、Anthropic 形式のリクエストを受けて Amazon Bedrock に転送するゲートウェイでよく起きると補足しています。対処は、ゲートウェイに anthropic-beta ヘッダーを転送させることです。それができない場合の代替として、起動前に次の環境変数を設定する方法が示されています。
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
role 'system' must precede an 'assistant' message が毎ターン出る場合も、プロキシやゲートウェイが独自の system メッセージを足している可能性が高いと公式は説明しています。プロキシを通さずに接続して再現するかを確かめ、再現しなければ運用担当者に報告します。/clear で新しい会話にしても同じエラーが出るなら、原因は保存された会話ではなく通信経路にあります。
Bedrock や Google Cloud を直接使う構成の設定は、Claude Code の Bedrock 連携ガイド と Vertex AI 連携ガイド にまとめています。
MCP サーバーを追加してから 400 が出るときは?
MCP サーバーを入れた直後から毎回 400 になるなら、ツール定義の不正が考えられます。
API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid
あるツールの input_schema が API の JSON Schema 検証に通らず、リクエスト全体が拒否された状態です。tools. の後ろの数字はツールの名前ではなく、送ったツール一覧の中の位置にすぎません。そのため、文言だけではどのサーバーが原因か分かりません。
Claude Codeの公式の手順は3段です。v2.1.216 より前の版なら claude update します。それ以降の版では各 MCP サーバーのログに、拒否されるツールを名指しする行が出ていないかを確認します。どのログにも出ていなければ、サーバーを1つずつ無効にして原因を特定します。自分でサーバーを作っている場合は、トップレベルのプロパティ名を 1〜64 文字の半角英数字と _、.、- だけにしてください。MCP の追加と管理の基本は Claude Code の MCP ガイド で説明しています。
表にない文言が出たらどの順で調べるか?
どの系統にも当てはまらないときの、切り分けのための確認例です。コマンドとフラグは CLI リファレンス に載っています。
claude -vでバージョンを確認し、claude updateで更新する。上の各節のとおり、更新で解消する 400 がいくつもあるためです- 設定が効いていない、起動がおかしいと感じる場合は、シェルから
claude doctorを実行する。セッションを起動せずに、インストール状態と設定ファイルの検証エラーを表示します。セッション内では/doctorが使えます claude --debugで起動し、デバッグモードで再現させる。ログの保存先を決めたいときは--debug-file <path>を使います- それでも分からなければ、Claude Code 内の
/feedbackで Anthropic に報告する
ログの読み方は Claude Code のエラーログの確認方法 を参照してください。
なお、この記事で挙げた最低バージョンや画像の寸法上限は、2026年10月19日に取得した公式エラーリファレンスの記述に基づきます。対処にはバージョン条件が付いているものが多いため、表と違う文言が出たときは、その英文で公式エラーリファレンスのページ内を検索してください。