
OpenAI Connectivity Issue – “The request returned empty. Please check if the API proxy address does not end with `/v1`.”
快速结论:此报错通常出现在 LobeChat v2.2.8 自部署 Docker 环境中,服务端 API 调用失败。优先排查是否可以通过启用浏览器端“使用客户端请求模式”来绕过该问题,或回退到 v2.2.6 版本。
问题场景
用户通过 Docker 自部署 LobeChat v2.2.8,在 Web 端(Firefox)的“设置 — 模型供应商 — OpenAI”中:
- 点击“检查”按钮显示该错误提示。
- 点击“获取模型列表”按钮返回
Failed to fetch models: Invalid response body while trying to fetch https://api.openai.com/v1/models: Premature close。 - Docker 日志中可见
ERR_STREAM_PREMATURE_CLOSE相关错误。
其他模型供应商(如 Anthropic)的连通性和获取模型功能正常。
报错原文
The request returned empty. Please check if the API proxy address does not end with `/v1`.
Failed to fetch models: Invalid response body while trying to fetch https://api.openai.com/v1/models: Premature close
原因分析
这是一个在 v2.2.8 稳定版中确认的 bug。核心原因在于:
- v2.2.8 仍然使用了 OpenAI SDK v4 (
openai@^4.104.0),该版本依赖node-fetch@2。 - 最近 Node.js 安全更新破坏了
node-fetch@2的 gzip 处理逻辑,导致服务端 API 调用时触发ERR_STREAM_PREMATURE_CLOSE错误。 - 修复方案(升级至 OpenAI SDK v6)已在
v2.2.8-canary.2中生效,但因分支同步问题 未包含在 v2.2.8 稳定版中。
这解释了为什么:
- 浏览器端客户端请求可以正常工作(绕过服务端 Node.js 运行时)。
- 服务端调用(连通性检查、获取模型)失败。
环境排查
- LobeChat 版本:请确认是否为 v2.2.8 稳定版。
- 部署方式:Docker 自部署(Self-hosting)。
- 客户端类型:Web(Desktop Browser),如 Firefox。
- 操作系统:Windows。
- 可能原因:Node.js 运行时环境中的
node-fetch@2版本兼容性。
解决步骤
根据 Issue 讨论中的确认信息,以下是可尝试的解决方案:
- (优先尝试)使用客户端请求模式:在 LobeChat 设置中手动填入 API Key 和 API Proxy URL,然后开启“使用客户端请求模式”(Use Client Request Mode)开关。连通性检查和获取模型应能正常工作。这是绕过服务端问题的快速方式。
- 回退到 v2.2.6:如果问题紧迫,可将 Docker 镜像版本回退到 v2.2.6,该版本没有此问题。
- 使用 canary 镜像:切换到
v2.2.8-canary.2或更新版本的 canary 镜像,其中包含了 OpenAI SDK v6 的升级修复。 - 等待下一个稳定版:下一个稳定版本将包含 OpenAI SDK v6 的升级,从根本上解决此问题。
验证方法
完成上述任一步骤后,返回 LobeChat 设置页面中的 OpenAI 供应商配置,依次点击“检查”和“获取模型列表”按钮。如果返回结果正常、无报错,则问题已解决。



