最近在使用 Codex 连接中转站时,遇到一个比较容易踩坑的报错:

stream disconnected before completion: stream closed before response.completed

这个错误表面上看像是模型服务中途断流,或者网络连接不稳定。但实际排查下来,很多时候原因很简单:中转站的 base_url 后面少了 /v1

问题现象

在 Codex 中配置中转站后,请求可以发出去,但生成过程会突然中断,并出现类似报错:

stream disconnected before completion: stream closed before response.completed

常见表现包括:

  • 响应还没有完成就被关闭;
  • 流式输出中途断掉;
  • Codex 提示 response.completed 之前 stream 已关闭;
  • 换模型不一定能解决。

如果你用的是 OpenAI 兼容格式的中转站,这时候优先检查 base_url

根因

Codex 这类客户端通常会基于 base_url 拼接 OpenAI 兼容接口路径。

如果配置成:

base_url = "https://xxx.com"

实际请求路径可能就不是中转站期望的 OpenAI API 路径。

很多中转站真正兼容的是:

https://xxx.com/v1

也就是说,少了 /v1 后,请求虽然可能能到达服务端,但接口路径不完整,容易导致流式响应异常、提前关闭或无法正确返回完成事件。

解决方法

打开 Codex 配置文件:

C:\Users\用户名\.codex\config.toml

找到里面的 base_url 配置。

把原来的:

base_url = "https://xxx.com"

改成:

base_url = "https://xxx.com/v1"

保存后重新启动 Codex,再重新发起请求即可。

示例配置

base_url = "https://xxx.com/v1"

重点就是:中转站地址后面要带 /v1

小结

如果 Codex 出现:

stream disconnected before completion: stream closed before response.completed

可以先按下面顺序排查:

  1. base_url 是否以 /v1 结尾;
  2. API Key 是否正确;
  3. 中转站是否支持 OpenAI 兼容接口;
  4. 中转站或反向代理是否支持流式响应;
  5. 是否存在超时或网关提前断开连接。

其中最容易忽略、也最常见的就是第一点:base_url 少写了 /v1

最后修改:2026 年 05 月 18 日
如果觉得我的文章对你有用,请随意赞赏