Skip to content

Runbook:429、5xx、超时与流式中断

这类故障通常来自上游容量、网络、Proxy 或长连接配置。先判断是单账号、单供应商、单模型,还是整个入口链路。

上游 429

检查:

  • account_id 是否集中。
  • rate limit reset 时间和剩余窗口。
  • 账号并发是否高于上游允许值。
  • 多个 Account 是否实际共用同一上游项目/额度。
  • 5h/7d、RPM/TPM 或日 quota 是否耗尽。
  • 是否有突发重试放大流量。

处置:让调度使用独立额度的备用账号;等待 reset;降低并发或入口流量。Clear Rate Limit 只清本地状态,不会恢复真实上游额度。

5xx、529 和过载

  • 单账号:摘除并测试同供应商其他账号。
  • 同供应商全部失败:切备用供应商,保留上游 request ID。
  • 全部供应商失败:检查反向代理、出口网络、DNS 和应用。
  • 仅特定模型失败:检查模型状态、payload 和能力兼容。

不要把上游 5xx 自动解释为 Sub2API 崩溃。使用 error_source、upstream status 和 latency 区分。

超时定位

现象优先检查
未连接上游就超时DNS、Proxy、TLS、allowlist
上游首字节慢模型排队、TTFT、上游容量
流式中途断开proxy_read_timeout、CDN、出口连接、上游断流
客户端先断开客户端超时、移动网络、用户取消
全部响应最后一次返回Nginx/CDN buffering

结合 auth、routing、upstream、response latency 判断慢在哪一段。

SSE 最后一次性返回

Nginx 至少确认:

nginx
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;

同时检查 CDN 是否缓存/缓冲 API 路径。更多配置见反向代理与 HTTPS

WebSocket 失败

  • 反向代理传递 Upgrade/Connection。
  • 外部 HTTPS 对应 wss://
  • Ops 实时监控软开关已启用。
  • 代理允许 Sec-WebSocket-Protocol,管理员 JWT 不应放在 URL 查询参数。
  • 空闲超时高于实际会话时长。

第三方兼容上游

文本请求成功但工具、流式或 usage 失败,通常是“部分兼容”:

  • OpenAI 上游是否支持 Responses,还是只支持 Chat Completions。
  • Anthropic SSE 事件名、usage 和 beta header 是否完整。
  • Gemini 是否真的是原生 v1beta,而不是 OpenAI 兼容接口。
  • Base URL 是否导致重复 /v1/v1beta
  • 模型映射后是否仍支持工具、thinking 和图片。

不要通过吞掉解析错误来上线;这会把协议问题转化为计费问题。

恢复验证

验证非流式、SSE 第一事件时间、完整结束事件、客户端主动断开、usage、并发释放和故障切换。至少观察一个原告警窗口。

本文档用于帮助你理解、部署和运维 Sub2API。使用前请确认上游服务条款与当地法律要求。