问题描述
在 CodePilot 中使用 Aliyun Bailian 的 qwen3.6-plus 进行对话时,如果上游长时间没有返回新的流式 chunk,前端会在 330 秒后固定报错:
Error: Stream idle timeout — no response for 330s. The connection may have dropped.
这个问题看起来不是普通的 provider 连通性失败,而是请求已经发出,但在长时间没有流式事件时被客户端固定空闲超时中断。
环境信息
- 操作系统:macOS
- CodePilot 版本:
0.50.2
- Provider:
Aliyun Bailian
- Protocol:
anthropic
- Base URL:
https://coding.dashscope.aliyuncs.com/apps/anthropic
- Model:
qwen3.6-plus
复现步骤
- 在 CodePilot 中配置 Aliyun Bailian provider
- 选择模型
qwen3.6-plus
- 发送一个会触发较长思考/较慢首包返回的请求
- 等待约 330 秒
- 聊天界面报错:
Stream idle timeout — no response for 330s. The connection may have dropped.
预期行为
- 如果上游 provider 还在处理请求,客户端不应在 330 秒后固定中断
- 或者至少应提供一个可配置的 stream idle timeout
- 或者在 UI/高级设置里允许对第三方 provider 单独调整该阈值
实际行为
- 330 秒后固定报错并中断当前响应
- 对用户来说像是 provider 挂了,但实际可能只是长时间没有新的 stream/keepalive 事件
补充观察
我检查了当前仓库 main 分支的 src/lib/stream-session-manager.ts,里面仍然有:
const STREAM_IDLE_TIMEOUT_MS = 330_000;
看起来这个阈值目前是写死在前端里的,而不是用户可配置项。
如果这是有意设计,建议:
- 给第三方 provider 暴露可配置的 stream idle timeout
- 区分“请求失败”和“长时间无 stream chunk”两类情况
- 如果 provider 支持 keepalive/heartbeat,确保这类事件能正确刷新
lastEventTime
相关但不完全相同的 issue
这些 issue 里有 provider 超时、卡住、长时间无响应等现象,但我暂时没有找到和 330s Stream idle timeout 这个固定阈值直接对应的一条。
问题描述
在 CodePilot 中使用 Aliyun Bailian 的
qwen3.6-plus进行对话时,如果上游长时间没有返回新的流式 chunk,前端会在 330 秒后固定报错:这个问题看起来不是普通的 provider 连通性失败,而是请求已经发出,但在长时间没有流式事件时被客户端固定空闲超时中断。
环境信息
0.50.2Aliyun Bailiananthropichttps://coding.dashscope.aliyuncs.com/apps/anthropicqwen3.6-plus复现步骤
qwen3.6-plusStream idle timeout — no response for 330s. The connection may have dropped.预期行为
实际行为
补充观察
我检查了当前仓库
main分支的src/lib/stream-session-manager.ts,里面仍然有:看起来这个阈值目前是写死在前端里的,而不是用户可配置项。
如果这是有意设计,建议:
lastEventTime相关但不完全相同的 issue
这些 issue 里有 provider 超时、卡住、长时间无响应等现象,但我暂时没有找到和
330s Stream idle timeout这个固定阈值直接对应的一条。