Replies: 1 comment 2 replies
|
@rengy 这个报错和「AI 分析的 seq 不连续」大概率是两个不同的东西——「Remote stream WebSocket closed」不是 seq/gap 错误,别被 AI 带偏方向。我在 这条报错是「物理连接被关」,不是「日志 seq 有洞」
private lost(
socket: WebSocket,
error: RemoteStreamCarrierError = new RemoteStreamCarrierError(
'api gateway: Remote stream WebSocket closed',
),
): void {
if (this.socket !== socket) return
this.socket = undefined
this.failAll(error) // ← 一击杀掉所有 active Remote stream
}触发路径:一个已经打开(OPEN)的 persistent WebSocket 收到了 关键佐证:真正的 seq 连续性错误,在 throw new RemoteError('gateway/internal', `session log does not contain through seq ${...}`, {})以及:91-92 的 为什么「多轮 compact 后 + 升级 0.1.2-rc.1 后」出现两个线索其实都指向同一种物理断连而非数据损坏:
建议你确认的排查方向
我建议的一个加固方向(供参考)
如果你能提供 |

@rengy 这个报错和「AI 分析的 seq 不连续」大概率是两个不同的东西——「Remote stream WebSocket closed」不是 seq/gap 错误,别被 AI 带偏方向。我在
0.1.2-rc.1的源码上定位了它:这条报错是「物理连接被关」,不是「日志 seq 有洞」
packages/api/gateway/src/client/stream-client.ts里,api gateway: Remote stream WebSocket closed是lost()的默认错误(第 236-245 行):触发路径:一个已经打开(OPEN)的 persistent WebSocket 收到了
close/error事件(connect()里:163-181 的failed/closed),lost()就把这个 socket 标注为已失效、并对this.s…