返回指南
疑難排解·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。若只發生一次,無需變更其他設定。

辨別不同訊息

Claude Code 的錯誤參考資料依原因列出不完整回應的措辭:回應途中發生伺服器錯誤、回應途中連線遺失、電腦在回應途中進入睡眠、回應停止到達(停滯)、部分回應未到達,以及回應串流格式錯誤。2026 年 7 月的報告引用了停滯問題的舊措辭「Response stalled mid-stream」。另一則獨立訊息「Streaming response ended before any complete data was received」表示沒有任何完整資料到達,因此 Claude Code 會在不使用串流的情況下重試,而不是保留部分答案。

調整監控器,不要停用它

Claude Code 使用四個計時器,在串流停止傳輸時中止串流,讓失效的連線回報失敗並重試,而不會一直卡住:首位元組接收期限、事件層級看門狗(300 秒)、位元組層級看門狗(直接使用 Anthropic API 時為 180 秒,其他情況為 300 秒,包括使用自訂 ANTHROPIC_BASE_URL),以及部分供應商提供的五分鐘回應本文閒置逾時。CLAUDE_STREAM_IDLE_TIMEOUT_MS 會設定這兩個看門狗;低於五分鐘的值會調高至五分鐘,而位元組層級看門狗的上限為 30 分鐘。請將它放在 settings.json 的 env 區塊中,讓背景代理也能套用:

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

位於代理伺服器或閘道後方時,先不經過它測試

當不使用串流重試的訊息重複出現時,先將中間的連線跳點移除一次:在單一工作階段取消設定 HTTPS_PROXY,或設定 NO_PROXY="*",然後執行相同任務。如果問題停止,該跳點就是原因。常見原因包括長工作階段逐漸超過的請求主體大小限制、將即時串流轉為長時間沉默的回應緩衝,以及短於模型思考停頓時間的讀取逾時。請注意,當 ANTHROPIC_BASE_URL 指向閘道時,第一位元組期限不會執行,但位元組層級監控器會執行。

如果你透過 Kunavo 呼叫

Kunavo 是該訊息所指的閘道之一,因此這就是它在 /v1/messages(Claude Code 呼叫的端點)上的行為。上游串流會被延後,直到產生第一個內容事件;在此之前發生的上游錯誤或空串流會使此次嘗試失敗,之後會在模型具備其他通道時於另一通道重試,或以 HTTP 錯誤傳回——絕不會傳回一個最後沒有任何內容的 200 串流。內容開始後的停滯不是閘道可以重試的問題,Claude Code 的監控器與 continue 才是適當工具。 OpenAI 相容端的串流如何結束,以及如何辨別完整答案與被截斷答案,請參閱 LLM API 串流錯誤.

常見問題

Claude Code 中「上方回應可能不完整」是什麼意思?

串流答案在部分內容到達後停止——可能是停滯、連線中斷、伺服器錯誤或電腦進入睡眠。Claude Code 會保留已完成的文字與工具呼叫,並附加通知。回覆 continue,該回合會從已到達的內容繼續。

「串流中途回應停滯」和「回應停止傳入」是同一回事嗎?

它們描述的是同一種情況:連線仍保持開啟,但停止傳送資料,直到串流監控程式中止連線。Claude Code 目前的錯誤參考使用「回應停止傳入」;2026 年 7 月提交的回報則引用「串流中途回應停滯」。

為什麼 Claude Code 會顯示「在不使用串流的情況下重試」?

因為串流在收到任何完整資料之前就結束了,因此沒有可保留的內容。Claude Code 會在不使用串流的情況下再次送出相同請求。如果這則訊息持續出現,請檢查 Claude Code 與供應商之間的 Proxy 或閘道——通常原因是本文大小限制、緩衝處理和讀取逾時。

我應該關閉串流監控程式嗎?

不應該。監控程式的存在是為了讓失效的連線失敗並重試,而不是讓工作階段無限期掛起。如果你的連線確實會長時間沒有資料,請提高 CLAUDE_STREAM_IDLE_TIMEOUT_MS(低於五分鐘的值會提高為五分鐘),不要將 CLAUDE_ENABLE_STREAM_WATCHDOG 或 CLAUDE_ENABLE_BYTE_WATCHDOG 設為 0。

使用搭配 ANTHROPIC_BASE_URL 的閘道會讓這種情況更容易發生嗎?

Claude Code 與供應商之間的每一個跳點,都多了一個可能緩衝、切斷或逾時串流的位置,因此當訊息重複出現時,請在不使用閘道的情況下測試。位元組層級監控程式也會在閘道連線上執行;當 ANTHROPIC_BASE_URL 經由閘道路由時,第一個位元組期限則不會執行。

相關指南

更多錯誤語意請參閱 錯誤參考;透過 註冊 和 身分驗證指南 取得金鑰只需一分鐘。