Skip to main content
本文档由 AI 自动翻译。如有任何不准确之处,请参考 英文原版。
应用和经典知识库的接口都以同一种三字段 JSON 结构返回错误:
status 与 HTTP 状态码一致;code 是稳定的标识符,适合作为分支判断的依据;message 是供人阅读的详细信息。每个接口页面都会列出它可能返回的所有 code。
Agent 知识库 API 同样使用这三个字段,并会在很多错误中附带 failure 对象。failure 提供了哪些信息、何时该重试,详见其 处理错误 部分。

状态码类别速览

在 Dify Cloud 上,应用 API 返回的 401 响应也可能表示请求被 IP 访问控制 拦截。如果 API 密钥有效,请应用管理员检查请求的来源 IP 是否在允许范围内。

供应商错误是配置错误

有 4 个常见的 400 code 指向应用的模型配置,而不是你的请求本身:
  • provider_not_initialize:没有有效的模型凭据
  • provider_quota_exceeded:模型供应商自身的配额已用尽
  • model_currently_not_support:当前不支持该模型
  • completion_request_error:发起文本生成请求时出错
这些错误重试无济于事,需在 Dify 中修复应用的模型配置。

速率限制与配额

两个 429 code 的含义并不相同:
  • too_many_requests 是并发上限:应用此刻的同时请求过多。退避后重试即可。
  • rate_limit_error 是 Dify Cloud 的套餐配额(如工作流执行次数)。重试无法消除,只会随配额周期重置或套餐变更而解除。
在 Dify Cloud 上,知识库接口的套餐限制也以 403 返回,例如 请求频率限制。这些响应的 code 为 forbidden。经典知识库接口在访问受限时也使用这个 code,因此要靠 message 区分两者,不要只根据 code 分支处理。

流中的错误

应用的流一旦打开,HTTP 状态码就已经是 200:失败会以 error 事件的形式到达并结束整个流。事件中的 code 取值与本页所列相同,按同样的规则分类处理即可。详见 处理流式响应。

哪些错误值得重试

  • 退避后重试:too_many_requests、500 和网络故障。
  • 不要原样重试:参数校验错误(先修正请求)、鉴权失败,以及配额错误(配额未重置前不会消失)。
  • 修正而非重试:恢复调用返回的 404 意味着 user 不对或运行不存在。改正标识符即可。
Last modified on November 4, 2026