STREAM DISCONNECTED / RECONNECTING / TIMEOUT
Codex stream disconnected、Reconnecting 5/5、Network Error 与超时排查
连接中断不自动等于“网络不好”或“额度用完”。先分清是在建立连接前超时、响应流中途断开、MCP 工具超时,还是 401、403、404、429、5xx,再按服务状态、运行环境、DNS/TLS、provider 和客户端版本排查。
30 秒分流:你看到的是哪一种连接故障?
| 错误或现象 | 发生阶段 | 优先判断 |
|---|---|---|
stream disconnected before completion | 响应开始后,在 response.completed 前中断 | 服务事件、长连接、TLS/代理、provider、版本 |
Reconnecting... 1/5 到 5/5 | 客户端自动重试 | 先找重试前的第一条真实错误 |
error sending request for url | 请求发送或连接阶段 | 记录域名与路径,核对默认/自定义端点 |
request timed out / ETIMEDOUT | 连接、响应或远端任务等待 | 看哪个组件、多久、是否只在大任务出现 |
certificate / SSL / TLS | HTTPS 握手 | 系统时间、证书链、企业检查和安全软件 |
| 401 / 403 / 404 / 429 | 已获得明确 HTTP 语义 | 进入认证、模型或限流专题,不继续按断网处理 |
| MCP startup / tool timeout | MCP 服务器或工具 | 排查对应 MCP 命令、环境和工具耗时 |
先确认影响范围:这一步比反复重装更有用
- 所有任务还是一个任务
新建一个最小对话测试;只有超大仓库或长上下文失败时,重点看空闲超时、上下文和服务负载。
- CLI、IDE、App 是否都失败
只有 IDE 失败时还要检查 Extension Host 与 app-server;只有 WSL / SSH 失败时检查远端运行侧。
- 默认配置还是自定义 provider
确认是否改过
model_provider、base_url、认证变量或使用过配置切换工具。 - 所有网络还是一条网络
在组织允许的前提下,用一条已知正常的家庭或移动网络做对照。不要用地区绕过或来源不明节点测试。
- 所有人还是只有当前设备
同一时间多人失败先看状态页;单设备失败更偏向本机配置、证书、网络策略或版本。
保存最小诊断证据,不要上传整个 .codex
codex --version
# 在交互界面查看当前账号、模型与配置状态
/status
/debug-config同时记录发生时间和时区、操作系统、CLI / App / IDE 版本、Local / WSL / SSH / Codespaces 环境、ChatGPT 或 API Key 认证方式、默认或自定义 provider、错误中的域名和 request ID。
- 公开截图前删除邮箱、用户名、本地路径、组织与项目敏感信息。
- 绝对不要发送
auth.json、API Key、Session、Cookie、MFA、设备代码或完整仓库日志。 - 错误日志先保留原始副本,再制作脱敏版本;不要只留下最后一行 Reconnecting 5/5。
第一层:先查 OpenAI 状态,再判断是不是本机
打开 OpenAI Status,查看 Codex、ChatGPT 与 APIs 是否有事件。状态页按整体服务汇总,单个套餐、模型或地区仍可能与总状态不同,因此“全绿”不能单独排除所有问题。
| 对照结果 | 更合理的下一步 |
|---|---|
| 状态页有 Codex / ChatGPT 事件,多设备同时失败 | 记录时间,减少重复任务,等待官方更新 |
| 状态页正常,同一账号换设备也失败 | 检查账号、工作区、provider 和服务端特定请求 |
| 状态页正常,换正常网络立即恢复 | 检查原网络的 DNS、TLS、防火墙和企业策略 |
| 只有一个客户端版本失败 | 更新客户端并查同版本 issue / changelog |
第二层:DNS、TLS 和公司防火墙怎么安全判断
可以用不带凭证的 HEAD / TLS 诊断确认是否能建立基础连接:
curl -Iv https://chatgpt.com/
curl -Iv https://api.openai.com/这里拿到 403、404 或其他 HTTP 状态,只能说明 DNS、TCP 和 TLS 已经走到 HTTP 响应阶段,不能证明 Codex 的认证和完整响应流一定正常。若连 HTTP 状态都没有,应保留更早的错误:
| 错误关键词 | 合理范围 | 安全动作 |
|---|---|---|
Could not resolve host | DNS 解析 | 核对系统 DNS、企业策略和网络状态 |
certificate / unknown CA | 证书链、TLS 检查或系统时间 | 更新系统;企业设备让 IT 核对信任链 |
connection reset | 中间设备、服务端或代理主动断开 | 对照另一条正常网络和状态页 |
operation timed out | 路径不可达、丢包、防火墙或上游等待 | 记录超时时长和端点,避免无限重试 |
不要把单个 Windows 根证书案例当成通用修复。只有出现明确的证书错误并完成来源核对时,才处理证书链。不要关闭证书校验、从陌生网站下载根证书,或在企业设备上未经管理员确认强制导入整个 Root store。
公开故障参考:openai/codex #10378。OpenAI 维护者在该案例中要求先提交反馈日志并检查默认配置、公司代理、TLS 握手、VPN、DNS 与实际访问端点。
Codex 的 os error 10054、10060、54、60 分别怎么判断?
Google 相关搜索会把这些数字放在同一组结果中,但操作系统错误号不是跨平台统一诊断码。必须同时保存操作系统、完整英文错误和请求端点,不能只复制数字。
| 常见错误 | 通常描述的结果 | 不能直接证明什么 |
|---|---|---|
Windows os error 10054 | 已有连接被远端或中间路径重置 | 不能只凭它认定 OpenAI 主动断开 |
Windows os error 10060 | 连接或等待响应超过系统超时时间 | 不能区分防火墙、丢包、代理与上游等待 |
macOS os error 54 | 常见为 Connection reset by peer | 不能与 Windows 10054 机械合并成同一根因 |
macOS os error 60 | 常见为 Operation timed out | 不能证明套餐、账号或模型有问题 |
- 记录错误发生在建立连接前还是已经开始流式输出后。
- 确认 URL 属于 OpenAI 默认端点还是自定义 provider。
- 对照状态页、同一时间的其他设备和一条已知正常网络。
- 如果稳定复现,向 OpenAI、服务商或企业 IT 提供时间、request ID 与脱敏日志。
公开 issue 里同样的 reset 或 timeout 既可能出现在客户端网络路径,也可能出现在服务端或长会话中。因此页面只把错误号用于定位传输阶段,不把它包装成某一个代理设置的确定证据。
第三层:确认有效配置、provider 和端点
CLI 与 IDE 会受到用户级和项目级 config.toml 影响。配置切换工具、项目覆盖和环境变量都可能让你以为在用 OpenAI 默认端点,实际却访问第三方 provider。
- 使用
/debug-config查看有效配置来源。 - 记录
model_provider与错误中的实际域名,不公开认证值。 - 检查最近是否修改
base_url、provider、模型、MCP 或 shell 环境。 - 备份自己写的配置,每次只回退一项并做最小对照。
- 默认官方配置正常、自定义 provider 失败时,向该服务商核对 Responses API、SSE / WebSocket 和超时规则。
OpenAI 当前配置参考说明,内置 provider ID(如 openai)保留且不能覆盖;自定义 provider 需要完整定义。不要从博客复制一个不完整的 openai_http 段落,再用定时任务每五分钟改写配置。这样可能掩盖真实端点、破坏项目设置并制造新的认证或模型错误。
SSE、WebSocket 和 Reconnecting:不要看到 5/5 就强制改传输
官方配置参考为自定义 model provider提供了这些字段:
| 字段 | 当前文档含义 | 边界 |
|---|---|---|
request_max_retries | HTTP 请求重试次数,默认 4 | 只增加次数不能修复持续断网或坏配置 |
stream_max_retries | SSE 流中断重试次数,默认 5 | Reconnecting 5/5 仍要找第一条根因 |
stream_idle_timeout_ms | SSE 流空闲超时,默认 300000ms | 不要无限放大来掩盖上游不响应 |
supports_websockets | 声明该 provider 是否支持 Responses API WebSocket 传输 | 属于自定义 provider 定义,不是默认连接的万能开关 |
wire_api | provider 协议;当前只支持 responses | 第三方仅兼容旧接口时可能无法正常工作 |
只有日志和当前官方配置明确指向传输兼容问题时,才在备份后做可回滚对照。不要安装 LaunchAgent、cron 或计划任务持续重写 config.toml;客户端更新后字段可能变化,自动脚本会把旧假设永久化。
Codex App 每次提问前 Reconnecting 5 次,最后仍能回答,是怎么回事?
这和“5/5 后任务彻底失败”不是同一种现象。若每次先等待多次重连、随后仍开始回答,更像某条首选连接尝试没有成功,客户端之后恢复或改走了可用路径;具体行为会随 App 版本、端点和网络环境变化。
Google 首页把代理环境、WebSocket 和不同文章的一键配置放在一起,但 openai/codex 的相关 issue 只证明用户确实遇到相同症状。issue 被标记为重复,不等于维护者确认了某个代理或 WebSocket 方案是统一根因。
- 记录 App 版本和首次发生日期
如果更新后才出现,比较当前版本与一个明确的旧版本记录,不凭记忆判断。
- 保存第一次重连前的日志
区分握手、DNS/TLS、HTTP 状态、流中断和 app-server,而不是只截 5/5。
- 做 CLI 与 App 对照
同账号、同网络、同最小任务下,只有 App 重连时更偏向 App 或其运行环境。
- 做一条正常网络对照
在组织与地区规则允许的前提下测试;恢复后让 IT 或网络维护者检查实际路径。
- 不要自动永久改写配置
只有当前官方字段、实际日志和可回滚测试同时支持时,才调整自定义 provider。
公开故障参考:openai/codex #14297(关闭为 #14209 的重复问题;该状态不构成统一根因结论)。
request timed out、stream idle 和 MCP timeout 要分开
| 错误中出现什么 | 超时对象 | 优先动作 |
|---|---|---|
| provider URL、request timed out | 模型请求或远端服务 | 查端点、状态、网络路径和 provider |
| stream idle / disconnected | 响应流长期无事件或中断 | 缩小任务,查负载、传输与空闲超时 |
| MCP server startup timeout | MCP 进程未在启动窗口内就绪 | 检查命令、依赖、环境变量和启动日志 |
| MCP tool timeout | 某个工具执行超过限制 | 缩小工具输入、修复工具或按证据调整超时 |
| 终端命令 timeout | 本地命令、构建或等待输出 | 检查命令本身,不把它当成 OpenAI 断流 |
OpenAI 当前配置参考给 MCP server 的默认启动超时为 10 秒、单工具默认超时为 60 秒,并允许按 server 配置。只有错误明确包含对应 MCP 名称时才调整;把 MCP timeout 加到很大不会修复模型响应流。若错误包含 MCP startup interrupted、handshaking failed 或具体工具名,进入Codex MCP 启动与工具超时专题。
安全恢复顺序:一次只改变一个变量
- 记录并停止重试风暴
保存第一条错误、端点、时间和版本,暂停并发任务。
- 检查状态页
有事件时等待官方恢复,不用重复登录或改证书。
- 更新 Codex 与 IDE 扩展
记录更新前后版本;若更新后才发生,查看同版本 issue 和 changelog。
- 用最小任务对照
排除超大上下文、仓库扫描和长时间无事件。
- 确认实际运行环境
Local、WSL、SSH、容器和 IDE Extension Host 要分别判断。
- 对照一条正常网络
在组织和地区规则允许的前提下测试;如果恢复,让 IT 检查 DNS、TLS 和防火墙。
- 回退非默认配置
备份后逐项停用自定义 provider、base URL 或配置切换工具,不删除整个
.codex。 - 提交脱敏反馈
最小任务也稳定失败时,携带 thread ID、request ID 和时间联系官方支持。
怎样给 OpenAI / IT 一份可处理的报告
- 01错误与时间
第一条完整错误、发生时间和时区、是否稳定复现。
- 02版本与环境
Codex、IDE 扩展、操作系统、Local / WSL / SSH / Remote。
- 03端点与配置边界
默认 OpenAI 还是自定义 provider;只提供域名和脱敏配置。
- 04影响范围
一个任务、所有任务、一个设备、一条网络,还是多个成员。
- 05可追踪标识
request ID、thread ID;按客户端提示使用
/feedback上传受控日志。
企业网络可把实际需要访问的 Codex 端点、时间、TLS 错误和对照结果交给 IT。不要为了排障关闭整机防火墙、永久放宽证书验证,或把认证文件上传到公开 issue。
Codex 连接中断与超时常见问题
Codex stream disconnected before completion 是什么意思?
它表示响应流在 response.completed 之前中断,不自动等于额度不足。常见范围包括服务事件、DNS/TLS、公司防火墙或代理、自定义 provider、客户端版本和连接空闲超时;应结合端点、完整错误和影响范围判断。
Codex Reconnecting 1/5 到 5/5 怎么解决?
先停止重复创建任务,记录最早错误和版本,检查 OpenAI 状态页,再比较同一账号在 CLI、IDE 和另一条正常网络上的表现。达到 5/5 只说明自动重试未恢复,不能单独证明是 WebSocket、套餐或账号问题。
浏览器能打开 ChatGPT,为什么 Codex 仍然 Network Error?
浏览器打开首页只证明浏览器能完成部分访问,不能证明 Codex 运行环境能持续访问实际端点。终端、WSL、Remote、IDE Extension Host、公司 TLS 检查和自定义 provider 可能使用不同网络路径或配置。
Codex 出现 certificate、SSL、TLS 或 SEC_E_UNTRUSTED_ROOT 怎么办?
先记录证书错误、颁发者和发生环境,检查系统日期、操作系统更新、企业 TLS 检查和安全软件。企业设备应交给 IT 核对信任链;不要从陌生来源下载根证书,也不要在没有明确证据时强制导入整个根证书库。
Codex reconnecting 要不要在 config.toml 强制 supports_websockets = false?
不要把它当作通用修复。官方配置参考把 supports_websockets 放在自定义 model provider 定义中;它不能证明默认 ChatGPT 连接一定是根因。先用 /debug-config 确认有效配置、provider 和端点,再按当前官方字段做最小、可回滚的测试。
Codex request timed out 和 MCP timeout 是一回事吗?
不是。模型请求或响应流超时发生在 provider 通信;MCP startup timeout 表示服务器未及时启动,tool timeout 表示某个 MCP 工具执行过久。应根据错误中出现的 MCP server 或 tool 名称进入对应排查。
Codex 默认会重试几次、多久算流空闲?
OpenAI 当前配置参考对自定义 model provider 给出的默认值是 HTTP request_max_retries 4、SSE stream_max_retries 5、stream_idle_timeout_ms 300000。它们属于自定义 provider 配置参考,不应据此推断所有 ChatGPT 登录和客户端版本都完全相同。
升级 ChatGPT Plus 或 Pro 能修复 stream disconnected 吗?
通常不能。套餐升级只在账号访问资格或 Codex 用量不足时相关;DNS、TLS、防火墙、代理、自定义 provider、客户端回归和服务事件不会因重复充值自动修复。先完成技术分流。
Codex 使用第三方 provider 后反复断流怎么办?
先保存当前配置并确认有效的 model_provider、base_url、wire_api、认证变量和服务商对 SSE 或 WebSocket 的支持。用默认官方配置做对照,不要把第三方故障当成 OpenAI 官方状态,也不要公开 API Key。
Codex 的 os error 10054、10060、54、60 分别是什么意思?
错误号必须结合操作系统和文字判断。Windows 10054 常见于连接被远端重置,10060 常见于连接或等待响应超时;macOS 上 54 常见 connection reset by peer,60 常见 operation timed out。它们描述传输结果,不能单独证明是 OpenAI、代理或本机导致。
Codex App 每次提问前 Reconnecting 5 次,最后还能回答怎么办?
这说明某条连接尝试没有立即成功,但客户端最终恢复或改走了可用路径。先记录 App 版本、第一条错误和实际端点,再比较更新前后、CLI 与 App、另一条正常网络;公开 issue 的重复关闭只证明症状相似,不能证明所有用户都应修改 WebSocket 或代理。
向 OpenAI 报告 Codex 断流需要哪些信息?
保存发生时间和时区、Codex 与 IDE 版本、操作系统、CLI/IDE/WSL/Remote 环境、认证方式、默认或自定义 provider、脱敏错误、request ID、最小复现和影响范围。可按客户端提示使用 feedback 流程上传日志,但不要公开 auth.json、API Key、Session 或项目代码。
来源与利益关系说明
本文由 Hi Codex 服务团队根据 OpenAI Codex Configuration Reference、状态页、官方仓库公开 issue 与当前 SERP 整理。团队提供独立人工充值协助,与 ChatGPT / Codex 套餐主题存在商业利益关系;与 OpenAI 不存在隶属、代理或官方授权关系。
连接实现、配置字段、端点和客户端行为会变化,请以当前官方文档、实际日志和受控对照为准。本文不提供地区绕过、第三方 API 中转、共享凭证、关闭 TLS 校验或来源不明根证书安装方法。
stream disconnected、TLS、DNS、公司防火墙、自定义 provider 和 MCP timeout 不会因为重复充值自动修复。