最近在使用 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可以先按下面顺序排查:
base_url是否以/v1结尾;- API Key 是否正确;
- 中转站是否支持 OpenAI 兼容接口;
- 中转站或反向代理是否支持流式响应;
- 是否存在超时或网关提前断开连接。
其中最容易忽略、也最常见的就是第一点:base_url 少写了 /v1。
