Codex 401/429 报错怎么解决:按认证、额度与限流排查

Codex 报错 401 和 429 不是同一种问题:401 先查凭证和认证,429 先查额度、频率、并发与服务端限制。

直接答案遇到 401,先检查 API Key、登录状态、Base URL 和认证方式;遇到 429,先查看账户余额或额度、请求频率、并发数和服务状态。修改前先保存状态码、脱敏响应正文、最终请求 URL、发生时间、request ID,以及 429 响应中的 Retry-After;再运行 codex login status 与 codex doctor --summary,每轮只修改一个变量并复测同一个最小任务。

Codex 401、403、429 快速对照

先按状态码确定故障层,不要一出错就同时换 Key、地址和模型。

401 Unauthorized凭证未被接受。优先检查 Key 是否完整、是否撤销、认证存储是否刷新,以及请求是否发到正确服务。
403 Forbidden凭证可能已识别,但账户、组织、模型或区域没有权限,或被服务策略拒绝。
429 Too Many Requests检查余额或额度、每分钟请求数、Token限制、并发数和上游拥堵;等待后再降低频率复测。
超时或连接失败检查域名、DNS、代理、TLS与服务状态;网页能打开仍不能证明模型接口可用。

适合谁,不适合谁

适合:配置后无法开始任务你已经安装 Codex,但登录、调用或连接出现错误。
适合:错误信息不够清楚需要用诊断命令和分层检查缩小范围。
不适合:反复更换未知配置盲目替换 Key、模型和 URL 会掩盖真正原因。
不适合:公开密钥求助日志和截图必须遮挡 Key、账号、请求正文和敏感路径。

开始前准备

  1. 记录状态码、脱敏响应正文、最终请求 URL、发生时间、request ID 和触发步骤;429 还要保存 Retry-After。
  2. 确认当前 Codex 版本、登录状态和配置文件路径。
  3. 从控制台重新确认 Base URL、模型名、Key 和协议说明。
  4. 准备一个无敏感信息的最小测试目录。
不要用 `401` 以外的网页状态判断调用成功业务首页返回 200 或未认证接口返回 401,都不能替代一次真实客户端任务和服务端日志。

完整步骤

01

记录错误并停止随机修改

保存状态码、脱敏响应正文、最终请求 URL、发生时间、request ID 和触发步骤;遇到 429 同时保存 Retry-After 与限流响应头。

02

检查客户端与认证

运行 codex --version、codex login status、codex doctor --summary,先处理安装和登录问题。

03

检查 config.toml

确认 model_provider 指向正确 provider,Base URL 没有空格或重复路径,协议与当前服务说明一致。

04

区分网络可达与 API 可用

可以用浏览器或 Invoke-WebRequest 检查域名是否可达,但必须继续用 Codex 最小任务验证认证和响应格式。

05

根据状态码处理并复测

401 检查凭证和请求头,403 检查权限或策略,429 单独检查余额/额度、Retry-After、频率、Token 限制与并发,连接错误检查 DNS、代理、TLS 和服务状态;每次只改一个因素。

可复制的脱敏诊断命令

这些命令不会打印你的完整 API Key;分享 JSON 诊断前仍应检查其中的路径和环境信息。

Codex 分层诊断
codex --version
codex login status
codex doctor --summary
codex doctor --json

# 只检查业务域名可达性,不代表模型调用成功
Invoke-WebRequest -UseBasicParsing "https://api.xiao-he.top/" -TimeoutSec 10 | Select-Object StatusCode
不推荐

网站能打开,所以 API 一定没问题。

建议做法

网站可达;继续检查登录状态、provider、协议,并用 Codex 最小任务确认真实调用。

怎样判断结果是否可用?

每层检查只能证明对应层级。域名可达、登录成功和模型任务完成是三件不同的事。

常见问题与报错

401 Unauthorized

重新复制 Key,检查前后空格、换行和是否已撤销;确认 login status 以及服务要求的认证方式。

403 Forbidden

Key 可能有效但无权访问当前资源,也可能被账户、组织、区域或服务策略拒绝;查看控制台与服务端说明。

429 Too Many Requests

先读取响应正文中的 Retry-After 或限流字段,再到控制台确认余额、额度和使用记录;降低请求频率与并发,按退避等待后用同一个最小任务复测。若是消费上限或余额不足,重试本身不会解决。

连接超时、拒绝或 DNS 错误

检查 Base URL 拼写、网络、代理、DNS、TLS 证书和服务状态。浏览器访问不能覆盖命令行代理差异。

返回 HTML、空响应或 JSON 结构错误

通常说明请求打到了网页、错误反向代理路径或不兼容接口;核对 Base URL 和协议,不要只重试。

完成后的检查方法

  • 记录了状态码、脱敏响应正文、最终 URL、时间、request ID 和触发步骤;429 已保存 Retry-After。
  • login status 与 doctor 已运行并保存脱敏结果。
  • config.toml 中 provider、Base URL 和协议来自当前控制台或文档。
  • 没有把网页可达误判为模型调用成功。
  • 每次只修改一个因素并重复同一个最小任务。
  • Key 和敏感日志没有出现在截图、工单或仓库中。

FAQ

401 和 403 有什么区别?

401 通常表示凭证未被接受;403 通常表示凭证已识别但没有相应权限或被策略拒绝,具体仍以响应正文为准。

Codex 报错 429 是不是 API Key 错了?

通常不是。429 更常见于额度不足、请求过快、并发过高或上游服务繁忙;应先看响应正文和控制台用量,再降低频率复测。

网页返回 200 能证明 API 正常吗?

不能。它只证明该网页路由可达,仍需真实客户端请求和结果验证。

doctor 没报错为什么任务仍失败?

doctor 主要检查本地配置和运行环境;上游模型、账户权限和协议兼容仍可能失败。

看到“加一行配置解决 429”可以直接照做吗?

不可以先下结论。429 可能来自额度、RPM/TPM、并发或上游拥堵,也可能是第三方服务用 429 表达其他策略。先看响应正文、Retry-After、控制台用量和当前服务文档,再决定是否改认证配置。

可以把完整日志发给别人吗?

先删除 Key、账号、路径、请求内容和其他敏感信息,只保留定位问题所需字段。

资料来源与版本说明

用当前控制台字段重新完成一次最小验证。

确认 Key、Base URL、模型名和协议后,只运行一个安全测试任务,并记录诊断结果。 模型、价格、额度与规则以对应业务站当前展示为准。

进入小贺API检查当前配置

下一步