news 2026/7/8 10:39:43

本地 Codex 报错 stream disconnected before completion 的排查与修复记录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
本地 Codex 报错 stream disconnected before completion 的排查与修复记录

摘要

最近在本地使用 OpenAI Codex 时,发送消息出现了如下报错:

stream disconnected before completion: error sending request for url (http://127.0.0.1:57321/v1/responses)

一开始以为是 Codex 本身、模型或者网络问题,后来排查发现,真正原因是:Codex 被配置成走本地自定义代理CodexPlusPlus,请求地址指向了127.0.0.1:57321/v1/responses,但本地 57321 端口没有服务在监听。

最终解决方式是:删除本地代理配置,恢复 ChatGPT 账号登录模式,并更换可正常访问 OpenAI 授权接口的代理。

本文记录完整排查过程和后续遇到同类问题时的处理流程。


一、问题现象

本地 Codex 发送消息时报错:

stream disconnected before completion: error sending request for url (http://127.0.0.1:57321/v1/responses)

关键信息是这段 URL:

http://127.0.0.1:57321/v1/responses

这说明 Codex 并不是直接访问官方 OpenAI 服务,而是在请求本机的一个本地服务或代理。


二、第一步:检查本地 57321 端口是否有服务

在 Windows CMD 中执行:

netstat -ano | findstr 57321

结果是:

C:\Users\Lenovo>netstat -ano | findstr 57321 C:\Users\Lenovo>

没有任何输出。

这说明:本地 57321 端口没有服务在监听。

也就是说,Codex 试图访问:

http://127.0.0.1:57321/v1/responses

但这个地址背后根本没有服务,所以请求自然会失败。


三、第二步:排查环境变量

继续检查是否是环境变量把 Codex 指向了本地代理:

echo %OPENAI_BASE_URL% echo %OPENAI_API_BASE%

输出为:

C:\Users\Lenovo>echo %OPENAI_BASE_URL% %OPENAI_BASE_URL% C:\Users\Lenovo>echo %OPENAI_API_BASE% %OPENAI_API_BASE%

这说明系统环境变量中没有设置:

OPENAI_BASE_URL OPENAI_API_BASE

因此,127.0.0.1:57321不是从环境变量来的。


四、第三步:检查 Codex 配置文件

接下来查看 Codex 配置文件:

C:\Users\Lenovo\.codex\config.toml

发现原配置里有如下内容:

model_provider = "CodexPlusPlus" model = "deepseek-v4-flash" [model_providers.CodexPlusPlus] name = "CodexPlusPlus" wire_api = "responses" requires_openai_auth = true base_url = "http://127.0.0.1:57321/v1" experimental_bearer_token = "sk-xxx"

这就是问题根因。

配置含义大概是:

Codex → CodexPlusPlus → http://127.0.0.1:57321/v1/responses

其中:

wire_api = "responses"

表示 Codex 会走 Responses API。

而:

base_url = "http://127.0.0.1:57321/v1"

表示 Codex 会请求本地 57321 端口。

但实际情况是,57321 端口没有服务,因此就会报:

stream disconnected before completion

五、修复方向

这里有两种修复方式。

方案一:继续使用本地代理

如果确实要继续用CodexPlusPlus或其他本地代理,那就需要重新启动对应服务。

启动后再次执行:

netstat -ano | findstr 57321

正常应该看到类似:

TCP 127.0.0.1:57321 0.0.0.0:0 LISTENING xxxx

然后还需要确认代理是否支持:

/v1/responses

因为 Codex 当前请求的是 Responses API,而很多本地模型代理只支持:

/v1/chat/completions

如果本地代理不支持/v1/responses,即使端口启动了,也可能继续报错。

方案二:恢复 ChatGPT 账号登录模式

如果不想走本地代理,而是想用 ChatGPT 账号登录 Codex,可以删除自定义 provider 配置。

最终我采用的是方案二。


六、修改后的 Codex 配置

config.toml顶部改成:

model = "gpt-5.5" forced_login_method = "chatgpt" disable_response_storage = true

删除或注释掉这些内容:

model_provider = "CodexPlusPlus" [model_providers.CodexPlusPlus] name = "CodexPlusPlus" wire_api = "responses" requires_openai_auth = true base_url = "http://127.0.0.1:57321/v1" experimental_bearer_token = "sk-xxx"

需要注意的是,不能只改模型:

model = "gpt-5.5"

如果还保留:

model_provider = "CodexPlusPlus"

Codex 仍然可能继续走自定义 provider。

所以关键是删除:

model_provider = "CodexPlusPlus"

以及对应的:

[model_providers.CodexPlusPlus]

配置块。


七、重新登录 Codex

修改配置后,在 CMD 中执行:

codex logout codex login

如果浏览器登录打不开,可以使用设备码登录:

codex login --device-auth

登录成功后检查状态:

codex login status

正常结果:

Logged in using ChatGPT

此时说明 Codex 已经切换为 ChatGPT 账号登录模式。


八、登录过程中遇到 token exchange failed

在恢复 ChatGPT 登录时,我还遇到了另一个错误:

Sign-in could not be completed Token exchange failed: error sending request for url (https://auth.openai.com/oauth/token) Error code token_exchange_failed

这个问题已经不是127.0.0.1:57321了,而是 Codex 在登录最后一步访问:

https://auth.openai.com/oauth/token

失败。

这种情况一般和网络、代理、VPN 有关。

我更换了一个代理后,问题解决。

可以用下面命令简单测试网络:

curl -I https://auth.openai.com/oauth/token curl -I https://api.openai.com curl -I https://chatgpt.com

如果访问失败,需要更换代理、节点或网络环境。


九、最终启动成功

重新登录后执行:

codex login status

输出:

Logged in using ChatGPT

然后启动 Codex:

codex

启动成功:

╭───────────────────────────────────────╮ │ >_ OpenAI Codex (v0.142.0) │ │ │ │ model: gpt-5.5 /model to change │ │ directory: ~ │ ╰───────────────────────────────────────╯

至此,Codex 已经恢复正常。


十、额外问题:SKILL.md 警告

启动后还看到一个黄色警告:

Skipped loading 1 skill(s) due to invalid SKILL.md files. C:\Users\Lenovo\.agents\skills\roadshow\SKILL.md: missing YAML frontmatter delimited by ---

这个不是登录问题,也不是模型调用问题。

它的意思是某个本地 skill 文件格式不规范,缺少 YAML frontmatter。

解决方式是在文件顶部补上:

--- name: roadshow description: 用于生成、优化和审查路演脚本、路演方案、演示材料和客户沟通内容。 --- # 路演材料 Skill 这里保留原来的 skill 内容。

保存后重启 Codex 即可。


十一、后续再遇到同类问题怎么处理

如果以后再次遇到:

stream disconnected before completion: error sending request for url (http://127.0.0.1:57321/v1/responses)

可以按下面流程处理。

1. 查端口

netstat -ano | findstr 57321

如果没有输出,说明本地 57321 代理没启动。

2. 查配置残留

findstr /S /I /N "57321 CodexPlusPlus model_provider base_url" "%USERPROFILE%\.codex\*"

重点检查:

C:\Users\Lenovo\.codex\config.toml

3. 删除本地代理配置

删除:

model_provider = "CodexPlusPlus"

以及:

[model_providers.CodexPlusPlus] base_url = "http://127.0.0.1:57321/v1"

4. 恢复最小可用配置

model = "gpt-5.5" forced_login_method = "chatgpt" disable_response_storage = true

5. 重新登录

codex logout codex login codex login status

如果登录报 token exchange failed,优先换代理或网络。


十二、总结

这次问题的根因并不是模型不可用,也不是账号密码错误,而是 Codex 配置里残留了本地代理:

CodexPlusPlus → http://127.0.0.1:57321/v1/responses

但本地 57321 端口没有服务在监听,所以发送消息时报:

stream disconnected before completion

最终解决路径是:

1. netstat 确认 57321 没有服务 2. 检查环境变量,排除 OPENAI_BASE_URL / OPENAI_API_BASE 3. 检查 config.toml,发现 CodexPlusPlus 本地代理配置 4. 删除 model_provider 和 base_url 5. 改回 ChatGPT 登录模式 6. 重新 codex logout / codex login 7. 更换可访问 OpenAI auth 的代理 8. codex login status 显示 Logged in using ChatGPT

最终 Codex 成功恢复正常。


十三、安全提醒

如果配置文件里出现类似:

experimental_bearer_token = "sk-xxx"

不要把它原样发到公开平台、聊天记录或截图里。

这类 token 应当按密钥处理。
如果已经暴露,建议尽快去对应平台重置或作废。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/8 10:36:37

NAU8224与STM32F100ZE构建高效数字音频系统

1. 项目概述:NAU8224与STM32F100ZE的音频系统架构 NAU8224是一款高效Class-D音频功率放大器芯片,而STM32F100ZE则是STMicroelectronics推出的Cortex-M3内核微控制器。这两者的组合能够构建一个完整的数字音频处理系统——微控制器负责音频信号的处理与传…

作者头像 李华
网站建设 2026/7/8 10:35:03

嵌入式电源管理:MAX77654与PIC18F86K90高效方案

1. 项目背景与核心需求在嵌入式系统设计中,电源管理始终是决定产品可靠性和能效表现的关键环节。我最近为一个工业物联网终端项目设计电源架构时,深刻体会到传统分立式电源方案的局限性——当系统需要同时为MCU、传感器、无线模块和显示屏供电时&#xf…

作者头像 李华
网站建设 2026/7/8 10:33:36

压电蜂鸣器与PIC微控制器的智能警报系统设计

1. 压电蜂鸣器与微控制器的警报系统设计在工业控制、智能家居和安防系统中,清晰可辨的警报声是确保信息有效传达的关键。这次我选择EPT-14A4005P压电蜂鸣器搭配PIC18F87K22微控制器,构建了一个适应多种环境的警报发生系统。这个组合特别适合需要低功耗、…

作者头像 李华
网站建设 2026/7/8 10:32:06

PIC18微控制器与PAM8904驱动器的智能警报系统设计

1. 项目概述与核心组件选型 在工业控制和智能家居领域,可靠的通知系统是确保设备状态及时传达的关键。我最近完成了一个基于PIC18LF26K42微控制器和PAM8904音频驱动器的通用警报系统设计,这个方案特别适合需要多种音效提示的场景。相比常见的蜂鸣器方案&…

作者头像 李华
网站建设 2026/7/8 10:29:36

RoboWits:面向双臂机器人的认知能力评测基准

1. RoboWits不是又一个机器人Benchmark,它是给“会思考的双手”量身定制的认知体检表你有没有试过让一个双臂机器人把两个不规则形状的积木拼成一座小塔?不是靠预设轨迹硬塞进去,而是先观察积木的凹凸、重心、接触面摩擦力,再决定…

作者头像 李华
网站建设 2026/7/8 10:29:28

MA12070音频放大器与PIC18F4455的集成设计指南

1. MA12070音频放大器核心特性解析 MA12070是英飞凌推出的一款高效集成D类音频放大器IC,采用多级开关技术,在4-26V供电范围内可提供280W峰值输出功率。这款芯片最显著的特点是采用了四阶反馈误差控制技术,能够实现110dB的信噪比(SNR)和仅0.00…

作者头像 李华