摘要:Codex token exchange failed是浏览器授权成功后、客户端交换令牌失败的报错,按后缀分流到代理、证书、配置与服务端四类。
- error sending request for url 指向客户端代理与证书,407 指向企业代理认证,回调页打不开仍在回调阶段。
- Windows 设会话级代理变量并从同一会话启动。
- 证书校验失败时用官方 CODEX_CA_CERTIFICATE 挂可信 CA 链,不关 TLS 校验。
适用人群:浏览器能授权、却卡在令牌交换的 Codex 桌面与 CLI 用户。
用 ChatGPT 账号登录 Codex 桌面或 CLI,浏览器里已点了授权,客户端却弹出 Codex token exchange failed。日志原文 token_exchange_failed 发生在浏览器回调之后、客户端向认证端点换取令牌的阶段,常见误区是把回调成功当成令牌交换成功。浏览器走得通不代表客户端走得通:两者的代理配置与证书信任链可能不同,curl 连通端点也不代表客户端采用同一路径。token 额度不足、Remote 安全检查、MCP 第三方授权、登录后的 401 都不在本篇范围,按旧文分流。下文按快速判断、代理变量、残留配置、证书链与验收展开。

目录
- 一、Codex token exchange failed 按后缀快速判断
- 二、Codex 代理变量在 Windows 怎么生效
- 三、Codex 残留代理与协议冲突怎么清理
- 四、Codex 证书校验失败怎么挂可信 CA
- 五、407、设备码与 Codex 登录验收
- 六、常见问题 FAQ
- 相关文章推荐
- 总结
一、Codex token exchange failed 按后缀快速判断
同样是 codex登录失败,完整后缀与日志特征决定往哪个环节查。按下表对号入座,每行只执行一次优先操作并观察日志变化,同时改多项会让分流失效。
| 现象 | 可能环节 | 优先操作 |
|---|---|---|
| 错误文本带 error sending request for url (https://auth.openai.com/oauth/token) | 客户端令牌交换的代理或证书环节 | 核对启动进程的代理变量(第二节)与证书链(第四节) |
| 日志记录 HTTP CONNECT 返回 407 | 企业代理认证未完成 | 与管理员确认代理支持的认证方式,携诊断交支持(第五节) |
| 浏览器里 localhost 回调页无法访问 | 仍在浏览器回调阶段 | 核对回调地址,远程主机改用设备码或 SSH 转发 |
| 返回 403 或 400 | 服务端响应需读正文 | 记录响应正文与请求 ID,不直接判账号或出口问题 |
| 多账号、多网络同一时段一起失败 | 可能是服务端波动 | 观察等待,历史个案约两小时后自行恢复 |
浏览器授权、localhost 回调、令牌交换是三个不同阶段,回调成功不能证明客户端请求成功;登录后的 401 属于另一条线。
二、Codex 代理变量在 Windows 怎么生效
Windows 企业网络必须经 HTTP 代理时,浏览器可正常授权,Codex 普通启动却令牌交换失败,常见原因是代理变量没进入实际启动进程——.env 写了不等于进程采用,有排查者抓到直连 443 停在 SYN_SENT。处理顺序:
- 确认代理客户端真实监听的协议与端口,不用过期端口。
- 保存任务并完整退出 Codex 桌面。
- 在 PowerShell 设置会话级变量(见下方代码);HTTPS_PROXY 的 http:// 前缀表示 HTTP CONNECT 代理,不要求本地代理支持 TLS。
- 在同一 PowerShell 会话启动实际安装的桌面可执行程序,重走登录。
- 登录后发一条真实请求确认拿到模型响应。
$env:HTTP_PROXY = "http://127.0.0.1:端口" $env:HTTPS_PROXY = "http://127.0.0.1:端口" $env:ALL_PROXY = "http://127.0.0.1:端口" $env:NO_PROXY = "localhost,127.0.0.1,::1"
这套会话级启动有单人实测恢复记录,覆盖升级后仍失败的场景;但子进程继承了变量仍失败的记录同样存在,传变量不等于解决,需继续核对残留配置与证书链。
三、Codex 残留代理与协议冲突怎么清理
旧代理工具卸载后,.codex/.env 常残留旧的 HTTP_PROXY、HTTPS_PROXY、ALL_PROXY 条目,端口早已失效,客户端仍照旧值连接,有人清理后即恢复。处理时备份整个 .env,只更正或移除确认失效的代理项;必须经代理出网的网络不能清空后直连。清理顺序:
- 退出 Codex,把 .codex/.env 与 config.toml 复制留底。
- 逐项核对,只有端口连不通、工具已卸载的才移除或更正。
- 确认协议匹配:SOCKS 监听用客户端自带 HTTP 端口,HTTP 监听直接填。
- 重启客户端重走登录,用真实响应验收。
协议不匹配是另一类冲突:只有 SOCKS5 监听却把端口填进 HTTP 变量,连接不按预期建立;只把 socks5:// 改写成 http:// 不算转换。一个单人组合案例:用已有可信工具把本地 SOCKS5 转成本地 HTTP 监听,配合干净 CODEX_HOME 认证,备份隔离原 .env 与 config.toml 后 CLI、桌面与真实请求均恢复。原帖示例:
gost -L http://127.0.0.1:8899 -F socks5://127.0.0.1:7890
使用前要有可信工具并核对协议与端口,优先用客户端自带 HTTP 监听,不认定某个配置项是根因。干净 CODEX_HOME 只用于定位差异:隔离目录成功只说明原配置有差异,不删原目录和数据库。
四、Codex 证书校验失败怎么挂可信 CA
只有日志明确显示 TLS handshake or certificate validation failed 类证据时才进本分支。企业 TLS 检查或私有根 CA 场景下,浏览器与 curl 走系统信任库所以正常,客户端信任库不同导致失败。官方支持登录前设置 CODEX_CA_CERTIFICATE 指向可信 PEM 包,未设置时回退 SSL_CERT_FILE,覆盖登录、HTTPS 与安全 WebSocket。操作顺序:
- 从管理员或可信系统来源取得正确的 PEM 链,不下载来路不明的证书。
- 在启动会话设置变量(写法见下方代码),路径按实际替换。
- 同一会话执行 codex login 或启动桌面重走登录。
- 确认原失败登录与真实请求都成功。
# Windows PowerShell $env:CODEX_CA_CERTIFICATE = "C:\path\to\corp-ca.pem" # macOS / Linux export CODEX_CA_CERTIFICATE=/path/to/corp-ca.pem
老版本按支持情况用 SSL_CERT_FILE。全程不降低安全等级:不用 curl -k、NODE_TLS_REJECT_UNAUTHORIZED=0,也不关闭安全软件。有单人提供系统根 CA 包后登录成功的记录,对内置信任库的解释属个人诊断不外推。更系统的 AI 访问网络对照方法,见 AI 出海网络指南。
五、407、设备码与 Codex 登录验收
CONNECT 返回 407 说明请求已到代理,卡在认证环节。企业代理要求 Negotiate 或 NTLM 时,curl 用集成认证能通、客户端可能没有对应实现,目前没有已验证的通用修复:让管理员核查支持的认证方式,携脱敏诊断交官方支持,重填变量或换节点都没有恢复记录支撑。
官方 codex login –device-auth 面向回调不便的无头环境,需账号与工作区允许;它仍要连认证服务,网络问题没解决照样失败。回调不可达的远程主机官方用 SSH 转发本地 1455 端口,已收到 callback 且 state_valid=true 的不优先折腾 1455。历史上有多账号多网络同时失败、约两小时后自行恢复的个案,虽无官方事故确认,但说明不能都归因本地。
恢复动作做完,按三步验收:
- codex login 返回成功,客户端显示已登录。
- 发一条真实请求拿到模型响应;curl 返回 400 只证明到达端点,不代表登录恢复。
- 完全退出并重启客户端,确认登录与请求正常。
三步都过才算闭环;任何一步失败,整理脱敏诊断(时间、版本、命令、状态码、请求 ID)交官方支持。授权阶段卡住见 Codex登录卡住排查;登录后的 401 按 Codex 401排查 分流。
六、常见问题 FAQ
error sending request for url 和 token 额度不足是一回事吗?
不是。前者是授权成功后客户端交换令牌失败,多发在代理、证书、配置环节;额度不足是用量问题。
curl 能连通 auth.openai.com 就代表 Codex 能登录吗?
不能。curl 返回 400 只证明到达端点,客户端未必同路径同信任链,以真实响应为准。
设备码登录能绕开代理问题吗?
不能。device-auth 面向回调不便场景,仍要连认证服务,网络问题没解决照样失败。
清理 .codex/.env 之前要做什么?
备份整个文件,只更正或移除失效代理项,其余保留;必须经代理出网不能清空直连。
相关文章推荐
![]() |
使用ChatGPT登录到Codex卡住?2026年6种排查与解决方法 |
![]() |
Codex 401 Unauthorized怎么办?2026年按认证方式分流的6步恢复指南 |
![]() |
2026年Codex无法启用远程控制怎么办?Unable to enable remote control的5步代理与配对排查 |
总结
Codex token exchange failed是授权成功后、客户端令牌交换阶段的失败统称,完整后缀与日志特征决定排查方向。Windows 会话级代理变量、残留配置清理、证书链挂可信 CA 是本地可闭环的主线;407 企业代理认证没有通用修复,设备码也不是绕开网络问题的捷径;多账号多网络同时失败时给服务端波动留个位置。主线只有一条:每次只改一处,改完回到登录与真实模型响应验收,curl 能通不算数。逐条核对后若结论指向网络路径,可以了解IPdodo 海外AI网络方案,用固定归属出口做对照验收,再决定是否切换。
原文链接:https://www.ipdodo.com/news/23982/


