Claude Media
Response incomplete表示の意味とClaude Codeでの再開方法

Response incomplete表示の意味とClaude Codeでの再開方法

「The response above may be incomplete」の意味を解説。4つの原因パターン、途中経過が消えずに残る理由、対話・非対話それぞれでの再開方法をまとめます。

Claude Codeの応答の末尾にThe response above may be incomplete.と出たら、ストリーミング配信中の接続がターン完了前に失敗したという意味です。すでに完了したテキストブロックやツール呼び出しはそのまま画面に残り、破棄はされません。同じツール呼び出しを再送すると二重実行になりかねないため、Claude Codeは途中経過を保持したままこの通知を追加する設計になっています。エラーではなく、安全のための途中経過保存だと捉えるのが正確です。

The response above may be incompleteとは何か

このメッセージは、Claudeがテキストブロックやツール呼び出しを1つ完了させたあと、あるいは思考を終えて次のブロックを書き始めたあとにストリーミングが失敗したときだけ出ます。原因によって表示が変わります。

API Error: Server error mid-response. The response above may be incomplete.
API Error: Connection lost mid-response. The response above may be incomplete.
API Error: Your computer went to sleep mid-response. The response above may be incomplete.
API Error: The response stopped arriving. The response above may be incomplete.

4つの原因パターン

表示原因備考
Server error mid-response原因ストリーム中のoverloadedや5xxエラー備考Claude Code v2.1.199以降が必要。それ以前は途中経過ごと破棄しターン全体をエラー扱いにしていた
Connection lost mid-response原因接続が切断された備考v2.1.227より前は「Connection closed mid-response」と表示
Your computer went to sleep mid-response原因スリープ復帰後、接続が切れたとみなされた備考端末がスリープしている間はストリームを読み続けられない
The response stopped arriving原因接続は維持されているがデータが止まった(ストリーミングアイドルwatchdogが検知)備考v2.1.227より前は「Response stalled mid-stream」。v2.1.222より前は、ANTHROPIC_BASE_URL等のgateway経由でパース済みイベントしか見ていなかったため誤検知が起きていた

表示が出るまでに見える前兆

この通知が出る前に、応答ストリームが20秒間データを止めた時点でWaiting for API response · will retry in … · check your networkという待機表示が先に出ることがあります。この時点ではまだ失敗は確定していません。Claude Codeが接続を切って再試行するまでのカウントダウンで、データが再開するか再試行が成功すれば表示は消え、The response above may be incompleteにはつながりません。逆にカウントダウンの末に接続が切れて再送もできない状態だったときに、初めてこの通知が出ます。なおadvisorに相談している最中は、レビューに時間がかかるぶんこの待機表示のしきい値が90秒に延びます。20秒のまま扱うと正常な待ち時間まで異常と誤認してしまうためです。

なぜ途中経過が消えずに残るのか

ここが翻訳では伝わりにくいポイントです。同じリクエストを単純に再送すると、Claudeがすでに実行したツール呼び出し(ファイル編集やコマンド実行)を重複して走らせてしまう危険があります。そのためClaude Codeは、失敗した時点までに完了した内容を保持し、最後の未完了ブロックだけを破棄したうえでこの通知を追加します。ターンを丸ごとエラーにするより安全な選択です。

この通知が出ない3つのケースもあります。ターンの早い段階での失敗は自動リトライされるか別のエラーになります。応答がすでに完了したあとに接続が切れた場合は、完全な応答をそのまま保持してターンを正常終了します。v2.1.222より前は、応答完了後の切断でもこの通知が誤って表示され、実際には完全な応答をエラー扱いにしていました。

対話セッションでの再開方法

画面に残っている内容が、失敗までにClaudeが完了させたブロックです。最後の未完了ブロック(文の途中や、実行しかけのツール呼び出し)だけが欠けています。

continueと送るだけで、Claudeは最後に完了したブロックの続きから再開します。

非対話モード(-p)での挙動

非対話実行(-p)では出力形式によって見え方が変わります。

  • デフォルトのテキスト出力: それまでに保持していた最後の完了ブロックを出力し、続けてこの通知を出します。保持しているテキストが無い場合(会話がターン途中でコンパクションされて消えていた場合など)は、この通知だけが出ます。v2.1.219より前は、保持していたテキストを出さずにこの通知だけを出していました
  • --output-format jsonまたはstream-json: resultフィールドにこのメッセージが入ります

v2.1.219より前のバージョンでは、-pのテキスト出力はこの通知だけを出し、失敗までにClaudeが完了させていたテキストを表示しませんでした。スクリプトから出力を拾っている場合、古いバージョンのままだとこの部分の出力が丸ごと欠落する点に注意してください。

続きを進めるには、セッションを再開してcontinueを送ります。

claude --continue

サブエージェントの結果として届いたとき

