401 Unauthorized 表示认证没有通过。它与 429 的请求限制不同:先保留完整错误文本,再确认本次请求使用的是 ChatGPT 登录、OpenAI API Key 还是第三方 Provider。不要在同一次排查中同时替换 Key、Base URL 和模型,否则无法判断哪一步解决了问题。
先看 401 错误文本
OpenAI 的错误码文档把 401 分成几种不同原因,下一步也不同:
| 错误文本或含义 | 先检查 | 下一步 |
| Invalid Authentication | Key 和请求所属组织是否一致 | 确认当前环境实际读取的 Key 与组织 |
| Incorrect API key provided | Key 是否复制完整、是否过期或来自错误项目 | 重新设置正确 Key;必要时在平台创建新 Key |
| 不是组织成员 | 账户是否拥有目标组织/项目的访问权限 | 请组织管理员授予成员权限 |
| IP not authorized | 请求出口 IP 与项目/组织白名单是否一致 | 从允许的 IP 发起请求,或更新白名单 |
这张表只适用于 OpenAI API 返回的 401。第三方 Provider 的错误文本和权限模型可能不同,应以对应 Provider 文档为准。
路径一:ChatGPT 登录
如果你没有配置 API Key 或自定义 Provider,先按 ChatGPT 登录路径排查:关闭并重新启动 Codex,重新完成官方登录,再用一条只读任务验证,例如“只读取 README,说明启动方式”。
不要为了排除登录会话问题而先创建 API Key。ChatGPT 登录和 API Key 是两条认证、计费都不同的路径;前者恢复后,原有会话即可继续验证。
路径二:OpenAI API Key
先确认启动 Codex 的终端或应用进程实际读取了预期 Key。重点检查:
- Key 是否复制完整,且没有粘入空格或引号;
- Key 是否属于你正在使用的账户、组织或项目;
- 修改环境变量后是否重启了启动 Codex 的终端或应用;
- 如果使用 IP 白名单,请求是否从允许的出口发出。
不要在终端输出完整 Key,也不要把 Key 写入仓库。OpenAI API Key 的 Codex 调用按 API 价格计费,不能用 ChatGPT 计划额度来判断它是否有效。
路径三:第三方 Provider
第三方 Provider 需要 Key、Provider 名称、Base URL、Model ID 和环境变量来自同一份当前配置。401 优先检查 Key 和环境变量是否被当前进程读取;404 更接近地址或路径问题;model not found 则更接近模型与 Provider 不匹配。
如果使用 AI Code With,先按当前 Codex 接入说明核对 Provider 与地址。下一步只发送一条无副作用的短请求;账户提供调用记录时,再按时间、Key 和模型核对该请求。
最小验证流程
- 保存完整 401 文本、发生时间和当时的登录方式。
- 只按对应分支修改一个项目。
- 重启会读取认证信息的终端或应用。
- 发送一条只读短任务。
- 成功后再恢复原来的复杂任务;仍失败则保留新错误文本,并转向该错误文本对应的分支。
认证恢复的标准不是“配置文件存在”,而是预期账号或 Provider 能完成这条最小请求。本文没有在你的账户中执行该请求,实际结果以你的错误文本和调用记录为准。



