flow.*
|
|
flow.APITimedOut |
|
504 Gateway Timeout |
|
API timed out |
|
發生以下狀況時會出現這個錯誤:
- 後端伺服器未在設定的逾時期限內回應
屬性:
api.timeout 特定 API Proxy。
- 政策需要大量時間才能進行大量運算
或是效能不佳
|
注意:本教戰手冊提供錯誤代碼疑難排解的操作說明
messaging.adaptors.http.flow.GatewayTimeout ;但您可以使用
用於排解 flow.APITimedOut 錯誤代碼的問題。
|
|
教戰手冊
|
flow.SharedFlowNotFound |
|
500 Internal Server Error |
|
Shared Flow {shared_flow_name} Not Found |
|
如果特定的共用流程,就會發生這個錯誤:
|
|
教戰手冊
|
messaging.adaptors.http.flow
|
|
messaging.adaptors.http.flow.ApplicationNotFound |
|
404 Not Found |
|
|
Unable to identify proxy for host: {virtual_host} and url: {pathsuffix} |
|
|
這項錯誤會在下列任一情況發生:
- 指定的 API Proxy 如下:
- 未設定為接受
虛擬主機
- 「未」設定為接受特定路徑上的要求
用於請求
- 未部署於您所在的特定環境中
嘗試發出 API 要求
- 未部署在一或多個訊息處理器上
- 您嘗試建立的具體環境
一或多個訊息處理器未載入 API 要求
|
教戰手冊 |
|
如有多個虛擬主機具有相同的主機,也可能會發生這個錯誤
別名和通訊埠號碼 |
教戰手冊 |
|
|
messaging.adaptors.http.flow.DecompressionFailureAtRequest |
|
400 Bad Request |
|
Decompression failure at request |
|
只有在下列情況下才會發生這個錯誤:
- HTTP 要求標頭中指定的編碼
Content-Encoding 有效,
Apigee Edge 支援,
但是
- 用戶端在 HTTP 中傳送的酬載格式
要求與
Content-Encoding 個標題
|
|
教戰手冊
|
messaging.adaptors.http.flow.DecompressionFailureAtResponse |
|
502 Bad Gateway |
|
Decompression failure at response |
|
只有在下列情況下才會發生這個錯誤:
- 在後端/目標伺服器的
HTTP 回應標頭
Content-Encoding 有效,
Apigee Edge 支援,
但是
- 後端/目標伺服器傳送做為
部分 HTTP 回應與
Content-Encoding 個標題
|
|
教戰手冊
|
messaging.adaptors.http.flow.ErrorResponseCode |
|
500 |
教戰手冊
影片
|
|
錯誤訊息和格式可能因後端伺服器而異
。 |
|
|
如果後端伺服器傳回狀態,就會發生這個錯誤
程式碼 500 傳送至 Apigee Edge。 |
|
|
503 |
教戰手冊
影片
|
|
錯誤訊息和格式可能因後端伺服器而異
。 |
|
|
如果後端伺服器傳回狀態,就會發生這個錯誤
程式碼 503 傳送至 Apigee Edge。 |
|
|
504 |
教戰手冊
|
|
錯誤訊息和格式可能因後端伺服器而異
。 |
|
|
如果後端伺服器傳回狀態,就會發生這個錯誤
程式碼 504 傳送至 Apigee Edge。 |
|
注意:錯誤代碼
未傳回 messaging.adaptors.http.flow.ErrorResponseCode
做為傳送至用戶端應用程式的錯誤訊息的一部分。這是
因為每當後端伺服器發生這個錯誤代碼時,就會由 Apigee Edge 設定
傳回錯誤和任何一個 4XX 或 5XX
狀態碼。您可以在 API Monitoring、NGINX 存取記錄檔中查看這個錯誤代碼
或數據分析資料庫
|
|
|
messaging.adaptors.http.flow.GatewayTimeout |
|
504 Gateway Timeout |
|
Gateway Timeout |
|
如果後端伺服器沒有回應,就會發生這個錯誤
傳送給 Apigee 邊緣訊息處理器
訊息處理器設定的 I/O 逾時期限。 |
|
教戰手冊 |
messaging.adaptors.http.flow.LengthRequired |
|
411 Length Required |
|
'Content-Length' is missing |
|
如果 Content-Length 標頭並未傳遞
作為 HTTP POST 和 PUT 的一部分
將要求傳送至 Apigee Edge 注意:要求失敗,且
無法在追蹤工具中擷取錯誤,因為訊息處理器會執行
我們很快就會開始驗證這項驗證,接著才會處理要求
在 API Proxy 中執行任何政策。 |
|
RFC 第 3.3.2 節:Content-Length |
|
修正
如要解決這項錯誤,請按照下列步驟操作:
-
確保用戶端應用程式一律傳遞標頭
Content-Length 做為 HTTP POST 的一部分
已將 PUT 項要求傳送至 Apigee Edge。例如:
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 |
|
|
此錯誤會在以下任一情況發生時發生
如果您使用
Apigee Edge 中的 TargetServer:
- 後端伺服器主機的 DNS 解析不正確
產生的 IP 位址無效,導致
發生連線錯誤。
- 連線逾時錯誤,原因如下:
- 後端伺服器設有防火牆限制
Apigee Edge 無法連至後端伺服器。
- Apigee Edge 之間的網路連線問題
和後端伺服器
- TargetServer 中指定的主機不正確,或
包含不需要的字元 (例如空格)。
|
教戰手冊
影片
|
|
如果設定的健康狀態檢查是監控健康狀態,也可能會發生這個錯誤
導致目標伺服器的檢查作業失敗 |
教戰手冊
影片
|
|
|
messaging.adaptors.http.flow.RequestTimeOut |
|
|
messaging.adaptors.http.flow.ServiceUnavailable |
|
503 Service Unavailable |
|
|
The Service is temporarily unavailable |
|
|
這項錯誤會在下列任一情況發生:
- 後端伺服器的 DNS 解析不正確
由自訂授權伺服器代管的主機導致 IP 位址無效
以及連線錯誤。
- 連線逾時錯誤,原因如下:
- 後端伺服器設有防火牆限制
Apigee Edge 無法連至後端伺服器。
- Apigee Edge 與
後端伺服器
- 目標端點中指定的目標伺服器主機為
不正確或包含不需要的字元 (例如空格)
|
教戰手冊
DNS 故障:
影片
網路連線:
影片
|
|
當後端伺服器太早關閉
連線期間,訊息處理程式仍將要求裝載傳送至
後端伺服器 |
教戰手冊
|
|
|
messaging.adaptors.http.flow.SslHandshakeFailed |
|
503 Service Unavailable |
|
SSL Handshake failed {error_message} |
|
這個錯誤發生於 Apigee Edge 與
如果符合下列條件,則訊息處理器與後端伺服器:
- Apigee Edge 訊息處理器的信任儲存庫:
- 含有與後端伺服器不符的憑證鏈結
完整憑證鏈結
或
- 不含後端伺服器的完整憑證鏈結
- 後端伺服器提供的憑證鏈結:
- 包含與
在目標端點中指定的主機名稱
或
- 含有錯誤/不完整的憑證鏈結
|
|
教戰手冊
影片
|
messaging.adaptors.http.flow.UnexpectedEOFAtTarget |
|
502 Bad Gateway |
|
Unexpected EOF at target |
|
這項錯誤會在下列任一情況發生:
-
TargetServer未正確設定,因此無法支援 TLS/SSL 連線
。
- 後端伺服器可能會突然關閉連線
而 Apigee Edge 正在等待後端伺服器回應。
- 在 Apigee 上保留不正確的存留時間設定,以及
後端伺服器
|
|
教戰手冊 |
|
messaging.runtime.*
|
|
messaging.runtime.RouteFailed |
|
500 Internal Server Error |
|
Unable to route the message to a TargetEndpoint |
|
如果 Apigee Edge 無法將要求轉送至任何
目標端點的原因是:
- 沒有符合以下規則的轉送規則 (
<RouteRule> ) 條件
與 Proxy 中的要求相符
且
- ProxyEndpoint 中未定義任何預設轉送規則
(即
<RouteRule> (沒有任何條件)
|
|
修正
如要解決這項錯誤,請按照下列說明操作:
- 檢查並修改 ProxyEndpoint 中定義的轉送規則規則,確保
沒有至少一個與要求相符的轉送規則條件。
- 建議您定義沒有條件的「預設」轉送規則
如果有多項 RouteRules 流量
- 確認預設轉送規則一律是在
條件式路徑是系統由上而下評估 ProxyEndpoint 中的規則。
如要進一步瞭解如何定義 <RouteRule> 條件,
ProxyEndpoint,請參閱
條件目標。
|
messaging.runtime.SenseRaiseFault |
|
403 Forbidden |
|
Sense Fault |
|
如果 API 要求是來自特定用戶端 IP 位址,就會發生這個錯誤
Apigee Sense 規則中遭到封鎖。 |
|
|
protocol.http.* - Caused due to bad request
|
|
|
|
500 Internal Server Error |
|
Bad Form Data |
|
只有在符合下列所有條件時,才會發生這個錯誤:
- 用戶端向 Apigee Edge 傳送的 HTTP 要求
包含:
Content-Type: application/x-www-form-urlencoded ,
和
- 包含百分比符號 (%) 或百分比符號的表單資料
符號 (%) 後接不允許的無效十六進位字元
根據
表單 - 第 17.13.4.1 節。
- Apigee Edge 中的 API Proxy 會讀取特定表單
參數,內含不允許使用
在要求流程中 ExtractVariables 或 AssignMessage 政策。
|
|
教戰手冊 |
|
|
400 Bad Request |
|
Duplicate Header "{header_name}" |
|
如果特定的 HTTP 標頭不允許重複,就會發生這個錯誤
會在 Apigee Edge 中重複出現,但其中含有相同或不同的值
用戶端應用程式向 Apigee Edge 發出的 HTTP 要求。
|
|
RFC 7230,第 3.2.2 節:欄位順序 |
|
教戰手冊
|
|
|
400 Bad Request |
|
Header name cannot be empty |
|
如果標頭名稱是做為 HTTP 元素的一部分傳送,就會發生此錯誤
向 Apigee Edge 發出的要求沒有任何內容。 |
|
RFC 7230,第 3.2 節:標頭欄位 |
|
|
|
|
|
|
|
400 Bad Request |
|
Header {header_name} contains invalid character {character} |
|
如果 HTTP 要求中傳送標頭名稱,就會發生此錯誤
用戶端應用程式傳送給 Apigee Edge 包含無效字元,例如
等於 (=)、半形逗號 (,)、分號 (;)、Tab 鍵、CRLF 和換行字元。
|
|
RFC 7230,第 3.2 節:標頭欄位
和
RFC 7230,3.2.6 節:欄位值元件 |
|
|
protocol.http.InvalidPath |
|
|
protocol.http.TooBigBody |
|
413 Request Entity Too Large |
|
Body buffer overflow |
|
如果用戶端應用程式傳送酬載大小,
傳送至 Apigee Edge 的 HTTP 要求大於 Apigee Edge 的允許上限。
|
|
Apigee Edge 限制 |
|
教戰手冊 |
|
|
教戰手冊 |
protocol.http.TooBigLine |
|
414 Request-URI Too Long |
|
request line size exceeding {limit} |
|
如果用戶端應用程式傳送的要求行大小,就會發生這個錯誤
屬於 Apigee Edge 的 HTTP 要求超過
Apigee Edge。
|
|
Apigee Edge 限制 |
|
教戰手冊 |
protocol.http.UnsupportedEncoding |
|
教戰手冊 |
protocol.http.* - Caused by target
|
|
protocol.http.BadPath |
|
教戰手冊 |
|
|
502 Bad Gateway |
|
Duplicate Header "{header_name}" |
|
如果特定的 HTTP 標頭不允許重複,就會發生這個錯誤
會在 Apigee Edge 中多次出現,但實際上
會將後端伺服器傳送至 Apigee Edge 的 HTTP 回應
|
|
RFC 7230,第 3.2.2 節:欄位順序 |
|
教戰手冊
|
|
|
502 Bad Gateway |
|
Header name cannot be empty |
|
如果後端伺服器在 HTTP 中傳送標頭名稱,就會發生這個錯誤
Apigee Edge 的回應沒有任何內容。
|
|
RFC 7230,第 3.2 節:標頭欄位 |
|
|
protocol.http.EmptyPath |
|
教戰手冊 |
|
|
|
|
|
|
protocol.http.ProxyTunnelCreationFailed |
|
503 Service Unavailable |
|
Proxy refused to create tunnel with response status {status code} |
|
在 Apigee Edge 與
經由 Proxy 伺服器存取後端伺服器,原因包括防火牆、ACL (存取控制清單)、DNS
以及後端伺服器可用性等問題
注意:錯誤訊息中的狀態碼
(faultstring ) 提供問題的概略原因。
|
|
教戰手冊
|
protocol.http.Response306Reserved |
|
502 Bad Gateway |
|
Response Status code 306 is reserved, so can't be used. |
|
如果後端伺服器傳回
306 狀態碼變更為 Apigee Edge。
306 狀態碼是在先前的
HTTP 規格根據目前的 HTTP 規格,這個程式碼會
且不得使用。
|
|
RFC 7231,6.3.5 節:306 保留 |
|
修正
由於狀態碼 306 已保留,請確定
您的後端伺服器不會在傳送
回應 Apigee Edge
|
|
|
教戰手冊 |
protocol.http.ResponseWithBody |
|
教戰手冊 |
protocol.http.TooBigBody |
|
502 Bad Gateway |
|
Body buffer overflow |
|
如果用戶端應用程式傳送酬載大小,
傳送至 Apigee Edge 的 HTTP 要求大於 Apigee Edge 的允許上限。
|
|
Apigee Edge 限制 |
|
教戰手冊 |
|
|
502 Bad Gateway |
|
response headers size exceeding {limit} |
|
如果用戶端送出的所有回應標頭總大小,就會發生這個錯誤。
做為向 Apigee Edge 發出 HTTP 回應的一部分,後端伺服器大於
可以在 Apigee Edge 中使用上限。
|
|
Apigee Edge 限制 |
|
教戰手冊 |
protocol.http.TooBigLine |
|
502 Bad Gateway |
|
response line size exceeding {limit} |
|
如果後端伺服器以
傳送至 Apigee Edge 的 HTTP 回應部分大於 Apigee 中允許的上限
邊緣
|
|
Apigee Edge 限制 |
|
教戰手冊 |
protocol.http.UnsupportedEncoding |
|
教戰手冊 |
security.util.*
|
|
security.util.KeyAliasNotFound |
|
500 Internal Server Error |
|
KeyAlias {KeyAlias_name} is not found in
Keystore {Keystore_Name} |
|
如果 TargetEndpoint 中參照的特定 KeyAlias ,就會發生這個錯誤
或是在特定 KeyStore 中找不到 TargetServer。
|
|
修正
確保 TargetEndpoint 或 TargetServer 中指定的 KeyAlias
並且是特定 KeyStore 的一部分。
|
security.util.TrustStoreWithNoCertificates |
|
500 Internal Server Error |
|
TrustStore {truststore_name} has no certificates |
|
如果 TargetEndpoint 或
TargetServer 不含任何憑證。
|
|
修正
如果您要驗證後端伺服器的憑證
想在 TargetEndpoint 或 TargetServer 中使用 Truststore,然後
確保 Truststore 包含後端伺服器的有效憑證。
|