unexpected status 401 Unauthorized:Codex DeepSeek
Quick fix
升级 CC Switch 4.0;3.x 可在 config.toml 声明自定义 model_provider,避免 Codex 忽略代理并直连 OpenAI。
Symptom
Section titled “Symptom”unexpected status 401 Unauthorized: Incorrect API key provided: sk-9979a***********************225a. You can find your API key at https://platform.openai.com/account/api-keys., url: https://api.openai.com/v1/responses, cf-ray: a06fd811bfa649f7-TPE, request id: req_5cf0db278fa644f59381a0424fd76c15, auth error: 401, auth error code: invalid_api_keyCC Switch 3.x 写入的 Codex 配置可能只有顶层 base_url 和 wire_api,却没有顶层 model_provider,也没有与之对应的 [model_providers.<id>] 段。Codex 因而继续使用内置 openai provider,忽略自定义端点并把 DeepSeek API key 发往 https://api.openai.com/v1/responses,最终被 OpenAI 以 401 拒绝;同一缺陷在本地代理接管和普通供应商切换路径中均有复现。
维护者曾建议 3.16.1 用户升级到 3.16.4,因为 3.16.2 至 3.16.4 修复了多项本地路由问题;但后续用户在 3.19.1 和 3.20.2 仍复现缺少 model_provider 的配置问题。最新维护者回复称 4.0 已重做 Codex 配置写入,3.x 的 TOML 写入和模型不显示问题基本得到解决。关于 requires_openai_auth 和 experimental_bearer_token,原报告认为需要配置,后续在 Codex CLI 0.146.0 的实测则表明本地代理场景不需要这两项。
优先升级到最新的 CC Switch 4.0,重新配置 DeepSeek 供应商并开启本地路由,然后确认请求不再发送到 api.openai.com。
若必须继续使用 3.x,编辑 Codex 配置,为本地代理显式指定 model_provider,并创建同名 provider 段。
C:\Users\LENOVO\.codex\config.toml model_provider = "ccswitch"[model_providers.ccswitch]name = "CC Switch"base_url = "http://127.0.0.1:15721/v1"wire_api = "responses"运行 codex doctor 或查看 codex exec 启动横幅,确认 provider 不再是 openai,并检查 CC Switch 的代理请求记录是否出现 Codex 请求。
如果 4.0 上仍然复现,向项目补充当前 CC Switch 版本、复现步骤、日志以及 config.toml 中 base_url 的实际写入值。
Affected Versions
Section titled “Affected Versions”Source Issues
Section titled “Source Issues”本页汇总自 2 个真实 issue
- 修改配置后出现模型元数据警告,而且 /model 仍未显示 DeepSeek,是不是没有配置成功?
- 评论中的解释称,自定义模型别名不在 Codex 本地缓存时会降级到通用模式,警告本身不一定致命;应进一步确认实际 provider 和请求端点,而不能只依据 /model 列表判断。
- 切换路由时报 Codex model catalog template `gpt-5.5` not found,怎么办?
- 有用户报告可先准备 models_cache.json,再按自定义 provider 配置切换;该用户随后确认问题解决。报错本身也提示可先启动一次 Codex 生成 models_cache.json,或确保 codex CLI 位于 PATH。
- 必须设置 requires_openai_auth = false 和 experimental_bearer_token 吗?
- 原报告把 requires_openai_auth = false 列为必要配置,但后续用户在 Codex CLI 0.146.0 上实测,本地代理只需正确设置 model_provider 和对应的 [model_providers.<id>] 段即可工作,且不需要 experimental_bearer_token。不同版本结论存在差异。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。