运行时错误目录

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

<ph type="x-smartling-placeholder">

Apigee Edge 中的错误

通过 Apigee Edge 发出 API 请求时,Apigee Edge 组件包括路由器和消息处理器,或后端 服务器可以将错误返回给客户端应用。

消息处理器中的错误

消息处理器是 Apigee Edge 的核心组件,用于处理政策和 与后端服务器进行交互如果它检测到任何问题,就会返回错误,例如:

  • 网络连接问题、TLS 握手失败、后端服务器不可用、与后端服务器通信期间无响应
  • 政策执行期间失败
  • HTTP 标头/编码/路径无效、不遵循 HTTP 规范、超出产品限制等:
    • 由客户端应用发送的 HTTP 请求
    • 由后端服务器发送的 HTTP 响应
  • 其他

消息处理器中的错误示例

消息处理器始终返回 HTTP 状态代码,后跟错误消息以及 JSON 格式的错误代码,如下所示:

客户端应用获取如下所示的响应代码:

HTTP/1.1 414 Request-URI Too Long

消息处理器的错误响应采用以下格式:

{
   "fault":{
      "faultstring":"request line size exceeding 7,168",
      "detail":{
         "errorcode":"protocol.http.TooBigLine"
      }
   }
}

错误响应中的字段说明