Sub-agentsに委譲したタスクの中でこの失敗が起きた場合、親エージェントが受け取る結果は少し違います。フォアグラウンドで実行中のサブエージェントがすでにテキストを出力していたなら、その部分的な出力が「未完了」の印付きでそのまま親に渡されます。ツール呼び出ししか出力していなかったサブエージェントも、同様に部分的な結果として扱われます。委譲の設計や再開手順はClaude Code Sub-agents完全ガイドにまとめています。リトライが尽きて完全に失敗した場合は、この通知ではなくAgent terminated early due to an API errorという別のメッセージになります。この改善はClaude Code v2.1.199で入りました。

v2.1.199より前はどう扱われていたか

この通知の仕組み自体が、Claude Code v2.1.199で新設されたものです。それ以前のバージョンでは違いました。ストリーミング中にoverloadedやサーバーエラーが起きると、Claudeが完了させていたテキストやツール呼び出しをまとめて破棄していました。そのうえでターン全体を単なるエラーとして報告していたのです。読者側から見ると、せっかく生成された途中経過が跡形もなく消えてやり直しになっていたということです。同じv2.1.199では、サブエージェントがレート制限やサーバーエラーで打ち切られたときに、それまでの部分的な作業を親エージェントへ黙って捨てるのではなく返すようにもなりました。あわせて、サブエージェントがAPIエラー(使用量上限到達など)を成功した結果であるかのように誤って報告してしまう不具合も修正されています。バージョンを比較すると、v2.1.199は「失敗を隠さず、完了した分は確実に手元に残す」という方向への一連の変更点だったと分かります。詳細はClaude Code v2.1.199にまとめています。

Agent terminated early due to an API errorとの違い

似た場面で出るメッセージにAgent terminated early due to an API errorがあります。これはSub-agentsのAPIリクエストが完全に失敗し、リトライも尽きて、サブエージェントがタスクを終える前に停止したときに出るエラーです。一方で本記事のThe response above may be incompleteは事情が違います。レート制限やサーバーエラーがフォアグラウンドのサブエージェントやメインの会話をストリーミングの途中で中断させたものの、それまでにテキストが生成できていた場合に出ます。同じ失敗の種類でも、テキストがまったく出力されないまま打ち切られたか、部分的にでも出力できていたかで、届くメッセージの種類が変わる仕組みです。

Request timed outとの違い

似た場面で出るRequest timed outは、応答がまだ何も届いていない段階でのタイムアウトを指します。すでに一部でも応答が届いたあとに途切れる本記事のケースとは別の事象です。切り分けの詳細はClaude Code Request timed outエラーで扱っています。

よくある質問

表示された内容は信用してよいですか

保持されているのは、失敗の時点までにClaudeが実際に完了させたブロックです。最後の未完了ブロック(文の途中や、実行しかけのツール呼び出し)だけが欠けている点に注意してください。

continueと送る以外に対処はありますか

ほとんどの場合はcontinueで十分です。頻発するようであれば、原因が接続断なのかサーバー側の一過性エラーなのかを表示メッセージで見分け、接続断が繰り返すならネットワーク環境を見直してください。ノートPCのスリープが原因のYour computer went to sleep mid-responseが繰り返し出るなら、長時間タスクの最中はスリープを無効にしておくのが確実な回避策です。

非対話モードのスクリプトで、この通知が出たかどうかを機械的に判定できますか

--output-format jsonまたはstream-jsonを使えば、resultフィールドの文字列にこの通知が含まれているかを見るだけで、途中終了だったかどうかをスクリプト側で判定できます。デフォルトのテキスト出力より構造化された判定がしやすくなります。

このメッセージが出た分は使用量にカウントされますか

すでに生成された部分はモデルが実際に出力したトークンなので、通常のリクエストと同様にカウントされます。

Amazon BedrockやGoogle Cloud経由でも起きますか

起きます。ただしANTHROPIC_BASE_URLなどのgateway経由の接続には注意が必要です。v2.1.222より前はパース済みイベントだけを監視していたため、実際には接続が生きているのにこの通知が誤って出ることがありました。v2.1.222以降にアップグレードすると、この種の誤検知は解消します。社内ゲートウェイやプロキシを経由する構成では、この誤検知が「頻発する不具合」に見えていたケースが多く、バージョンを上げるだけで体感頻度が変わることがあります。

応答が完了したあとにこの通知が出ることはありますか

v2.1.222以降ではありません。応答が完了したあとに接続が切れても、Claude Codeは完全な応答をそのまま保持してターンを正常終了します。v2.1.222より前は、応答完了後の切断でもこの通知が誤って表示され、完全な応答をエラー扱いにしていたため、古いバージョンではこの区別が付きませんでした。

まとめ

The response above may be incompleteは、応答途中の接続失敗を安全に扱うための通知であり、失敗そのものを表すエラーではなく、途中経過の保存を意味します。対話セッションならcontinue、非対話モードならセッション再開後のcontinueで、失敗したところから作業をそのまま続けられます。表示される原因の文言(サーバーエラー・接続断・スリープ・応答停止)を見れば、次に何をすればよいかもおおよそ判断できます。

この記事を共有:XはてブLinkedIn