ガイド一覧へ戻る
トラブルシューティング·2026年9月30日·読了6分

Claude Codeの「ストリーム途中で応答が停止しました」と「完全なデータを受信する前にストリーミング応答が終了しました」—ストリームを停止させる原因

どちらのメッセージも、モデルからストリーミングされていた回答が完了前に停止したことを意味します。「上の応答は不完全である可能性があります」は、回答の一部が届いた後にストリームが停止、切断、または破損した場合に表示されます。Claude Codeは届いた内容を保持し、continueと返信するとターンを途中から再開します。「完全なデータを受信する前にストリーミング応答が終了しました」は、利用可能な内容が何も届かなかったことを意味するため、Claude Codeはストリーミングなしで同じリクエストを再試行します。それでも繰り返す場合、メッセージ自体が示すとおり、通常はClaude Codeとモデルプロバイダーの間にあるプロキシまたはゲートウェイが原因です。

最終確認日:。

どちらのメッセージも、モデルからストリーミングされていた回答が完了前に停止したことを意味します。「上の応答は不完全である可能性があります」は、回答の一部が届いた後にストリームが停止、切断、または破損した場合に表示されます。Claude Codeは届いた内容を保持し、continueと返信するとターンを途中から再開します。「完全なデータを受信する前にストリーミング応答が終了しました」は、利用可能な内容が何も届かなかったことを意味するため、Claude Codeはストリーミングなしで同じリクエストを再試行します。それでも繰り返す場合、メッセージ自体が示すとおり、通常はClaude Codeとモデルプロバイダーの間にあるプロキシまたはゲートウェイが原因です。

エラー

printed by Claude Code
API Error: Response stalled mid-stream. The response above may be incomplete.

# the wording in Claude Code's current error reference for the same stall:
API Error: The response stopped arriving. The response above may be incomplete.

# when nothing complete arrived at all:
Streaming response ended before any complete data was received. Retrying without
streaming. If this keeps happening, check any proxy or gateway between Claude Code
and your model provider.

原因と対処法の概要

原因対処法
接続は開いたままでしたがデータの配信が停止し、Claude Codeのストリーミングアイドルウォッチドッグが中断しましたcontinueと返信してください。接続上、長い一時停止が正当なものである場合は、ウォッチドッグを無効にするのではなく、CLAUDE_STREAM_IDLE_TIMEOUT_MSを引き上げてください。
接続が切断された、コンピューターがスリープした、またはサーバーが応答途中でエラーを返したcontinueと返信してください。回答の完了部分は保持されます。繰り返す場合は、VPN、Wi-Fiの切り替え、スリープ設定を確認してください。
途中のプロキシまたはゲートウェイがストリームをバッファリング、切り詰め、または拒否した。たとえばリクエスト本文がサイズ上限を超えた場合一度、プロキシまたはゲートウェイなしでテストしてください。プロキシの本文サイズ上限と読み取りタイムアウトを引き上げ、API経路の応答バッファリングを無効にします。
Claude Codeのアップグレード直後に発生し始めた/statusでバージョンを記録してください。2026年7月の報告では、同じマシン上で停止メッセージの発生率が2.1.210では0%、2.1.217〜2.1.218では3.0〜4.4%と測定されています。

まずcontinueと返信する

Claude Codeは、失敗前に完了したテキストとツール呼び出しを保持し、通知を追加します。対話セッションでは、届いた内容を読み、continueと返信してください。ターンはそこから再開されます。非対話実行(claude -p)では、Claude Codeは最後に完了したテキストブロックの後に通知を表示します。そのセッションを再開してcontinueを送信してください。1回だけ発生した場合、ほかに変更する必要はありません。

メッセージを見分ける

Claude Codeのエラーリファレンスでは、不完全な応答に関する文言を原因別に列挙しています。応答途中のサーバーエラー、応答途中の接続切断、応答途中のコンピューターのスリープ、応答の受信停止(停止状態)、応答の一部が届かなかった場合、応答ストリームの形式が不正だった場合です。2026年7月の報告では、停止状態について古い文言である「Response stalled mid-stream」が引用されています。別のメッセージ「Streaming response ended before any complete data was received」は、完全なデータが何も届かなかった場合です。そのためClaude Codeは部分的な回答を保持せず、ストリーミングなしで再試行します。

ウォッチドッグは無効にせず調整する

