flow.*
flow.APITimedOut
504 Gateway Timeout
API timed out
在以下情况下,会发生此错误:
后端服务器在特定 API 代理的属性 api.timeout
配置的超时期限内不会做出响应。
由于计算密集型操作、高负载或性能不佳,政策需要很长时间。
flow.SharedFlowNotFound
500 Internal Server Error
Shared Flow {shared_flow_name} Not Found
如果特定的共享流存在以下情况,则会出现此错误:
messaging.adaptors.http.flow
messaging.adaptors.http.flow.DecompressionFailureAtRequest
400 Bad Request
Decompression failure at request
CLIENT_READ_CONTENT_NOT_IN_GZIP_FORMAT
仅在以下情况下,会发生此错误:
HTTP 请求标头 Content-Encoding
中指定的编码有效且受 Apigee 支持。
但是
客户端作为 HTTP 请求的一部分发送的载荷格式与 Content-Encoding
标头中指定的编码格式不匹配
messaging.adaptors.http.flow.DecompressionFailureAtResponse
502 Bad Gateway
Decompression failure at response
TARGET_READ_CONTENT_NOT_IN_GZIP_FORMAT
TARGET_READ_INCORRECT_HEADER_CHECK
仅在以下情况下,会发生此错误:
在后端/目标服务器的 HTTP 响应标头 Content-Encoding
中指定的编码有效且受 Apigee 支持。
但是
后端/目标服务器作为 HTTP 响应的一部分发送的载荷格式与 Content-Encoding
标头中指定的编码格式不匹配
注意: 在某些情况下,将 deflate 压缩算法与 Content-Encoding: deflate
标头结合使用时,Apigee 仍可能会返回 TARGET_READ_INCORRECT_HEADER_CHECK
错误。当后端的 deflate 压缩算法实现不符合 RFC 1950 时,可能会发生这种情况。如需解决此问题,您可以将目标服务器的压缩算法从 deflate 更改为 gzip,同时使用 HTTP 响应中的 Content-Encoding: gzip
标头作为解决方法。
messaging.adaptors.http.flow.ErrorResponseCode
500
错误消息和格式可能因后端服务器实现而异。
如果后端服务器向 Apigee 返回状态代码 500
,则会出现此错误。
503
错误消息和格式可能因后端服务器实现而异。
如果后端服务器向 Apigee 返回状态代码 503
,则会出现此错误。
504
错误消息和格式可能因后端服务器实现而异。
如果后端服务器向 Apigee 返回状态代码 504
,则会出现此错误。
注意 :在发送到客户端应用的错误消息中,系统不会返回错误代码 messaging.adaptors.http.flow.ErrorResponseCode
。这是因为每当后端服务器 响应错误以及任何 4XX
或 5XX
状态代码时,Apigee 都会设置此错误代码。您可以在 API Monitoring 或分析数据库中查看此错误代码。
messaging.adaptors.http.flow.GatewayTimeout
504 Gateway Timeout
Gateway Timeout
TARGET_READ_TIMEOUT
如果后端服务器未在消息处理器上配置的 I/O 超时期限内响应 Apigee 消息处理器,则会出现此错误。
messaging.adaptors.http.flow.LengthRequired
411 Length Required
'Content-Length' is missing
CLIENT_REQUEST_CONTENT_LENGTH_REQUIRED
如果客户端应用未将 Content-Length
标头作为发送到 Apigee 的 HTTP POST
和 PUT
请求的一部分进行传递,则会发生此错误。
注意: 无法在跟踪工具中捕获因此错误而失败的请求,因为消息处理器在非常早的阶段(远早于处理请求并在 API 代理中执行任何政策之前)执行此验证。
RFC 第 3.3.2 节:内容长度
修复
修复
要解决此错误,请执行以下步骤:
确保客户端应用始终将标头 Content-Length
作为 HTTP POST
和 PUT
请求的一部分传递给 Apigee。例如:
curl -X POST https://HOSTALIAS /PATH -d '{"name": "abc"}' -H "Content-Length: 15"
即使您使用 POST
和 PUT
请求传递空载荷,请确保传递标头 Content-Length: 0
。例如:
curl -X POST https://HOSTALIAS /PATH -H "Content-Length: 0"
关闭
messaging.adaptors.http.flow.NoActiveTargets
503 Service Unavailable
The Service is temporarily unavailable
TARGET_HEALTHCHECK_CONNECT_TIMEOUT
TARGET_HEALTHCHECK_CONNECTION_REFUSED
TARGET_HEALTHCHECK_HTTPS_REQUEST_OVER_HTTP
TARGET_HEALTHCHECK_UNEXPECTED_EOF
如果您在 Apigee 中使用
TargetServer ,则在以下情况下会出现此错误:
自定义授权服务器对后端服务器主机的 DNS 解析不正确,导致 IP 地址错误,进而导致连接错误。
连接超时错误原因如下:
后端服务器上的防火墙限制会阻止 Apigee 连接到后端服务器。
Apigee 和后端服务器之间的网络连接问题。
TargetServer 中指定的主机不正确或包含不需要的字符(例如空格)。
如果配置为监控目标服务器的健康检查的健康检查失败,也可能会发生此错误。
messaging.adaptors.http.flow.RequestTimeOut
408 Request Timeout
Request timed out
CLIENT_READ_TIMEOUT
如果 Apigee 消息处理器在消息处理器组件上配置的 I/O 超时期限内没有从客户端应用接收到请求载荷,则会出现此错误。
修复
修复
确保客户端应用在 Apigee 消息处理器组件上配置的 I/O 超时期限内发送请求载荷。
关闭
messaging.adaptors.http.flow.ServiceUnavailable
503 Service Unavailable
The Service is temporarily unavailable
TARGET_CONNECT_TIMEOUT
TARGET_WRITE_BROKEN_PIPE
TARGET_WRITE_CONNECTION_RESET_BY_PEER
TARGET_CONNECT_CONNECTION_REFUSED
在以下情况下,会发生此错误:
自定义授权服务器对后端服务器主机的 DNS 解析不正确,导致 IP 地址错误,进而导致连接错误。
连接超时错误原因如下:后端服务器上的防火墙限制会阻止 Apigee 连接到后端服务器。
Apigee 和后端服务器之间的网络连接问题。
目标端点中指定的目标服务器主机不正确或包含不需要的字符(例如空格)。
如果后端服务器在请求处理器仍在向后端服务器发送请求载荷时过早关闭连接,也可能会出现此错误。
messaging.adaptors.http.flow.SslHandshakeFailed
503 Service Unavailable
SSL Handshake failed {error_message}
在以下情况下,在 Apigee 的消息处理器和后端服务器之间的 SSL 握手过程中会出现此错误:
Apigee 的消息处理器的信任库:包含与后端服务器的完整证书链不匹配的证书链
或
不包含后端服务器的完整证书链
后端服务器提供的证书链:包含与目标端点中指定的主机名不匹配的完全限定域名 (FQDN)
或
包含的证书链不正确/不完整
后端服务器拒绝 Apigee 使用的 TLS 版本。
例如,如果后端服务器仅接受 TLS 版本 1.3,但 Apigee 端的目标服务器在其 TLS Protocol
字段中设置了 TLS 版本 1.2(或者根本未设置 TLS 版本,在这种情况下,Apigee 目前不会 默认使用 TLS 版本 1.3),则连接会因协议版本不匹配而失败。
messaging.adaptors.http.flow.UnexpectedEOFAtTarget
502 Bad Gateway
Unexpected EOF at target
TARGET_READ_UNEXPECTED_EOF
在以下情况下,会发生此错误:
TargetServer 未正确配置为支持 Apigee 中的 TLS/SSL 连接。
当 Apigee 等待后端服务器的响应时,后端服务器可能会突然关闭连接。
Apigee 和后端服务器上的 keep-alive 超时配置不正确。
messaging.runtime.*
messaging.runtime.RouteFailed
500 Internal Server Error
Unable to route the message to a TargetEndpoint
如果 Apigee 无法将请求路由到任何 TargetEndpoint,则会发生此错误,原因如下:
代理中没有与请求匹配的路由规则 (<RouteRule>
) 条件
且
ProxyEndpoint 中没有定义默认路由规则(即没有任何条件的 <RouteRule>
)
修复
修复
要解决此错误,请按照以下说明操作:
查看 ProxyEndpoint 中定义的路由规则并进行修改,以确保至少有一个路由规则条件与您的请求相匹配。
如果存在多个 RouteRule,则建议您定义一个不带任何条件的默认 路由规则。
确保默认路由规则始终在条件路由列表中最后定义,因为规则是在 ProxyEndpoint 中自上而下进行评估的。
如需详细了解如何在 ProxyEndpoint 中定义 <RouteRule>
条件,请参阅条件目标 。
关闭
protocol.http.* - Caused due to bad request
500 Internal Server Error
Bad Form Data
当且仅当满足以下所有条件时,会出现此错误:
客户端向 Apigee 发送的 HTTP 请求包含:
Content-Type: application/x-www-form-urlencoded
和
带有百分号 (%) 或百分号 (%) 后跟无效的十六进制字符的表单数据,这些字符根据表单 - 第 17.13.4.1 节 是不允许的。
Apigee 中的 API 代理会读取特定表单参数,其中包含请求流中使用 ExtractVariables 或 AssignMessage 政策不允许使用的任何字符。
400 Bad Request
Duplicate Header "{header_name}"
如果特定 HTTP 标头不允许在 Apigee 中包含重复项,并且它作为客户端应用发送到 Apigee 的 HTTP 请求的一部分出现相同或不同的值,则会出现此错误。
RFC 7230 第 3.2.2 节:字段顺序
400 Bad Request
Header name cannot be empty
如果客户端应用作为 HTTP 请求的一部分发送到 Apigee 的标头名称为空,则会发生此错误。
RFC 7230 第 3.2 节:标头字段
修复
修复
修复
protocol.http.NoResolvedHost
503 Service Unavailable
Unable to resolve host {hostname}
其中:{hostname}
是动态的,其值将根据提供的主机名而变化。
TARGET_CONNECT_HOST_NOT_REACHABLE
如果指定的目标服务器主机不正确或包含不需要的字符(例如空格),则会发生此错误。
protocol.http.InvalidPath
修复
protocol.http.TooBigBody
413 Request Entity Too Large
Body buffer overflow
如果客户端应用作为 HTTP 请求的一部分发送到 Apigee 的载荷大小大于 Apigee 中允许的限制,则会发生此错误。
Apigee 限制
protocol.http.TooBigLine
414 Request-URI Too Long
request line size exceeding {limit}
如果客户端应用作为 HTTP 请求的一部分发送到 Apigee 的请求行大小大于 Apigee 中允许的限制,则会发生此错误。
Apigee 限制
protocol.http.UnsupportedEncoding
protocol.http.* - Caused by target
protocol.http.BadPath
502 Bad Gateway
Duplicate Header "{header_name}"
如果 Apigee 中不允许重复的特定 HTTP 标头在后端服务器发送到 Apigee 的 HTTP 响应中多次出现且具有相同或不同的值,则会发生此错误。
RFC 7230 第 3.2.2 节:字段顺序
502 Bad Gateway
Header name cannot be empty
如果后端服务器作为 HTTP 响应的一部分发送到 Apigee 的标头名称为空,则会发生此错误。
RFC 7230 第 3.2 节:标头字段
修复
protocol.http.EmptyPath
修复
修复
protocol.http.ProxyTunnelCreationFailed
503 Service Unavailable
Proxy refused to create tunnel with response status {status code}
由于防火墙、ACL(访问控制列表)、DNS 问题、后端服务器的可用性等,代理服务器在 Apigee 和后端服务器之间创建隧道时,会发生此错误。
注意 :错误消息 (faultstring
) 中的状态代码 提供了导致此问题的简要原因。
protocol.http.Response306Reserved
502 Bad Gateway
Response Status code 306 is reserved, so can't be used.
如果后端服务器将 306
状态代码返回给 Apigee,则会发生此错误。
306
状态代码是在旧版 HTTP 规范中定义的。根据当前的 HTTP 规范,此代码已预留,不应使用。
RFC 7231 第 6.3.5 节:预留 306
修复
修复
由于状态代码 306
已被预留,因此请确保您的后端服务器在向 Apigee 发送响应时不使用此状态代码。
关闭
protocol.http.ResponseWithBody
protocol.http.TooBigBody
502 Bad Gateway
Body buffer overflow
如果客户端应用作为 HTTP 请求的一部分发送到 Apigee 的载荷大小大于 Apigee 中允许的限制,则会发生此错误。
Apigee 限制
502 Bad Gateway
response headers size exceeding {limit}
如果后端服务器作为对 Apigee 的 HTTP 响应的一部分发送的所有响应标头的总大小大于 Apigee 中允许的限制,则会发生此错误。
Apigee 限制
protocol.http.TooBigLine
502 Bad Gateway
response line size exceeding {limit}
如果后端服务器作为 HTTP 响应的一部分发送到 Apigee 的响应行大小大于 Apigee Edge 中允许的限制,则会发生此错误。
Apigee 限制
protocol.http.UnsupportedEncoding
415 Unsupported Media
Unsupported Encoding "{encoding}"
如果后端服务器作为 HTTP 响应的一部分发送的 Content-Encoding
标头包含 Apigee 不支持的编码/载荷格式,则会发生此错误。
RFC 7231 第 6.5.13 节:415 不支持的媒体类型
security.util.*
security.util.KeyAliasNotFound
500 Internal Server Error
KeyAlias {KeyAlias_name} is not found in
Keystore {Keystore_Name}
如果 TargetEndpoint 或 TargetServer 中引用的特定 KeyAlias 在特定密钥库中找不到,则会发生此错误。
修复
修复
确保 TargetEndpoint 或 TargetServer 中指定的 KeyAlias 存在且属于特定密钥库。
关闭
security.util.TrustStoreWithNoCertificates
500 Internal Server Error
TrustStore {truststore_name} has no certificates
如果 TargetEndpoint 或 TargetServer 中引用的特定信任库不包含任何证书,则会发生此错误。
修复
修复
如果您要验证后端服务器的证书,并且希望在 TargetEndpoint 或 TargetServer 中使用信任库,请确保信任库包含后端服务器的有效证书。
关闭