解决 “Upstream request failed”(502 upstream_error)

BigModel.io 返回 502 upstream_error “Upstream request failed” 是什么意思、什么时候该重试、如何看懂上游模型服务透传的错误,以及联系支持时要提供什么。

本页目录
  1. 这是什么意思
  2. 怎么解决
  3. 来自其他服务的报错
  4. 常见问题排查
  5. 相关文档

调用模型时返回了下面的错误,可能是响应体,也可能是流式输出中途的一个 error 事件:

json
{ "error": { "type": "upstream_error", "message": "Upstream request failed" } }

#这是什么意思

BigModel.io 已经接收请求,校验了 Key 和余额,并把请求转发给模型服务,但模型服务没有返回可用的结果:连接失败、超时或返回了空响应。这次请求不扣费。

有些客户端会在前缀后面带上原因,例如 upstream request failed: empty response,冒号后面就是网关看到的原因。

#怎么解决

  1. 退避重试。 502 是临时错误。先等 1–2 秒,之后每次重试把等待时间翻倍,最长约 30 秒。OpenAI 和 Anthropic SDK 默认已经会对 5xx 重试 2 次(max_retries / maxRetries)。
  2. 看模型状态。 如果同一个模型连续几分钟都失败,从模型目录里换一个接口相同的模型。
  3. 缩短超长请求。 输入特别大或输出特别长的请求更容易超时。使用流式输出,让连接保持活动。
  4. 持续失败就联系支持。 把 X-Request-ID、带时区的时间和模型 ID 发给支持。

#来自其他服务的报错

其他网关和编程工具也会输出以 “upstream request failed” 开头的错误,冒号后面是它们自己的原因。例如要求你修改工作区隐私或训练数据设置的提示,来自你当时调用的服务或工具,而不是 BigModel.io。BigModel.io 没有这类设置,也从不使用提示内容训练模型。想改为通过 BigModel.io 调用同样的模型,见快速开始。

#常见问题排查

流式输出了一部分文字后出现 event: error。 模型服务在回答中途失败了。把已收到的内容当作不完整,重新发起整个请求。见流式输出。

所有模型的每个请求都返回 502。 先检查你的网络或代理是否会切断长连接,再带上请求 ID 联系支持。

#相关文档

更新于 · 以 Markdown 查看