401 Unauthorized: Incorrect API key provided(cc-switch 切换 Codex 后报错)
Quick fix
升级到 cc-switch 4.0.x;或手动清空 ~/.codex/auth.json 中残留的第三方 OPENAI_API_KEY 后重启 Codex,重新走 ChatGPT OAuth 登录。
Symptom
Section titled “Symptom”401 Unauthorized: Incorrect API key provided: PROXY_MA*AGED.这一报错在本聚类中有两种触发路径。其一(#1238):cc-switch 开启代理之后被意外关闭,导致请求地址没有被正确回填,Codex/Claude Code 拿着占位或未生效的凭据去请求,返回 401 Incorrect API key provided: PROXY_MA*AGED;维护者建议重新打开一次 cc-switch 让其恢复正确,但有用户反馈重复操作并未生效。其二(#3566):在 cc-switch 3.16.1 中,当第三方供应商(如智谱 GLM)的 Key 被写入 ~/.codex/auth.json 的 OPENAI_API_KEY 后,切换回 OpenAI Official 预设时该 Key 未被清空,Codex 会把这个第三方 Key 发往 https://api.openai.com/v1/responses,造成凭据与 endpoint 错配,返回 401 Unauthorized: Incorrect API key provided。OpenAI Official 本应使用 requires_openai_auth = true 的 ChatGPT OAuth 登录,不需要 API Key。维护者确认 v4.0.0 重写了 Codex 的认证写入逻辑(第三方 Key 只写进 config.toml,切换时暂存/还原官方登录)并已修复。
临时绕过(#3566 报告者给出的 workaround):切换回 OpenAI Official 后,手动打开 ~/.codex/auth.json,把残留的第三方 OPENAI_API_KEY 清空(或备份后删除),然后重启 Codex,使其回退到 ChatGPT OAuth 登录。
~/.codex/auth.json {"auth_mode": "chatgpt","OPENAI_API_KEY": null,"tokens": {"id_token": "xxx","access_token": "xxx","refresh_token": "xxx","account_id": "xxx"}}彻底修复:将 cc-switch 升级到 4.0.x。v4 重写了 Codex 的认证写入:第三方供应商的 Key 只写入 config.toml 的 [model_providers.custom](experimental_bearer_token),不再写入 ~/.codex/auth.json;切到第三方时官方登录会被暂存,切回 OpenAI Official 时再还原,残留的第三方旧 Key 会被清掉。
如果报错来自代理场景(错误中 key 显示为 PROXY_MA*AGED 占位):重新打开一次 cc-switch,让被意外关闭时代理未回填的请求地址恢复正确。注意:#1238 中有用户反馈重复该流程没有生效,此时建议改用第 1 步手动检查配置文件。
Affected Versions
Section titled “Affected Versions”Source Issues
Section titled “Source Issues”本页汇总自 2 个真实 issue
- 这个回填的请求地址是什么?我重复了流程但没有生效。
- issue 中没有给出具体地址,维护者只说明重新打开一次 cc-switch 即可恢复。若重开无效,可检查 ~/.codex/auth.json 是否残留第三方渠道的 OPENAI_API_KEY,手动清空后重启 Codex。
- Windows 版 Codex App 也会受影响吗?
- 会。有用户补充确认:在 cc-switch 中启用自定义 Codex 渠道后切回 OpenAI Official,auth.json 仍残留自定义渠道的 API Key,Windows 版 Codex App 启动后会继续用该 Key 请求 OpenAI API 而不是使用官方登录认证。
- 升级到 4.0.x 之后还能复现怎么办?
- 维护者表示可回复原 issue,附上复现步骤和打码后的 auth.json 结构,官方会重新打开排查。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。