Codex 0.149.0 升级后出现 401 Unauthorized / API_KEY_REQUIRED 的解决办法

在使用 Codex 时,不少开发者在升级到 0.149.0 版本后遇到了请求报错:API_KEY_REQUIRED / 401 Unauthorized 导致模型无法正常调用。本文将快速说明该问题的触发原因及具体修复步骤。
 

一、 问题原因分析

在 Codex 0.149.0 及更新版本中,鉴权逻辑进行了安全收紧

核心变更:新版本不再允许自定义 Provider 在配置 requires_openai_auth = false 时,自动继承或回退读取 auth.json 中的鉴权密钥。

如果你的配置文件中将自定义 Provider 设为了 requires_openai_auth = false,但实际请求依赖本地 auth.json 里的密钥注入,就会导致 Codex 无法携带有效的 API Key 发起请求,从而直接抛出 401 UnauthorizedAPI_KEY_REQUIRED 错误。
 

二、 解决方案

1. 找到配置文件路径

根据你的操作系统,打开对应的配置文件 config.toml

  • macOS / Linux
~/.codex/config.toml 
  • Windows
%USERPROFILE%\.codex\config.toml 


2. 修改 config.toml 配置

检查并确保将 requires_openai_auth 改为 true,参考配置如下:

model_provider = "codex"  
model = "gpt-5.6-sol"

[model_providers.codex]
name = "codex"
base_url = "https://your-api-endpoint.com/v1" # 替换为你的实际 API Base URL
wire_api = "responses"
requires_openai_auth = true # 关键项:必须设置为 true supports_websockets = false

注意:切勿将 requires_openai_auth 设置为 false 后还期望其自动读取 auth.json,这是该版本触发 401 的根本原因。


3. 确认 auth.json 凭证文件

在同级目录(~/.codex/auth.json%USERPROFILE%\.codex\auth.json)中,确保已正确配置你的 API Key:

{   "OPENAI_API_KEY": "YOUR_API_KEY_HERE" } 


4. 重启生效

  • 保存上述两个文件后,重启 Codex 即可恢复正常使用。
  • (可选方式):如果你使用的是官方/配套的自动化配置脚本,也可以直接重新运行最新版本的安装脚本以自动同步并修复该配置。


为什么会出现这个问题?

在 0.149.0 之前,当自定义 Provider 设置 requires_openai_auth = false 时,Codex 会“自动”从 auth.json 中读取 OPENAI_API_KEY 来完成鉴权。但新版本移除了这个“自动继承”行为——requires_openai_auth = false 意味着完全不走 OpenAI 认证体系,自然也就不会去读取 auth.json

因此,不要继续使用 requires_openai_auth = false 然后指望 auth.json 生效——这正是 0.149.0 出现 401 的根本原因。

正确的做法是:将 requires_openai_auth 设为 true,让 Codex 通过 auth.json 正常完成认证流程。


验证是否修复成功

重启后,运行一个简单的只读任务来验证,例如:

codex "列出当前目录文件" 

如果能正常返回结果,说明认证已恢复。如果仍然报 401,请按以下顺序排查:

  1. 确认 config.tomlrequires_openai_auth = true 已正确设置
  2. 确认 auth.json 中的 API Key 有效且格式正确
  3. 确认配置文件的目录位置正确(macOS/Linux 为 ~/.codex/,Windows 为 %USERPROFILE%\.codex\
  4. 确认重启时 Codex 已完全退出(不仅仅是关闭窗口)

按照上述步骤操作后,0.149.0 的 401 问题应当可以得到解决。如果仍有问题,可以尝试删除 auth.json 后重新配置,或重新运行最新版安装脚本进行自动修复。