返回指南
故障排查·2026年9月30日·阅读约 6 分钟

Claude Code“响应在流传输中途停滞”和“流式响应在收到任何完整数据之前结束”——是什么停止了流

两条消息都表示模型的流式答案在完成前停止。“上面的响应可能不完整”会在部分答案已到达、随后流传输停滞、断开或损坏时显示;Claude Code 会保留已到达的内容,回复 continue 即可继续该轮。“流式响应在收到任何完整数据之前结束”表示完全没有可用内容到达,因此 Claude Code 会在不使用流式传输的情况下重试相同请求——而当这种情况持续发生时,正如消息本身所说,通常原因是 Claude Code 与模型提供商之间的代理或网关。

最后审核于 。

两条消息都表示模型的流式答案在完成前停止。“上面的响应可能不完整”会在部分答案已到达、随后流传输停滞、断开或损坏时显示;Claude Code 会保留已到达的内容,回复 continue 即可继续该轮。“流式响应在收到任何完整数据之前结束”表示完全没有可用内容到达,因此 Claude Code 会在不使用流式传输的情况下重试相同请求——而当这种情况持续发生时,正如消息本身所说,通常原因是 Claude Code 与模型提供商之间的代理或网关。

错误

由 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 月的报告引用了停滞问题的旧措辞“响应在流传输中途停滞”。另一条单独的消息“流式响应在收到任何完整数据之前结束”表示没有完整数据到达,因此 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 与提供商之间的代理或网关——正文大小限制、缓冲和读取超时是常见原因。

我应该关闭流式监视器吗?

不应该。监视器的作用是让死连接失败并重试,而不是让会话无限期挂起。如果您的连接确实会长时间静默,请提高 CLAUDE_STREAM_IDLE_TIMEOUT_MS(低于五分钟的值会提高到五分钟),而不要将 CLAUDE_ENABLE_STREAM_WATCHDOG 或 CLAUDE_ENABLE_BYTE_WATCHDOG 设置为 0。

使用带有 ANTHROPIC_BASE_URL 的网关会让这种情况更容易发生吗?

Claude Code 与提供商之间的每一跳都增加了一个可能缓冲、截断或使流超时的位置,因此当消息重复出现时,请尝试绕过网关。字节级监视器也会在网关连接上运行;当 ANTHROPIC_BASE_URL 通过网关路由时,首字节截止时间不会运行。

相关指南

更多错误语义请参阅 错误参考;通过 注册 和 身份验证指南 获取密钥只需一分钟。