1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code で "The response stopped arriving"(旧 "Connection closed mid-response")が出たときの直し方と、文言の新旧対応

1
Posted at

Claude Code が応答の途中で止まり、The response stopped arriving. The response above may be incomplete.(古い版では Connection closed mid-response)と出たときの手順です。まず画面に残った内容を確認して continue と送ります。何度も出るなら、長い出力を分けて書かせ、それでも出るなら回線側(ルータ、IPv6、MTU)を疑います。

確認環境は Claude Code 2.1.314、macOS 26.6.2、2026-10-31 です。

症状

応答の途中で、次のどれかで止まります。

API Error: The response stopped arriving. The response above may be incomplete.
API Error: Connection lost mid-response. The response above may be incomplete.

古い版では、同じ場面で次の文言が出ていました。

API Error: Connection closed mid-response. The response above may be incomplete.
API Error: Response stalled mid-stream. The response above may be incomplete.

結論

  • 公式の Error reference では、v2.1.227 より前の Connection closed mid-response が Connection lost mid-response に、Response stalled mid-stream が The response stopped arriving に改名されています。ネットで見つかる古い記事の対処は、新しい文言にもそのまま当てはまります
  • 応答の途中で失敗しても、Claude Code は完成済みの部分を残します。continue と返信すれば、最後に完成したブロックの続きから書かせられます
  • 繰り返し出るときは、長い出力を分けて書かせ、回線側を見直します

文言の新旧対応

公式の記述に基づく対応表です。

古い版(v2.1.227 未満) 新しい版 公式の説明
Connection closed mid-response Connection lost mid-response 接続が切れた。プロキシやゲートウェイが応答の本体を途中で閉じた場合にも出る
Response stalled mid-stream The response stopped arriving 接続は開いたままデータが来なくなり、無通信監視(streaming idle watchdog)が切った

このほか、同じ「The response above may be incomplete」の仲間として、公式は次の 4 つを挙げています。

  • Server error mid-response(途中で過負荷や 5xx が返った。v2.1.199 以降)
  • Your computer went to sleep mid-response(応答中に PC がスリープした)
  • Part of the response never arrived(ストリームのイベントが 1 つ欠けた)
  • The response stream was malformed(イベントが壊れていた、または重複していた)

原因

公式の Error reference は、ストリーミング中の失敗のあとに再送すると同じツール呼び出しを 2 回実行しかねないため、Claude Code は再送せず、完成した出力を残して、この通知を付けると説明しています。

では、そもそもなぜ途中で切れるのか。公式は The response stopped arriving について「接続は開いたままだが、データが来なくなったので watchdog が切った」とだけ書いています。回線のどこで詰まったかは書かれていません。issue #69415 などでの報告では、原因は混在しています。以下は issue での分析で、公式の記述ではありません。

  • NAT やルータが、無通信が続いた接続を切る
  • IPv6 の経路に問題がある
  • クライアント側の 180 秒の無通信打ち切りに当たる(issue #85322 の分析)
  • 2.1.213 以降、接続エラーが 1 回起きるとプロセスが終わるまで keep-alive が無効になる(issue #100353 の分析)

手元で確かめた結果

エラーを意図的に起こすのは安全にできないので、Claude Code 2.1.314 の実行ファイルに含まれる文字列を、読むだけのコマンドで数えました。

B=$(readlink -f $(which claude))
for s in "The response stopped arriving" "Connection lost mid-response" "Connection closed mid-response" "Response stalled mid-stream"; do
  printf '%s: ' "$s"; strings -a "$B" | grep -c -F "$s"
done

実際の出力は次のとおりです。

The response stopped arriving: 2
Connection lost mid-response: 2
Connection closed mid-response: 0
Response stalled mid-stream: 0

新しい 2 つの文言は 2.1.314 に含まれ、古い 2 つは含まれていません。公式の「v2.1.227 で文言が変わった」という記述と合っています。実際にエラーを出して画面を確かめたわけではありません。

直し方

1. まず continue と送る

対話セッションでは、画面に残っている内容を読んでから continue と送ります。公式によると、Claude Code は完成したブロックを残しますが、途中で切れた最後のブロックは捨てるため、最後の数文やツール呼び出しが欠けていることがあります。

-p(非対話)で使っているときは、セッションを再開してから continue を送ります。

claude -p --continue "continue"

公式の記述では、-p で応答にテキストだけが含まれツール呼び出しが無い場合は、Claude Code が自動で最大 3 回まで続きを促します(v2.1.246 以降)。この通知が見えるのは、その 3 回を使い切ったあとです。

2. 長い出力は分けて書かせる

大きなファイルや長い計画を 1 回で書かせると、モデルが静かな時間が長くなり、途中で切れやすくなります。「まず章立てだけ」「次に 1〜3 章」のように分けると収まった、という報告が複数あります(issue での報告で、公式の推奨ではありません)。

3. 無通信の許容時間を延ばす

The response stopped arriving は watchdog が切ったものなので、許容時間を延ばす手があります。issue の報告では、CLAUDE_STREAM_IDLE_TIMEOUT_MS と CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS の両方を上げると効いた、とあります(小さいほうが効くため、片方だけでは変わらないことがある、という指摘です)。

{
  "env": {
    "CLAUDE_STREAM_IDLE_TIMEOUT_MS": "600000",
    "CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS": "600000"
  }
}

これを ~/.claude/settings.json に入れ、Claude Code を起動し直します。これらの変数の詳しい挙動は、Stream idle timeout の記事にまとめています。

4. 回線側を見直す

何度も同じ場面で切れるなら、ネットワークを疑います。issue での報告で、効いた例があるものです。

  • ルータを再起動する。原因が ISP の回線の瞬断だった例もあります
  • テザリングや VPN など、別の回線で試す
  • IPv6 を無効にする
  • MTU を下げる。macOS なら次のようにします(管理者権限が必要で、設定を変えるので、戻し方を控えてから行ってください)
networksetup -getmtu Wi-Fi
sudo networksetup -setMTU Wi-Fi 1492

MTU の下げ方は、接続エラー系の issue #13657 に成功報告があります。PPPoE 回線で MTU が 1500 のままだと、パケットが分割されて落ちる、という分析です。

5. 古い版なら更新する

公式の記述では、次のような版ごとの修正があります。古い版のままなら claude update で更新します。

  • v2.1.222: 応答がすでに完了したあとに接続が切れても、完成した応答を保ち、エラーにしない。ゲートウェイ経由で keep-alive が届いているのに誤って切れる問題も解消
  • v2.1.227: 文言の改名(上の表)

直らないとき

  • claude --version で版を確かめ、issue #69336(正規の追跡 issue)に同じ症状があるかを探します
  • 一時的に 2.1.220 に下げて直った、という報告も issue にあります(推測を含む回避策で、公式の案内ではありません)
  • 社内プロキシやゲートウェイ越しなら、応答を溜め込む機器が原因のことがあります。ANTHROPIC_BASE_URL 経由の接続は、公式の記述では byte-level の watchdog の対象です

同じ原因で出る別のメッセージ

接続エラー系では、Unable to connect to API (ECONNRESET) や API Error (Connection error.) · Retrying in <n> seconds… (attempt <n>/10) も、回線側の見直しが効くことの多い文言です。

Claude Code で出るほかの英文エラーと、それぞれの対処は、早見表にまとめています。

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?