Claude Code のエラー

Request too large for the API's 32MB request limit

結論

リクエスト全体が32MBを超えた状態。添付した画像やPDFの容量が主因。

確認した版 Claude Code v2.1.214
確認日 2026年8月21日
最終更新 2026年8月21日
根拠 一次情報で確認

エラー文字列

Claude Code
Request too large for the API's 32MB request limit

何が起きているか

APIへ送るリクエスト全体が 32MB の上限を超えました。

これはトークン数の話ではありません。 「文字数が多い」のではなく「データの容量が大きい」という制限です。ここを取り違えると、/compact を試して直らずに時間を使うことになります。

コンテキスト長の上限 リクエストサイズの上限(このエラー)
単位 トークン バイト(32MB)
主な原因 会話が長い 添付ファイルが重い
対処 /compact /clear 添付を減らす・圧縮する

何が容量を食っているか

リクエストには、会話の履歴と添付したファイルの中身が含まれます。

種類 実際の重さ
写真 スマートフォンの写真 1枚で 3〜8MB。このエラーの主因
UIのスクリーンショット 4K でも 0.5MB 程度。単体で上限に当たることは少ない
PDF 図版の多い資料は数十MBになることがある
大きなテキストファイル ログやデータのダンプ
複数ファイルの同時添付 個々は小さくても合計で超える

⚠️ 画像はエンコードされて送られるため、元のファイルサイズより大きくなります。 「25MBだから大丈夫」と思っても超えることがあります。

直し方

1. 何を添付したか振り返る

直前に画像・PDF・大きなファイルを渡していませんか。心当たりがあるものを1つ外して再送すると、原因が確定します。

2. 画像を小さくする

解像度を下げるのが最も効きます。 コードやUIのスクリーンショットなら、横 1600px 程度あれば読み取りには十分です。

Windows(PowerShell・標準機能のみ)

Add-Type -AssemblyName System.Drawing
$src = [System.Drawing.Image]::FromFile("C:\path\to\shot.png")
$w = 1600
$h = [int]($src.Height * $w / $src.Width)
$dst = New-Object System.Drawing.Bitmap($w, $h)
$g = [System.Drawing.Graphics]::FromImage($dst)
$g.InterpolationMode = 'HighQualityBicubic'
$g.DrawImage($src, 0, 0, $w, $h)
$dst.Save("C:\path\to\shot-small.jpg", [System.Drawing.Imaging.ImageFormat]::Jpeg)
$g.Dispose(); $dst.Dispose(); $src.Dispose()

macOS(標準の sips)

sips -Z 1600 shot.png --out shot-small.jpg

Linux(ImageMagick)

convert shot.png -resize 1600x -quality 80 shot-small.jpg

⚠️ 「JPEG にすれば軽くなる」はスクリーンショットには当てはまりません。 実測ではダークなコードエディタの4K画面が PNG 0.54MB に対し JPEG 1.45MB と、2.7倍に増えました。

縮小したあとは JPEG、縮小しないなら PNG のまま。 詳しくは Image was too large を参照してください。

3. PDF を分割・軽量化する

必要なページだけを取り出します。

macOS / Linux(qpdf)

qpdf input.pdf --pages . 5-12 -- output.pdf

Ghostscript で圧縮する

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook \
   -dNOPAUSE -dQUIET -dBATCH -sOutputFile=small.pdf input.pdf

そもそも PDF を渡すより、必要な箇所をテキストで抜き出して渡すほうが速く、正確です。

4. テキストは添付ではなくファイルとして扱う

大きなログやデータを会話に貼り付けたり添付したりせず、リポジトリ内に置いてパスを伝えてください。

logs/error-2026-08-21.log を読んで、認証まわりのエラーだけ抜き出して

必要な部分だけが読み込まれるため、容量もコンテキストも節約できます。

5. サイズを事前に確認する

Windows(PowerShell)

Get-ChildItem "C:\path\to\attachments" |
  Select-Object Name, @{n='MB';e={[math]::Round($_.Length/1MB,2)}} |
  Sort-Object MB -Descending

macOS / Linux

ls -lhS /path/to/attachments | head

6. 似たエラーとの区別

表示 対象 対処
Request too large for the API's 32MB request limit リクエスト全体 添付を減らす
Image was too large 画像1枚 その画像を圧縮する
PDF too large PDF 1件 分割・圧縮する
Prompt is too long トークン数 /compact /clear

再発防止

  • スクリーンショットは撮ったまま渡さない。 4K ディスプレイの全画面キャプチャは数MBあります。必要な範囲だけ切り取る習慣をつけると、容量もコンテキストも減ります
  • ログやデータはファイルに置いてパスを渡す。会話に貼るのは、短い抜粋だけにする
  • 資料を丸ごと渡すより、該当箇所を特定して渡すほうが回答の精度も上がります
  • 複数の添付を一度に渡さない。1つずつ渡すほうが、結果的にやり取りが速く終わります

この手順で直りませんでしたか?

環境を添えて報告いただければ、追加の原因を検証してこのページに反映します。

エラーを報告する