toklens

博客

Codex 报错对照:401、403、429 分别是什么原因

按状态码和错误码查 Codex 请求失败的原因,以及在哪里处理。

本文目录
  1. 先确认是不是 TokLens 返回的
  2. 401:Key 有问题
  3. 403:Key 有效,但请求被拒绝
  4. 429:超出额度或频率限制
  5. 其他常见报错
  6. 查到原因之后

2026 年 10 月对照 TokLens 网关代码核对。报错原文以你实际看到的为准。

Codex 请求失败时,会显示状态码和返回的内容。先看状态码,大致就能知道问题出在哪一步:

状态码说明
401Key 本身有问题:没带、不存在或已停用
403Key 有效,但这次请求不被允许:过期、余额不足、模型不可用
429超出了额度或频率限制
5xx服务端或上游暂时出错,一般重试就行

TokLens 不会把上游的 401 和 403 原样转给你。普通请求里,上游认证出错显示为 502;WebSocket 连接会显示 upstream websocket authentication failed。所以看到 401 或 403,一般是 TokLens 自己的检查没通过。

先确认是不是 TokLens 返回的

如果看到 usage_limit_reached 或者「You've hit your usage limit」,这是 ChatGPT 套餐的用量上限,不是 TokLens 的报错。说明 Codex 读的还是 ~/.codex 里的 ChatGPT 登录,没有用 TokLens 的配置。改用 toklens-agentic run 启动:

toklens-agentic run --client codex --profile <profile> -- codex

TokLens 返回的内容是 JSON,错误码在 code、error.code 或 error.type 里,下面按这些值查。

401:Key 有问题

错误码原因处理
API_KEY_REQUIRED请求里没有 Key运行 toklens-agentic doctor --client codex --skip-client,它会把 auth.json 和 requires_openai_auth 改回正确的值;自己写配置的话,检查 Key 是否在请求头里
INVALID_API_KEYKey 不存在,常见是复制时少了字符或多了空格重新复制,或在「接入工具」重新生成安装命令
API_KEY_DISABLEDKey 已停用或已移除换一个可用的 Key
USER_INACTIVE、USER_NOT_FOUNDKey 所属的账户不可用发邮件到 [email protected]

403:Key 有效,但请求被拒绝

错误码原因处理
API_KEY_EXPIREDKey 过了有效期,「API Key」页的「状态」一栏有到期日期管理员发的 Key 联系管理员延期,或换一个没过期的 Key
INSUFFICIENT_BALANCE余额不足,这个 Key 上也没有可用的余额先充值,再到「钱包」的「为 Key 分配余额」分给这个 Key
billing_error(error.type)余额不足、Key 上的余额用完,或订阅过期、到了用量上限按提示充值、分配余额,或查看「订阅」页
MODEL_ACCESS_DENIED这个 Key 不能使用当前模型在 Codex 里用 /model 换一个,可用模型见 Key 所属服务的价格表
REASONING_EFFORT_DENIED这个推理强度不可用调低推理强度,或改 model_reasoning_effort
ACCESS_DENIEDKey 限制了可访问的 IP,当前网络不在范围内联系发 Key 的管理员
SUBSCRIPTION_NOT_FOUND、SUBSCRIPTION_INVALIDKey 属于订阅服务,但订阅不存在、已过期或已暂停到「订阅」页查看
GROUP_DISABLED、GROUP_DELETEDKey 所属的服务不可用管理员发的 Key 联系管理员,其他情况发邮件到 [email protected]

429:超出额度或频率限制

返回内容原因处理
insufficient_quota(API key 额度已用完)这个 Key 上的余额用完。Key 上的余额用完就会拦截,不会自动改用钱包余额,所以钱包里有钱也会出现到「钱包」的「为 Key 分配余额」补上,或打开「余额不足时自动补充」;管理员发的 Key 联系管理员
rate_limit_exceeded:5 小时、日或 7 天限额已用完Key 设了按时间段的消费上限等时间段重置,响应头 Retry-After 是还要等的秒数;「用量明细」里选中这个 Key 可以看到限额和已用金额
rate_limit_exceeded:requests-per-minute每分钟请求数超过限制放慢一点,或减少同时运行的 Codex
rate_limit_exceeded:usage quota exhausted for this platform账户在这个平台的每日、每周或每月用量到了上限等到下个周期再用
rate_limit_error:Concurrency limit exceeded同时进行的请求太多减少同时运行的 Codex 会话
rate_limit_error:Too many pending requests排队的请求已满稍后重试
rate_limit_error:Upstream rate limit exceeded上游暂时限流,和你的 Key 无关稍后重试
USAGE_LIMIT_EXCEEDED订阅的每日、每周或每月用量到了上限,有时会显示为 403 billing_error等到下个周期,或到「订阅」页查看

其他常见报错

报错原因处理
404 model_not_found模型名写错,或当前服务没有这个模型用 /model 换一个
400,内容含 input_tokens exceeds这次请求的上下文太长用 /compact 压缩对话,或开一个新会话
502 upstream_error、503、504服务端或上游暂时出错稍后重试;持续出现就发邮件到 [email protected],附上时间和模型

查到原因之后

改完配置或者补完额度,发一条新请求试试:

toklens-agentic run --client codex --profile <profile> -- \
  codex exec --skip-git-repo-check "Reply with exactly TOKLENS_OK."

成功后可以在「用量明细」里看到这条请求。配置文件每一行的含义见 Codex 接入 TokLens:config.toml 每一行是什么意思。

用户手册:常见问题