stream disconnected before completion: stream closed before response.completed
错误信息
stream disconnected before completion: stream closed before response.completed
AI 解决方案
原文:stream disconnected before completion: stream closed before response.completed
译文:流在完成前断开连接:流在响应完成前被关闭
🎯 原因分析
该错误表明在 HTTP/流式传输过程中,客户端和服务器之间的连接在响应完全完成前被意外终止。可能的原因:
- 网络不稳定或中断导致 TCP 连接提前关闭
- 服务器中途异常终止响应流
- 客户端取消了请求或主动关闭了连接
- 代理或网关超时截断了长连接
💡 解决方案
// 修复后的代码示例(Node.js 流处理)
async function fetchWithRetry(url, retries = 3) {
for (let i = 0; i < retries; i++) {
const response = await fetch(url);
const reader = response.body.getReader();
try {
while (true) {
const { done, value } = await reader.read();
if (done) break;
// 处理数据块
}
} catch (err) {
if (i < retries - 1) {
console.log(`重试第 ${i + 1} 次`);
continue;
}
throw err;
}
}
}
// 或使用带超时控制的流读取
const controller = new AbortController();
const timeout = setTimeout(() => controller.abort(), 30000);
try {
const response = await fetch(url, { signal: controller.signal });
// 处理流式响应
} finally {
clearTimeout(timeout);
}