字段 说明
faultstring 包含描述错误消息可能原因的错误消息
errorcode 与错误关联的错误代码(也称为故障代码

运行时错误目录

此错误目录提供了您需要了解的有关 runtime 错误代码(针对非政策错误) 处理器组件。对于每个错误代码,它包含以下信息:

  • HTTP 状态代码
  • 错误消息
  • 错误的可能原因
  • 任何相关的 HTTP 规范和/或产品限制
  • 手册和视频,其中包含诊断错误原因的说明以及可用于自行解决错误的有效解决方案(如果有)
  • 可以用来自行解决错误的修复

涵盖以下错误代码类别:

使用下面的搜索框过滤表格,以显示特定错误代码的上述信息。您可以搜索状态代码或表内任意字段中的任何内容。

错误代码 说明 修复

flow.*

flow.APITimedOut

  • HTTP 状态代码:
504 Gateway Timeout
  • 错误消息
API timed out
  • 可能的原因:

在以下情况下,会发生此错误:

  • 后端服务器在特定 API 代理的属性 api.timeout 配置的超时期限内不会做出响应。
  • 由于计算密集型操作、高负载或性能不佳,政策需要很长时间。

注意:本指南提供了对错误代码进行问题排查的说明 messaging.adaptors.http.flow.GatewayTimeout;但您可以使用 同一 playbook 来排查 flow.APITimedOut 错误代码。

<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

flow.SharedFlowNotFound

  • HTTP 状态代码:
500 Internal Server Error
  • 错误消息
Shared Flow {shared_flow_name} Not Found
  • 可能的原因:

如果特定的共享流存在以下情况,则会出现此错误:

  • 不存在
  • 已存在,但未部署
<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

messaging.adaptors.http.flow

messaging.adaptors.http.flow.ApplicationNotFound

  • HTTP 状态代码:
404 Not Found
  • 错误消息
Unable to identify proxy for host: {virtual_host} and url: {pathsuffix}
  • 可能的原因:

在以下情况下,会发生此错误:

  1. 具体的 API 代理是:
    1. 未配置为接受 虚拟主机
    2. 未配置为接受特定路径上的请求 请求中使用的样式
    3. 未部署在 尝试发出 API 请求
    4. 未在一个或多个消息处理器上部署
  2. 您要尝试创建的特定环境 API 请求未在一个或多个消息处理器上加载
<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南
如果多个虚拟主机具有相同的主机,也会发生此错误 别名和端口号 <ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

messaging.adaptors.http.flow.DecompressionFailureAtRequest

  • HTTP 状态代码:
400 Bad Request
  • 错误消息
Decompression failure at request
  • 可能的原因:

仅在以下情况下,会发生此错误:

  • HTTP 请求标头中指定的编码 Content-Encoding 有效且 <ph type="x-smartling-placeholder"></ph> (由 Apigee Edge 提供支持)
  • 但是

  • 客户端作为 HTTP 请求的一部分发送的载荷格式与 Content-Encoding 标头中指定的编码格式不匹配
<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

messaging.adaptors.http.flow.DecompressionFailureAtResponse

  • HTTP 状态代码:
502 Bad Gateway
  • 错误消息
Decompression failure at response
  • 可能的原因:

仅在以下情况下,会发生此错误:

  • 后端/目标服务器的 HTTP 响应标头 Content-Encoding 有效且 <ph type="x-smartling-placeholder"></ph> (由 Apigee Edge 提供支持)
  • 但是

  • 后端/目标服务器发送的载荷格式, 部分 HTTP 响应中指定的编码格式与 Content-Encoding标题
<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

messaging.adaptors.http.flow.ErrorResponseCode

  • HTTP 状态代码:
500

<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 视频

  • 错误消息
错误消息和格式可能因后端服务器实现而异。
  • 可能的原因:
如果后端服务器返回状态,就会出现此错误 代码 500 复制到 Apigee Edge。
  • HTTP 状态代码:
503

<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 视频

  • 错误消息
错误消息和格式可能因后端服务器实现而异。
  • 可能的原因:
如果后端服务器返回状态,就会出现此错误 代码 503 复制到 Apigee Edge。
  • HTTP 状态代码:
504 <ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南
  • 错误消息
错误消息和格式可能因后端服务器实现而异。
  • 可能的原因:
如果后端服务器返回状态,就会出现此错误 代码 504 复制到 Apigee Edge。

注意:在发送到客户端应用的错误消息中,系统不会返回错误代码 messaging.adaptors.http.flow.ErrorResponseCode。这是 因为每当后端服务器触发时,Apigee Edge 都会设置此错误代码, 返回错误以及 4XX5XX 中的任意一个 状态代码。您可以在 API Monitoring、NGINX 访问日志、 或分析数据库。

messaging.adaptors.http.flow.GatewayTimeout

  • HTTP 状态代码:
504 Gateway Timeout
  • 错误消息
Gateway Timeout
  • 可能的原因:
如果后端服务器没有响应,就会出现此错误 迁移到 Google Cloud 中的 <ph type="x-smartling-placeholder"></ph> 消息处理器上配置的 I/O 超时期限
<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

messaging.adaptors.http.flow.LengthRequired

  • HTTP 状态代码:
411 Length Required
  • 错误消息
'Content-Length' is missing
  • 可能的原因:

如果 Content-Length 标头没有通过 作为 HTTP POSTPUT 的一部分的客户端应用 发送到 Apigee Edge。

注意:无法在跟踪工具中捕获因此错误而失败的请求,因为消息处理器在非常早的阶段(远早于处理请求并在 API 代理中执行任何政策之前)执行此验证。

  • HTTP 规范
RFC 第 3.3.2 节:内容长度

修复

要解决此错误,请执行以下步骤:

  1. 确保客户端应用始终传递标头 Content-Length(作为 HTTP POST 的一部分)和 已将 PUT 个请求发送到 Apigee Edge。例如:

    curl -X POST https://HOSTALIAS/PATH -d '{"name": "abc"}' -H "Content-Length: 15"
    
  2. 即使您使用 POSTPUT 请求传递空载荷,请确保传递标头 Content-Length: 0。例如:

    curl -X POST https://HOSTALIAS/PATH -H "Content-Length: 0"
    

messaging.adaptors.http.flow.NoActiveTargets

  • HTTP 状态代码:
503 Service Unavailable
  • 错误消息
The Service is temporarily unavailable
  • 可能的原因:

出现此错误的原因可能是以下某种情况, 如果您使用的是 <ph type="x-smartling-placeholder"></ph> TargetServer

  1. 自定义授权服务器对后端服务器主机的 DNS 解析不正确,导致 IP 地址错误,进而导致连接错误。
  2. 连接超时错误原因如下:
    1. 后端服务器上的防火墙限制可防止 Apigee Edge 连接到后端服务器。
    2. Apigee Edge 之间的网络连接问题 和后端服务器
  3. TargetServer 中指定的主机不正确或包含不需要的字符(例如空格)。

<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 视频

如果配置为监控目标服务器的健康检查的健康检查失败,也可能会发生此错误。

<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 视频

messaging.adaptors.http.flow.RequestTimeOut

  • HTTP 状态代码:
408 Request Timeout
  • 错误消息
Request timed out
  • 可能的原因:
如果 Apigee Edge 消息处理器未收到 从客户端应用请求载荷 <ph type="x-smartling-placeholder"></ph> 在消息处理器组件上配置的 I/O 超时期限

修复

确保客户端应用在 <ph type="x-smartling-placeholder"></ph> 在 Apigee Edge 的消息处理器组件上配置的 I/O 超时期限

messaging.adaptors.http.flow.ServiceUnavailable

  • HTTP 状态代码:
503 Service Unavailable
  • 错误消息
The Service is temporarily unavailable
  • 可能的原因:

在以下情况下,会发生此错误:

  1. 自定义授权服务器对后端服务器主机的 DNS 解析不正确,导致 IP 地址错误,进而导致连接错误。
  2. 连接超时错误原因如下:
    1. 后端服务器上的防火墙限制可防止 Apigee Edge 连接到后端服务器。
    2. Apigee Edge 与 后端服务器
  3. 目标端点中指定的目标服务器主机不正确或包含不需要的字符(例如空格)。

<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

DNS 故障:

<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 视频

网络连接:

<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 视频

如果后端服务器在请求处理器仍在向后端服务器发送请求载荷时过早关闭连接,也可能会出现此错误。 <ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

messaging.adaptors.http.flow.SslHandshakeFailed

  • HTTP 状态代码:
503 Service Unavailable
  • 错误消息
SSL Handshake failed {error_message}
  • 可能的原因:

在 Apigee Edge 与服务器之间的 SSL 握手过程中, 消息处理器和后端服务器(如果满足下列条件):

  1. Apigee Edge 消息处理器的信任库: <ph type="x-smartling-placeholder">
      </ph>
    • 包含的证书链与后端服务器的 完整的证书链
    • 不包含后端服务器的完整证书链
  2. 后端服务器提供的证书链:
    • 包含与目标端点中指定的主机名不匹配的完全限定域名 (FQDN)
    • 包含的证书链不正确/不完整

<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 视频

messaging.adaptors.http.flow.UnexpectedEOFAtTarget

  • HTTP 状态代码:
502 Bad Gateway
  • 错误消息
Unexpected EOF at target
  • 可能的原因:

在以下情况下,会发生此错误:

  1. <ph type="x-smartling-placeholder"></ph> TargetServer 配置不正确,无法支持 TLS/SSL 连接 。
  2. 后端服务器可能会突然关闭连接 当 Apigee Edge 正在等待后端服务器响应时。
  3. Apigee 和后端服务器上的 keep-alive 超时配置不正确。
<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

messaging.runtime.*

messaging.runtime.RouteFailed

  • HTTP 状态代码:
500 Internal Server Error
  • 错误消息
Unable to route the message to a TargetEndpoint
  • 可能的原因:

如果 Apigee Edge 无法将请求路由到 TargetEndpoint 的原因如下:

  • 代理中没有与请求匹配的路由规则 (<RouteRule>) 条件
  • ProxyEndpoint 中没有定义默认路由规则(即没有任何条件的 <RouteRule>

修复

要解决此错误,请按照以下说明操作:

  1. 查看 ProxyEndpoint 中定义的路由规则并进行修改,以确保至少有一个路由规则条件与您的请求相匹配。
  2. 如果存在多个 RouteRule,则建议您定义一个不带任何条件的默认路由规则。
  3. 确保默认路由规则始终在条件路由列表中最后定义,因为规则是在 ProxyEndpoint 中自上而下进行评估的。

如需详细了解如何在 ProxyEndpoint 中定义 <RouteRule> 条件,请参阅条件目标

messaging.runtime.SenseRaiseFault

  • HTTP 状态代码:
403 Forbidden
  • 错误消息
Sense Fault
  • 可能的原因:
如果 API 请求是从特定客户端 IP 地址发出的,就会出现此错误 这已作为 Apigee Sense 规则的一部分被屏蔽。

修复

要解决此错误,请按照以下说明操作:

  1. 验证您是否已通过 <ph type="x-smartling-placeholder"></ph> 请检查在 Apigee Sense 中配置的规则。如果屏蔽了 则表示它按预期运行
  2. 如果特定客户端 IP 地址未被屏蔽,但您仍 收到此错误,请与 Apigee Edge 支持团队联系。

protocol.http.* - Caused due to bad request

protocol.http.BadFormData

  • HTTP 状态代码:
500 Internal Server Error
  • 错误消息
Bad Form Data
  • 可能的原因:

当且仅当满足以下所有条件时,会出现此错误:

  1. 客户端向 Apigee Edge 发送的 HTTP 请求 包含: <ph type="x-smartling-placeholder">
      </ph>
    • Content-Type: application/x-www-form-urlencoded
    • 带有百分号 (%) 或百分号 (%) 后跟无效的十六进制字符的表单数据,这些字符根据表单 - 第 17.13.4.1 节是不允许的。
  2. Apigee Edge 中的 API 代理读取特定形式 参数中包含不允许使用 ExtractVariables 或 AssignMessage 政策。
<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

protocol.http.DuplicateHeader

  • HTTP 状态代码:
400 Bad Request
  • 错误消息
Duplicate Header "{header_name}"
  • 可能的原因:
如果不允许存在重复的特定 HTTP 标头,就会出现此错误 在 Apigee Edge 中,在 Apigee Edge 中 客户端应用向 Apigee Edge 发送的 HTTP 请求。
  • HTTP 规范
RFC 7230 第 3.2.2 节:字段顺序
<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

protocol.http.EmptyHeaderName

  • HTTP 状态代码:
400 Bad Request
  • 错误消息
Header name cannot be empty
  • 可能的原因:
如果标头名称作为 HTTP 的一部分发送, 向 Apigee Edge 发出的请求为空。
  • HTTP 规范
RFC 7230 第 3.2 节:标头字段

修复

确保客户端应用发送的 HTTP 请求 到 Apigee Edge 始终包含有效的标头名称(根据 <ph type="x-smartling-placeholder"></ph> RFC 7230,第 3.2 节:标头字段

protocol.http.HeaderNameWithNonAsciiChar

  • HTTP 状态代码:
400 Bad Request
  • 错误消息
Header {header_name} contains non ascii character {character}
  • 可能的原因:
如果作为 HTTP 请求的一部分发送的标头名称,就会出现此错误 包含非 ASCII 字符。
  • HTTP 规范

“RFC 7230 第 3.2 节:标头字段”“RFC 7230 第 3.2.6 节:字段值组成部分”

修复

确保将客户端的 HTTP 请求发送到 根据规范,Apigee Edge 的标头名称中未包含非 ASCII 字符 <ph type="x-smartling-placeholder"></ph> RFC 7230,第 3.2.6 节:字段值组成部分

protocol.http.HeaderWithInvalidChar

  • HTTP 状态代码:
400 Bad Request
  • 错误消息
Header {header_name} contains invalid character {character}
  • 可能的原因:
如果作为 HTTP 请求的一部分发送的标头名称,就会出现此错误 由客户端应用向 Apigee Edge 发送且包含无效字符,例如 等号 (=)、英文逗号 (,)、分号 (;)、制表符、CRLF 和换行符。
  • HTTP 规范

“RFC 7230 第 3.2 节:标头字段”“RFC 7230 第 3.2.6 节:字段值组成部分”

修复

确保客户端应用向 Apigee Edge 发送的 HTTP 请求不会 标头名称中包含任何无效字符, <ph type="x-smartling-placeholder"></ph> RFC 7230,第 3.2.6 节:字段值组成部分

protocol.http.InvalidPath

  • HTTP 状态代码:
400 Bad Request
  • 错误消息
Invalid path {path}
  • 可能的原因:
如果客户端应用发送的 HTTP 请求网址中的路径,就会出现此错误 Apigee Edge 包含规范不允许使用的字符 RFC 3986,第 3.3 节:路径。
  • HTTP 规范

RFC 3986 第 3 节:语法组成部分 RFC 3986,第 3.3 节:路径

修复

确保客户端发送的 HTTP 请求网址中的路径 应用至 Apigee Edge 不包含任何不允许使用的 <ph type="x-smartling-placeholder"></ph> (请参阅 RFC 3986 第 3.3 节:路径)

protocol.http.TooBigBody

  • HTTP 状态代码:
413 Request Entity Too Large
  • 错误消息
Body buffer overflow
  • 可能的原因:
如果客户端应用作为 发送到 Apigee Edge 的 HTTP 请求超出了 Apigee Edge 中允许的限额。
  • 此政策具有以下限制:
Apigee Edge 限额
<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

protocol.http.TooBigHeaders

  • HTTP 状态代码:
431 Request Header Fields Too Large
  • 错误消息
request headers size exceeding {limit}
  • 可能的原因:
客户端发送的所有请求标头的总大小 应用程序大小超过允许的 限制。
  • HTTP 规范
RFC 6585 第 5 节:431 请求标头字段过大
  • 此政策具有以下限制:
<ph type="x-smartling-placeholder"></ph> Apigee Edge 限额
<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

protocol.http.TooBigLine

  • HTTP 状态代码:
414 Request-URI Too Long
  • 错误消息
request line size exceeding {limit}
  • 可能的原因:
如果客户端应用发送的请求行的大小不同, 发送给 Apigee Edge 的 HTTP 请求中包含的事件数大于 Apigee Edge。
  • 此政策具有以下限制:
Apigee Edge 限额
<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

protocol.http.UnsupportedEncoding

  • HTTP 状态代码:
415 Unsupported Media
  • 错误消息
Unsupported Encoding "{encoding}"
  • 可能的原因:
如果客户端发送的 Content-Encoding 标头,就会出现此错误 包含某种编码/有效负载格式, <ph type="x-smartling-placeholder"></ph> 由 Apigee Edge 提供支持
  • HTTP 规范
RFC 7231 第 6.5.13 节:415 不支持的媒体类型
<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

protocol.http.* - Caused by target

protocol.http.BadPath

  • HTTP 状态代码:
500 Internal Server Error
  • 错误消息
Invalid request path
  • 可能的原因:
如果后端服务器的请求网址(由流变量 target.url 表示)包含以问号 (?) 开头(而非转发斜杠 (/))的路径(这种情况无效),就会出现此错误。
  • HTTP 规范

RFC 3986 第 3 节:语法组成部分 RFC 3986,第 3.3 节:路径

<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

protocol.http.DuplicateHeader

  • HTTP 状态代码:
502 Bad Gateway
  • 错误消息
Duplicate Header "{header_name}"
  • 可能的原因:
如果不允许存在重复的特定 HTTP 标头,就会出现此错误 在 Apigee Edge 中,都以相同或不同的值 后端服务器发送到 Apigee Edge 的 HTTP 响应。
  • HTTP 规范
RFC 7230 第 3.2.2 节:字段顺序
<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

protocol.http.EmptyHeaderName

  • HTTP 状态代码:
502 Bad Gateway
  • 错误消息
Header name cannot be empty
  • 可能的原因:
如果后端服务器作为 HTTP 的一部分发送的标头名称, 对 Apigee Edge 的响应为空。
  • HTTP 规范
RFC 7230 第 3.2 节:标头字段

修复

确保后端发送的 HTTP 响应 服务器到 Apigee Edge 始终包含有效的标头名称(根据 <ph type="x-smartling-placeholder"></ph> RFC 7230,第 3.2 节:标头字段

protocol.http.EmptyPath

  • HTTP 状态代码:
500 Internal Server Error
  • 错误消息
Request path cannot be empty
  • 可能的原因:
如果后端服务器的 HTTP 请求网址(由流变量 target.url 表示)包含空路径,则会发生此错误。
  • HTTP 规范

RFC 3986 第 3 节:语法组成部分 RFC 3986,第 3.3 节:路径

<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

protocol.http.HeaderNameWithNonAsciiChar

  • HTTP 状态代码:
502 Bad Gateway
  • 错误消息
Header {header_name} contains non ascii character {character}
  • 可能的原因:
如果后端服务器作为 HTTP 响应的一部分发送到 Apigee Edge 的标头名称包含非 ASCII 字符,则会发生此错误。
  • HTTP 规范

“RFC 7230 第 3.2 节:标头字段”“RFC 7230 第 3.2.6 节:字段值组成部分”

修复

确保将后端服务器的 HTTP 响应发送至 根据规范,Apigee Edge 的标头名称中未包含非 ASCII 字符 <ph type="x-smartling-placeholder"></ph> RFC 7230,第 3.2.6 节:字段值组成部分

protocol.http.HeaderWithInvalidChar

  • HTTP 状态代码:
502 Bad Gateway
  • 错误消息
Header {header_name} contains invalid character {character}
  • 可能的原因:
如果后端服务器在 HTTP 响应中发送的标头名称包含等号 (=)、英文逗号 (,)、分号 (;)、制表符、CRLF 和换行符等字符,则会出现此错误。
  • HTTP 规范

“RFC 7230 第 3.2 节:标头字段”“RFC 7230 第 3.2.6 节:字段值组成部分”

修复

确保发送到 Apigee Edge 的后端服务器的 HTTP 响应不包含任何 标头名称中包含无效字符, <ph type="x-smartling-placeholder"></ph> RFC 7230,第 3.2.6 节:字段值组成部分

protocol.http.ProxyTunnelCreationFailed

  • HTTP 状态代码:
503 Service Unavailable
  • 错误消息
Proxy refused to create tunnel with response status {status code}
  • 可能的原因:

创建 Apigee Edge 与 由于防火墙、ACL(访问控制列表)、DNS 而由代理服务器传送的后端服务器 后端服务器的可用性等。

注意:错误消息 (faultstring) 中的状态代码提供了导致此问题的简要原因。

<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

protocol.http.Response306Reserved

  • HTTP 状态代码:
502 Bad Gateway
  • 错误消息
Response Status code 306 is reserved, so can't be used.
  • 可能的原因:

如果后端服务器以 306 状态代码传递给 Apigee Edge。

306 状态代码是在旧版 HTTP 规范中定义的。根据当前的 HTTP 规范,此代码已预留,不应使用。

  • HTTP 规范
RFC 7231 第 6.3.5 节:预留 306

修复

由于状态代码 306 已预留,因此请确保 您的后端服务器在发送 对 Apigee Edge 做出响应

protocol.http.Response405WithoutAllowHeader

  • HTTP 状态代码:
502 Bad Gateway
  • 错误消息
Received 405 Response without Allow Header
  • 可能的原因:
后端服务器返回 405 Method Not Allowed 状态代码,而不使用“允许”标头。
  • HTTP 规范

RFC 7231 第 6.5.5 节:405 不允许的方法 RFC 7231 第 7.4.1 节:允许

<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

protocol.http.ResponseWithBody

  • HTTP 状态代码:
502 Bad Gateway
  • 错误消息
Received {status_code} Response with message body
  • 可能的原因:

如果从后端服务器到 Apigee Edge 的 HTTP 响应为 204 No Content205 Reset Content,但其中包含 响应正文和/或以下一个或多个标头:

  • Content-Length
  • Content-Encoding
  • Transfer-Encoding
  • HTTP 规范

RFC 7231 第 6.3.5 节:204 无内容RFC 7231 第 6.3.6 节:205 重置内容

<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

protocol.http.TooBigBody

  • HTTP 状态代码:
502 Bad Gateway
  • 错误消息
Body buffer overflow
  • 可能的原因:
如果客户端应用作为 发送到 Apigee Edge 的 HTTP 请求超出了 Apigee Edge 中允许的限额。
  • 此政策具有以下限制:
Apigee Edge 限额
<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

protocol.http.TooBigHeaders

  • HTTP 状态代码:
502 Bad Gateway
  • 错误消息
response headers size exceeding {limit}
  • 可能的原因:
如果由 HTTP 响应标头发送的所有响应标头的总大小 作为对 Apigee Edge 的 HTTP 响应的一部分的后端服务器大于 允许的上限
  • 此政策具有以下限制:
<ph type="x-smartling-placeholder"></ph> Apigee Edge 限额
<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

protocol.http.TooBigLine

  • HTTP 状态代码:
502 Bad Gateway
  • 错误消息
response line size exceeding {limit}
  • 可能的原因:
如果后端服务器发送的响应行大小为 对 Apigee Edge 的 HTTP 响应的某些部分超过了 Apigee 中允许的限额 Edge。
  • 此政策具有以下限制:
Apigee Edge 限额
<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

protocol.http.UnsupportedEncoding

  • HTTP 状态代码:
415 Unsupported Media
  • 错误消息
Unsupported Encoding "{encoding}"
  • 可能的原因:
如果 Content-Encoding 标头的 作为 HTTP 响应的一部分返回后端服务器。 非 <ph type="x-smartling-placeholder"></ph> 由 Apigee Edge 提供支持
  • HTTP 规范
RFC 7231 第 6.5.13 节:415 不支持的媒体类型
<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 使用指南

security.util.*

security.util.KeyAliasNotFound

  • HTTP 状态代码:
500 Internal Server Error
  • 错误消息
KeyAlias {KeyAlias_name} is not found in Keystore {Keystore_Name}
  • 可能的原因:

如果 TargetEndpoint 或 TargetServer 中引用的特定 KeyAlias 在特定密钥库中找不到,则会发生此错误。

修复

确保 TargetEndpoint 或 TargetServer 中指定的 KeyAlias 存在且属于特定密钥库。

security.util.TrustStoreWithNoCertificates

  • HTTP 状态代码:
500 Internal Server Error
  • 错误消息
TrustStore {truststore_name} has no certificates
  • 可能的原因:

如果 TargetEndpoint 或 TargetServer 中引用的特定信任库不包含任何证书,则会发生此错误。

修复

如果您要验证后端服务器的证书,并且希望在 TargetEndpoint 或 TargetServer 中使用信任库,请确保信任库包含后端服务器的有效证书。