Codex 429 Too Many Requests 怎么解决?先分清限流、额度还是使用窗口

Codex 出现 429 不一定只是限流,也可能与额度、使用窗口或第三方网关有关。本文教你根据错误信息判断类型,并选择正确恢复方式。

16 分钟阅读
Codex 429 Too Many Requests 怎么解决?先分清限流、额度还是使用窗口

看到 429,很多人的第一反应是:等几十秒,再点一次。

这招只对一部分情况有用。现在 OpenAI API 的 429 至少要分成“请求太快”和“账户/额度限制”两大类。后者你等半小时也不会自己好。

先别猜,先看 error.code

如果你能拿到完整错误载荷,优先看 error.code 和错误文字。

OpenAI 当前列出的 429 包括:

典型原因常见 code / 表现正确动作
预付余额耗尽credit_balance_exhausted补充余额
请求速率过高rate limit降低频率,遵循 Retry-After
组织支出上限organization_spend_limit_exceeded调整组织支出限制
项目支出上限project_spend_limit_exceeded调整项目限制
组织使用上限organization_usage_limit_exceeded申请更高用量上限

最关键的一点:余额、支出和配额类 429,不会靠不停重试恢复。

真的是 rate limit 时怎么处理

如果错误明确是 requests/tokens 速率限制,先把并发降下来。

有 Retry-After 时,至少等到它给出的时间;没有时,用指数退避,并加一点随机抖动(jitter),同时限制最大重试次数。

别写这种死循环:

失败 → 立即重试 → 失败 → 立即重试 → ...

这会让原本的限流更难恢复。

一个更稳妥的思路是:

失败读取 Retry-After降低并发等待只重试最小请求

ChatGPT 登录用户要单独看

如果你不是 API Key,而是 ChatGPT 登录,看到“使用限制”“稍后恢复”之类产品提示,就按产品界面给出的窗口处理。

不要因为它也叫“额度”或“限制”,就强行换算成 API 的 RPM、TPM。两套机制不是同一张表。

第三方 Provider 也可能返回 429

如果请求经过第三方 Base URL,429 的含义由该 Provider 决定。

这时要同时检查:

  • Provider 自己的余额;
  • 上游渠道状态;
  • 并发限制;
  • 当前模型是否受限;
  • 是否存在自动重试把问题放大。

如果用 AI Code With,可以在第三方路径这一段自然承接:

  • 渠道状态:https://aicodewith.ai/zh/dashboard/channels?ref=docs&src=codex-429-too-many-requests
  • 模型与计费:https://aicodewith.ai/zh/dashboard/pricing?ref=docs&src=codex-429-too-many-requests

渠道切换能降低“单一渠道故障”带来的影响,但它不能保证绕过真正的上游限流、账户额度或组织限制。文章里把这点写清楚,反而比夸“自动切换什么都能解决”更可信。

一个我更推荐的排查顺序

  1. 保存完整 429 错误;
  2. 确认 ChatGPT 登录还是 API Key;
  3. 确认是不是第三方 Provider;
  4. 看 error.code;
  5. 如果是 rate limit,再看 Retry-After、并发和请求频率;
  6. 如果是余额/支出/用量上限,直接处理账户限制,不要重试;
  7. 只用一个最小请求验证恢复。

如果只有某一个模型失败,而其他模型正常,问题可能已经从“限流”转到模型或路由层,继续查模型 ID 和 Provider。

如果你走 AI Code With,别把“自动切渠道”当万能修复

AI Code With 的渠道页适合用来确认第三方路径里的渠道状态和模型成本,但“下一个渠道可用”不等于“所有 429 都能被绕过去”。

如果错误来自上游真实 rate limit、余额不足或组织/项目限制,仍然要按错误 code 处理。把渠道切换当作可用性手段,把 429 分类当作排错手段,两件事不要混在一起。

参考资料

  • OpenAI API Error Codes — https://developers.openai.com/api/docs/guides/error-codes
  • AI Code With 模型列表 — https://aicodewith.com/zh?s=r8c2y5