Claude Code は、ストリームからの受信が途絶えたときにストリームを中止する4つのタイマーを使用しています。これにより、切断された接続で処理が停止したままになるのではなく、失敗として扱われて再試行されます。タイマーは、最初のバイトを受信するまでの期限、イベント単位のウォッチドッグ(300秒)、バイト単位のウォッチドッグ(Anthropic API への直接接続では180秒、カスタムの ANTHROPIC_BASE_URL を含むその他の接続では300秒)、および一部のプロバイダーで適用される5分間のボディ受信アイドルタイムアウトです。CLAUDE_STREAM_IDLE_TIMEOUT_MS は両方のウォッチドッグを設定します。5分未満の値は5分に引き上げられ、バイト単位のウォッチドッグの上限は30分です。バックグラウンドエージェントにも適用されるよう、settings.json の env ブロックに設定してください:

~/.claude/settings.json
{
  "env": {
    "CLAUDE_STREAM_IDLE_TIMEOUT_MS": "600000"
  }
}

プロキシまたはゲートウェイの背後にいる場合は、なしでテストする

ストリーミングなしでの再試行メッセージが繰り返される場合は、いったん経路を外してください。単一セッションでHTTPS_PROXYの設定を解除するか、NO_PROXY="*"を設定し、同じタスクを実行します。停止すれば、その経路が原因です。一般的な原因は、長時間のセッションで超過するリクエスト本文サイズ上限、ライブストリームを長い無通信状態に変える応答バッファリング、モデルの思考時の一時停止より短い読み取りタイムアウトです。ANTHROPIC_BASE_URLがゲートウェイを指している場合、最初のバイトの期限は実行されませんが、バイトレベルのウォッチドッグは実行されることに注意してください。

Kunavo経由で呼び出している場合

Kunavoはそのメッセージが対象とするゲートウェイの1つです。Claude Codeが呼び出すエンドポイント/v1/messagesでの動作は次のとおりです。上流のストリームは、最初のコンテンツイベントを生成するまで保留されます。それより前に上流エラーが発生したり、ストリームが空のまま終了したりすると、その試行は失敗します。その後、モデルに別のチャネルがある場合はそのチャネルで再試行するか、HTTPエラーとして返します。何も含まれないまま終了する200ストリームとして返すことはありません。コンテンツ開始後の停止をゲートウェイが再試行することはできないため、Claude Codeのウォッチドッグとcontinueが適切な手段です。 OpenAI互換側でストリームがどのように終了するか、また回答全体と途中で切れた回答を見分ける方法については、 LLM APIストリーミングエラー.

よくある質問

Claude Codeで「上の応答は不完全である可能性があります」とはどういう意味ですか?

回答の一部が届いた後でストリーミング回答が停止しました。停止、接続切断、サーバーエラー、またはコンピューターのスリープが原因です。Claude Codeは完了したテキストとツール呼び出しを保持し、通知を追加します。continueと返信すると、届いた内容からターンが再開されます。

「Response stalled mid-stream」は「The response stopped arriving」と同じですか?

どちらも同じ状況を表します。接続は開いたままでしたがデータの配信が停止し、ストリーミングウォッチドッグが中断しました。Claude Codeの現在のエラーリファレンスでは「The response stopped arriving」が使われています。2026年7月に提出された報告では「Response stalled mid-stream」と記載されています。

Claude Codeが「Retrying without streaming」と表示するのはなぜですか?

完全なデータを受信する前にストリームが終了し、保持できるものが何もなかったためです。Claude Codeは同じリクエストをストリーミングなしで再送信します。メッセージが表示され続ける場合は、Claude Codeとプロバイダーの間にあるプロキシまたはゲートウェイを確認してください。本文サイズの上限、バッファリング、読み取りタイムアウトが一般的な原因です。

ストリーミングウォッチドッグを無効にすべきですか?

いいえ。ウォッチドッグは、応答しなくなった接続を失敗として扱い、セッションを無期限にハングさせずに再試行するために存在します。正常な動作でも接続が長時間データを送らなくなる場合は、CLAUDE_ENABLE_STREAM_WATCHDOGまたはCLAUDE_ENABLE_BYTE_WATCHDOGを0に設定するのではなく、CLAUDE_STREAM_IDLE_TIMEOUT_MSを引き上げてください(5分未満の値は5分に引き上げられます)。

ANTHROPIC_BASE_URLでゲートウェイを使用すると、発生しやすくなりますか?

Claude Codeとプロバイダーの間に中継点が1つ増えるたびに、ストリームがバッファリング、切断、またはタイムアウトする可能性のある場所も1つ増えます。そのため、メッセージが繰り返される場合は、その中継点を経由せずにテストしてください。ゲートウェイ接続でもバイトレベルのウォッチドッグは実行されますが、ANTHROPIC_BASE_URLがゲートウェイを経由する場合、最初のバイトの期限は適用されません。

関連ガイド

エラーの詳しい意味はエラーリファレンスをご覧ください。キーは新規登録と認証ガイドから1分で取得できます。