CODEX STREAM · 429 / 502 / SSE
一直“正在重新连接 3/5”?
先别急着换 Key。
这行提示只是结果,不是根因。先找到第一次失败的状态码,再区分限流、网关异常和流式连接超时。
先做一件事:记录第一次异常的时间、状态码、模型、任务类型和 request ID。后续的重复报错通常只是首次失败触发的连锁重试。
三类故障,三个方向
| 现象 | 优先判断 | 第一动作 |
|---|---|---|
429 | 速率、并发或额度限制 | 停止新增并发,检查限流窗口 |
502 / 503 | 网关或上游无有效响应 | 固定同一任务做分时段对照 |
| 固定时长断流 | SSE 被中间层提前关闭 | 检查缓冲、透传和空闲超时 |
“3/5”不是任务进度
Codex 的自定义 Provider 可以分别设置普通 HTTP 请求重试、SSE 流重试和流空闲超时。它们用于短暂故障后的恢复,不能修复错误模型名、无权限 Key 或不兼容接口。
[model_providers.your_gateway]
name = "Your Gateway"
base_url = "https://你的网关地址/v1"
env_key = "OPENAI_API_KEY"
wire_api = "responses"
request_max_retries = 4
stream_max_retries = 10
stream_idle_timeout_ms = 300000
不要盲目把重试次数调到很高。错误请求可能因此持续更久,并放大并发和费用。
429:先阻止重试风暴
- 暂停新的 Agent、终端和 CI 任务;
- 检查余额、账户额度和服务商限流规则;
- 等待一个限流窗口后,只跑一个小任务;
- 确认是否有后台任务共用同一个 Key;
- 恢复后再逐步增加并发。
502 / 503:做三组对照
- 同一网络、不同时间:判断是否为瞬时上游故障;
- 同一 Provider、不同模型:判断是否为单模型路由或容量问题;
- 同一模型、短任务与长任务:判断是否为 SSE 长连接或代理超时。
一次只改变一个变量。如果每次都在接近 60 秒、100 秒或 5 分钟时断开,固定时长本身就是中间层超时的重要线索。
能聊天,不代表能跑真实仓库
Codex 会持续接收流式事件,还会多次读取文件、执行工具并回传结果。至少要验证 Responses API、SSE 持续透传、工具调用闭环、失败重连和用量扣费;一次短问答成功不足以证明稳定。
15 分钟可复现验收
- 固定同一个仓库、模型和小型跨文件任务;
- 连续执行 3 次,不在中途改变参数;
- 记录完成率、重连次数、首响应、总耗时和实际扣费;
- 再一次只改一个参数,重新做同样三次测试。
官方依据:OpenAI Codex Advanced Configuration
先免费排错,再决定是否换线路。
自测不要求提交 API Key;候选线路只建议小额对照。
自测不要求提交 API Key;候选线路只建议小额对照。