mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-09-24 16:05:44 +08:00
流式请求一旦 flush 了 keepalive ping,HTTP 状态码即固化为 200;此后 出现的错误(等待并发槽位超时后回退的限流、Wait 后二次计费校验失败、 流开始后才无可用账号等)只能就地以 SSE error 帧回传。而 ops_error_logger 以 status>=400 为采集触发条件,这类挂在 200 流上的失败此前会在错误看板里 完全隐形——客户端能收到 rate_limit_error,但网关侧没有任何错误记录可供排障。 - service: 新增 OpsStreamError 上下文 + MarkOpsStreamError/GetOpsStreamError, 采用「首个标记生效」保留根因错误,避免被后续通用兜底帧覆盖。 - handler: handleStreamingAwareError 在 streamStarted 分支标记流内错误。 - handler: OpsErrorLoggerMiddleware 在 status<400 且无上游错误上下文时, 据标记补记一条错误日志;分级用 IntendedStatus(如并发限流 429), StatusCode 仍记 wire 的 200。上游透传错误已由 upstream-context 分支落库, 故此路径不重复记录。 - 补充单测覆盖补记、no-op、skip_monitoring 跳过与首个标记生效。