429 / RATE LIMIT / INSUFFICIENT_QUOTA
Codex 429 Too Many Requests 怎么办?Rate Limit 与额度排查
同一个 HTTP 429,可能代表 ChatGPT 套餐用量耗尽、OpenAI API 请求过快、Token 速率超限、API 余额不足,或第三方上游限流。先看你用 ChatGPT 登录还是 API Key,再按完整错误原文分流。
429 与额度不足要先按计费体系分流:Plus 用量、API Billing 与 API Key 的区别。
30 秒判断:你的 Codex 429 属于哪一类?
| 错误或现象 | 更可能的含义 | 第一步 |
|---|---|---|
| Usage limit、limit reached,页面给恢复时间 | ChatGPT 套餐的 Codex 用量窗口耗尽 | 打开 Codex Usage,查看恢复时间与 Credits |
| Rate limit reached for requests / tokens | API 请求数或 Token 速率超限 | 看 Limits 与限流响应头,降低并发 |
| insufficient_quota / exceeded your current quota | API 余额、Credits 或月度使用上限 | 核对 Platform 的 Organization、Project、Billing |
| 同一 Base URL 的多人都报 429 | 第三方中转、网关或上游共享限流 | 查看服务商状态与配额,不泄露 Key |
| 429 后显示 exceeded retry limit | 客户端多次重试仍未恢复 | 停止重试风暴,回看最早一条 429 原因 |
不要只看到 429 就重新登录、重复充值或换 Key。这些动作可能把诊断线索清掉,却不改变实际限制。
先保存完整错误,不要只截“429”三个字
- 记录认证方式
写明是 ChatGPT 登录,还是
OPENAI_API_KEY/ 自定义 provider。 - 复制第一条完整错误
保留
Rate limit reached、insufficient_quota、模型、组织或项目提示;后面的 “exceeded retry limit” 往往只是结果。 - 记录时间与客户端版本
包含时区、
codex --version、运行环境和是否只在某个项目发生。 - 保留脱敏响应头
记录 request ID 与
x-ratelimit-*,删除 API Key、Cookie、Session、auth.json和业务内容。
最关键分叉:ChatGPT 登录,还是 API Key?
| 认证方式 | 额度来自哪里 | 到哪里检查 |
|---|---|---|
| Sign in with ChatGPT | 当前 ChatGPT 套餐的 Codex 包含用量,以及账号支持时的 Credits | Codex Usage 页面、客户端上限提示 |
| OpenAI API Key | OpenAI Platform API 余额、组织/项目使用上限和模型速率限制 | Platform Usage、Billing、Limits |
| 自定义 provider / Base URL | 第三方服务商的余额、并发和上游规则 | 该服务商控制台、状态页和文档 |
ChatGPT Plus / Pro 订阅和 OpenAI Platform API 是两套计费。升级 ChatGPT 套餐不会自动增加 API 余额;给 API 账户充值也不会增加 ChatGPT 登录下的 Codex 套餐窗口。
路线 A:ChatGPT 登录下的 Codex Usage Limit
OpenAI 当前说明,Codex 用量随套餐、任务大小、复杂度、模型和运行位置变化。接近或达到限制时,应查看 Codex Usage 页面或限制提示;可用选项可能包括等待恢复、购买额外 Credits、应用可用 reset 或升级套餐。
- 打开 Codex 个人资料或 Settings 中的 Usage。
- 确认短时窗口、周窗口、Credits 和明确的恢复时间。
- 如果当前任务刚好完成,不要用重复空任务测试恢复。
- 只有账号页面确实提供 Credits 或升级选项时,再比较成本。
这类限制不等于 API 的 RPM/TPM,也不应到 Platform Billing 里寻找 ChatGPT 套餐额度。需要更详细的用量与重置说明,查看Codex Usage Limit、周限额与 Credits。
官方参考:Using Codex with your ChatGPT plan、Codex pricing and usage limits。
路线 B:OpenAI API Rate Limit reached
OpenAI API 速率限制可按 RPM(每分钟请求数)、RPD(每天请求数)、TPM(每分钟 Token)、TPD(每天 Token)等指标计算,任意一项先达到都可能触发 429。限制通常按组织和项目而不是个人用户计算,并随模型变化;部分模型家族还共享限额。
先看这些响应头
| 响应头 | 含义 | 怎么用 |
|---|---|---|
x-ratelimit-remaining-requests | 当前剩余请求数 | 接近 0 时主动降并发 |
x-ratelimit-remaining-tokens | 当前剩余 Token | 缩短输入、限制输出和拆分任务 |
x-ratelimit-reset-requests | 请求数限制恢复所需时间 | 至少等待该时间再重试 |
x-ratelimit-reset-tokens | Token 限制恢复所需时间 | 避免在恢复前重复大请求 |
x-ratelimit-*-project-tokens | 项目级 Token 限制与恢复 | 确认是不是项目单独设置了上限 |
- 降低突发并发即使分钟总量没超,短时间集中发送也可能触发限流。
- 缩小 Token 预算设置接近真实需要的输出上限,减少长上下文和无关文件。
- 查看正确的组织与项目Key 属于哪个 Project,就检查对应 Limits;不要只看个人账号。
- 批处理要控速非实时任务可评估官方 Batch API;实时任务要同时遵守请求和 Token 限制。
路线 C:insufficient_quota / exceeded your current quota
OpenAI 官方 Error codes 将两种 429 分开:Rate limit reached for requests 表示请求过快;You exceeded your current quota 表示 Credits 用尽或达到最大月度消费上限。后者继续指数退避也不会凭空恢复余额。
- 确认 Organization 与 Project
检查 API Key 实际所属范围,不要只看另一个组织的余额。
- 查看 Billing 与 Usage
核对支付状态、Credits、当前消费和月度使用上限。
- 查看 Limits
确认组织月度上限、项目预算和模型速率限制是否分别触发。
- 等待账单状态同步
刚完成付款时先以 Platform 页面和真实 API 响应为准,不要连续创建新 Key 测试。
不要用 ChatGPT Plus / Pro 充值解决 API insufficient_quota。两者分开计费。也不要把 API Key 发给所谓“余额检测”网站。
OpenAI API 有余额,为什么 Codex 仍然报 429?
“余额大于 0”只能排除一部分欠费情况,不能证明请求没有达到其他限制。Google 这一精确查询的前排页面常把答案简化成“与余额无关”,但实际需要继续核对请求使用的 Project、模型和响应正文。
| 你看到的证据 | 更可能的原因 | 下一步 |
|---|---|---|
| 余额在组织 A,Key 属于组织或项目 B | 查看了错误的账单范围 | 以实际 Key 所属 Project 的 Usage、Billing、Limits 为准 |
| 余额正常,但 Usage 达到月度上限 | 组织使用上限或项目预算 | 核对月度限制、项目预算与付款状态 |
x-ratelimit-remaining-* 接近 0 | RPM、TPM 或共享模型家族限额 | 等待对应 reset,降低并发与 Token |
| 只有某个模型失败 | 模型级限额、权限或暂时容量问题 | 对照账号 Limits、模型文档与状态页 |
| 请求域名不是 OpenAI 官方域名 | 自定义 provider 的共享池或网关限流 | 检查该服务商控制台、状态页和原始响应 |
| 多人同时突然失败 | 服务事件或上游容量 | 查看 OpenAI Status;不要用重试风暴扩大故障 |
固定 Organization、Project、模型和认证方式,只把并发降到 1,并保存第一条错误与响应头。不要同时换 Key、换模型、换 Base URL 和重新登录,否则无法判断哪个变量真正改变了结果。
Codex 429 怎么安全重试?
OpenAI 建议使用带随机抖动的指数退避,并设置最大重试次数。失败请求也会计入每分钟限制,因此立即无限重试只会制造重试风暴。
attempt = 0
while attempt < MAX_RETRIES:
try_request()
if success: break
wait = min(MAX_DELAY, BASE_DELAY * 2 ** attempt)
sleep(wait + random_jitter())
attempt += 1- 实际响应提供
Retry-After时,至少按该值等待。 - OpenAI API 提供
x-ratelimit-reset-requests/x-ratelimit-reset-tokens时,以对应瓶颈的恢复时间为准。 - 每次重试增加随机抖动,避免多个任务同时再次打满。
- 遇到
insufficient_quota或明确的 Codex Usage limit 时立即停止这条重试路线。 - 设置总超时和最大次数,最终失败时保留最早的 429 与 request ID。
Exceeded Retry Limit, Last Status: 429 Too Many Requests 怎么解决?
这句话表示 Codex 或上游客户端已经重试多次,每次最后仍得到 429。它描述的是重试结果,不是最初根因。Google 的精确英文结果主要是 openai/codex issues、Reddit 和网关社区,说明它常见于套餐窗口、服务端容量和第三方网关,不应一律解释成 API 余额不足。
- 暂停自动任务和并发队列
先停止不断重放的 Agent、CI、批处理或多个编辑器窗口,避免失败请求继续计入限制。
- 回到最早一条 429
在日志中向前找
Usage limit、Rate limit reached、insufficient_quota、请求域名和 request ID。 - 只对速率限制做有限退避
读取实际 reset 或 Retry-After,降低并发,设置最大次数和总超时。
- 让不可重试状态先改变
套餐窗口要等恢复;quota 要处理账单或月度上限;第三方容量要等服务商恢复;状态事件要看状态页。
- 最后做一次最小验证
并发设为 1,用小上下文、单一模型和同一认证方式发一次请求,确认错误是否变化。
连续收到相同 429、达到最大重试次数、总等待超时,或检测到 insufficient_quota 时应停止自动重试并告警。不要让多个 Worker 各自独立退避后同时重新打满上游。
自定义 Base URL、中转 API 或网关报 429
如果 Codex 配置了自定义 provider,429 可能由网关自身、共享账号池或上游模型返回。此时 OpenAI Platform 的余额和 Limits 可能完全正常。
- 保留请求域名、错误原文、响应头和时间,不公开 Key。
- 检查服务商状态页、控制台余额、RPM/TPM、并发和模型倍率。
- 用一个最小请求验证,不要在多个设备同时压测。
- 确认错误来自哪一层:本地客户端、网关、上游 OpenAI,还是另一个模型服务。
换 Key、轮询账号或购买共享 Key 不是可靠的限流治理方式。来源不明的 Key 还可能带来余额盗用、数据泄露和账号停用风险。
Codex 429 常见问题
Codex 429 Too Many Requests 是什么意思?
429 表示当前请求受到用量或速率限制,但根因不止一种。ChatGPT 登录可能是 Codex 套餐用量窗口耗尽;API Key 可能是 RPM、TPM 等速率限制,或 API 余额和月度使用上限不足。应先看认证方式和完整错误原文。
Codex 用 ChatGPT 登录和 API Key 报 429 有什么区别?
ChatGPT 登录使用套餐包含的 Codex 用量和 Credits,应查看 Codex Usage 页面;API Key 按 OpenAI Platform API 单独计费,应查看组织和项目的 Limits、Usage 与 Billing。两套额度不能互相替代。
Rate limit reached for requests 怎么解决?
先降低并发和请求突发,读取 x-ratelimit-remaining-* 与 x-ratelimit-reset-* 响应头,再使用带随机抖动和最大次数的指数退避。失败请求也会计入每分钟限制,不能无限立即重试。
insufficient_quota 或 exceeded your current quota 怎么解决?
这是 API 余额、Credits 或组织月度使用上限方向的问题,不是普通的每分钟速率限制。到 OpenAI Platform 检查当前 Organization、Project、Billing 和 Limits;充值 ChatGPT Plus 或 Pro 不会自动补充 API 余额。
Codex 429 可以一直重试吗?
不可以。OpenAI 说明失败请求也会计入每分钟限制。应设置最大重试次数,使用指数退避和随机抖动;若错误是套餐用量耗尽或 insufficient_quota,继续重试不会解决。
Codex 429 应该等 Retry-After 还是 x-ratelimit-reset?
如果实际响应提供 Retry-After,就按该值等待;OpenAI API 还会在响应头提供 x-ratelimit-reset-requests 和 x-ratelimit-reset-tokens 等重置时间。以真实响应头为准,并给重试增加随机抖动。
RPM、RPD、TPM、TPD 分别是什么?
RPM 和 RPD 是每分钟与每天的请求数限制,TPM 和 TPD 是每分钟与每天的 Token 限制。任意一项先达到都可能触发限流,限制通常按 API 组织和项目而不是个人用户计算,并会随模型变化。
升级 ChatGPT Plus 或 Pro 能解决 API 429 吗?
不能直接解决。ChatGPT 套餐与 OpenAI Platform API 分开计费。只有错误来自 ChatGPT 登录下的 Codex 套餐用量时,更高套餐或额外 Credits 才可能相关;API 429 应在 Platform 检查速率和账单。
Codex 429 换模型或换 API Key 有用吗?
只有在官方文档和账号 Limits 明确显示模型限制不同时,切换模型才可能改变速率限制。轮换多个 Key 规避同一组织或项目限制通常无效,也可能掩盖账单或上游问题;不要购买来源不明的 Key。
OpenAI API 有余额为什么 Codex 仍然报 429?
余额只是 API 可用条件之一。有余额仍报 429,还可能是 Key 属于另一个组织或项目、项目预算或月度使用上限、RPM/TPM、模型家族共享限额、第三方 provider 共享上游或服务状态事件。应以实际 Project、Limits、Usage、错误正文和响应头判断。
Exceeded Retry Limit, Last Status: 429 Too Many Requests 怎么解决?
这表示客户端多次重试后仍收到 429,最后一行不是根因。先停止自动任务并找到最早一条 429;只有明确的速率限制才做有限次数退避,insufficient_quota、套餐 Usage limit 或上游容量问题必须先改变额度、窗口或服务状态。
提交 Codex 429 故障需要保存哪些信息?
保存发生时间和时区、Codex 客户端版本、ChatGPT 或 API Key 认证方式、脱敏后的完整错误、模型、请求 ID、Organization 和 Project、相关限流响应头与最小复现步骤。不要公开 API Key、auth.json、Session 或项目代码。
来源与利益关系说明
本文由 Hi Codex 服务团队根据 OpenAI 官方 Codex 套餐说明、API Rate limits、Error codes、429 帮助与 Cookbook 整理。团队提供独立人工充值协助,与 ChatGPT / Codex 套餐主题存在商业利益关系;与 OpenAI 不存在隶属、代理或官方授权关系。
速率、套餐与产品规则会变化。排查时以当前账号 Usage、OpenAI Platform Limits、实际响应头和官方文档为准;本文不提供第三方 API 中转、共享 Key、限流绕过或凭证代管。
API 速率限制、insufficient_quota、自定义 provider 或客户端故障不会因为重复充值自动修复。先完成上面的技术分流。