| flow.*
 | 
    
      |  | 
    
      | 
        flow.APITimedOut | 
            
            
              
                |  | 504 Gateway Timeout |  
                |  | API timed out |  
                |  | 發生這個錯誤的可能原因如下: 
                    後端伺服器未在屬性 
                        api.timeout為特定 API Proxy 設定的逾時期間內回覆。由於需要大量運算作業、負載過高或效能不佳,導致政策執行時間過長。 |  
                |  |  |  | 
    
      | 
        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 支援該編碼,BUT 用戶端在 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 支援該編碼。BUT 後端/目標伺服器傳送的 HTTP 回應負載格式,與 Content-Encoding標頭中指定的編碼格式不符 |  |  | 
    
      | 
        messaging.adaptors.http.flow.ErrorResponseCode | 
            
            
              
                |  | 500 | 
                   
                   |  
                |  | 錯誤訊息和格式可能因後端伺服器實作方式而異。 |  |  
                |  | 如果後端伺服器傳回狀態碼 500給 Apigee,就會發生這個錯誤。 |  |  
                |  | 503 |  |  
                |  | 錯誤訊息和格式可能因後端伺服器實作方式而異。 |  |  
                |  | 如果後端伺服器傳回狀態碼 503給 Apigee,就會發生這個錯誤。 |  |  
                |  | 504 |  |  
                |  | 錯誤訊息和格式可能因後端伺服器實作方式而異。 |  |  
                |  | 如果後端伺服器傳回狀態碼 504給 Apigee,就會發生這個錯誤。 |  |  
                | 注意:錯誤代碼 messaging.adaptors.http.flow.ErrorResponseCode不會隨傳送至用戶端應用程式的錯誤訊息一併傳回。這是因為每當後端伺服器傳回錯誤和任何4XX或5XX狀態碼時,Apigee 都會設定這個錯誤代碼。您可以在 API 監控或分析資料庫中查看這個錯誤代碼。 |  |  | 
    
      | 
        messaging.adaptors.http.flow.GatewayTimeout | 
            
            
              
                |  | 504 Gateway Timeout |  
                |  | Gateway Timeout |  
                |  | TARGET_READ_TIMEOUT |  
                |  | 如果後端伺服器未在訊息處理器上設定的 I/O 逾時期間內,回覆 Apigee 訊息處理器,就會發生這項錯誤。 |  |  | 
    
      | 
        messaging.adaptors.http.flow.InternalServerError | 
            
            
              
                |  | 500 Internal Server Error |  
                |  | Internal server error at backend |  
                |  | SERVER_ERROR |  
                |  | 發生這個錯誤的原因如下: 
                    後端應用程式在處理 Apigee 的要求時,發生未處理的例外狀況或錯誤。這可能是因為應用程式程式碼中的邏輯有誤、輸入內容超出預期,或是發生其他執行階段問題。後端伺服器可能無法連線至資料庫,或是資料庫查詢可能失敗。這可能是因為網路連線、資料庫憑證有誤、資料庫伺服器停機,或是資料庫結構定義或資料有問題。 如果後端伺服器依賴其他內部或外部服務 (例如 API、訊息佇列或快取系統),其中一項依附元件發生故障,可能會導致伺服器向 Apigee 回傳 500錯誤。後端可能無法與依附服務通訊,或可能收到依附服務傳回的錯誤回應。後端伺服器可能因流量過高、記憶體 (RAM) 不足、CPU 使用率過高或磁碟空間不足而過載。如果伺服器資源不足,就無法處理要求,並會傳回 500錯誤。 後端伺服器設定不正確,可能會在處理要求時導致未預期的錯誤。包括伺服器設定、應用程式設定或部署設定的問題。後端應用程式程式碼可能存在基本錯誤,而 Apigee 的特定要求會觸發這項錯誤。這些錯誤在正常情況下可能不會顯現,但會因特定要求模式或資料而暴露出來。 |  |  | 
    
      | 
        messaging.adaptors.http.flow.LengthRequired | 
            
            
              
                |  | 411 Length Required |  
                |  | 'Content-Length' is missing |  
                |  | CLIENT_REQUEST_CONTENT_LENGTH_REQUIRED |  
                |  | 如果用戶端應用程式未將 Content-Length標頭做為傳送至 Apigee 的 HTTPPOST和PUT要求的一部分傳遞,就會發生這項錯誤。 注意:由於訊息處理器會在極早階段執行這項驗證,遠早於處理要求和在 API Proxy 中執行任何政策,因此 Trace 工具無法擷取因這個錯誤而失敗的要求。 |  
                |  | RFC 第 3.3.2 節:Content-Length |  | 
                    
                      修正如要解決這項錯誤,請按照下列步驟操作: 
                          
                            請確保用戶端應用程式一律將標頭 Content-Length做為傳送至 Apigee 的 HTTPPOST和PUT要求的一部分。例如: 
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 Message Processor 在 Message Processor 元件上設定的 I/O 超時期間內,未收到來自用戶端應用程式的要求酬載,就會發生這個錯誤。 |  | 
            
              修正確認用戶端應用程式在 Apigee 的 Message Processor 元件上設定的 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.adaptors.http.flow.BadGateway | 
            
            
              
                |  | 502 Bad Gateway |  
                |  | Bad Gateway |  
                |  | 如果目標伺服器傳送格式錯誤的 HTTP 回應給 Apigee,就會發生這項錯誤。 |  |  | 
      
        |  | 
    
      | messaging.runtime.*
 | 
    
      |  | 
    
      | 
        messaging.runtime.RouteFailed | 
            
            
              
                |  | 500 Internal Server Error |  
                |  | Unable to route the message to a TargetEndpoint |  
                |  | 如果 Apigee 無法將要求路由至任何 TargetEndpoint,就會發生這個錯誤,原因如下: 
                    Proxy 中沒有符合要求的路徑規則 (<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 Proxy 會在要求流程中,使用 ExtractVariables 或 AssignMessage 政策,讀取含有任何不允許字元的特定表單參數。 |  |  | 
    
      |  | 
            
            
              
                |  | 400 Bad Request |  
                |  | Duplicate Header "{header_name}" |  
                |  | 如果用戶端應用程式傳送至 Apigee 的 HTTP 要求中,出現 Apigee 不允許重複的特定 HTTP 標頭,且該標頭的值相同或不同,就會發生這項錯誤。 |  
                |  | RFC 7230 的 3.2.2 節:欄位順序 |  |  | 
    
      |  | 
            
            
              
                |  | 400 Bad Request |  
                |  | Header name cannot be empty |  
                |  | 如果用戶端應用程式傳送至 Apigee 的 HTTP 要求中,標頭名稱為空白,就會發生這項錯誤。 |  
                  |  | RFC 7230 的 3.2 節:標頭欄位 |  |  | 
    
      |  |  |  | 
    
      |  |  |  | 
    
      | 
        protocol.http.InvalidPath |  |  | 
    
      | 
        protocol.http.MessageReadError | 
            
            
              
                |  | 502 Bad Gateway |  
                |  | Unexpected I/O after message headers have been read. |  
                |  | MP 在非預期情況下收到管道上的 I/O 時,就會發生這種罕見錯誤。MP 正在讀取要求,已讀取所有標頭,並設定為讀取要求酬載。然後遇到似乎是相同標頭的 I/O 事件。 |  | 
             
              修正
                找出記錄訊息,進一步瞭解發生了什麼事。
                 logger.atSevere().log(
    "Unexpected I/O after message headers have been read. Channel diagnostics=%s."
        + " HeartBeat=%s",
    input.client().getDiagnostic(), message.getHeaders().isHeartBeat());
                 
              
             | 
    
      | 
        protocol.http.NoResolvedHost | 
            
            
              
                |  | 503 Service Unavailable |  
                |  | Unable to resolve host {hostname}
                  
 其中:{hostname}是動態值,其值會根據提供的主機名稱而異。 |  
                |  | TARGET_CONNECT_HOST_NOT_REACHABLE |  
                |  | 如果指定的目標伺服器主機不正確或含有不必要的字元 (例如空格),就會發生這個錯誤。 |  |  | 
    
      | 
        protocol.http.TooBigBody | 
            
            
              
                |  | 413 Request Entity Too Large |  
                |  | Body buffer overflow |  
                |  | 如果用戶端應用程式傳送至 Apigee 的 HTTP 要求酬載大小,超過 Apigee 允許的上限,就會發生這個錯誤。 |  
                |  | Apigee 限制 |  |  | 
    
      |  |  |  | 
    
      | 
        protocol.http.TooBigLine | 
            
            
              
                |  | 414 Request-URI Too Long |  
                |  | request line size exceeding {limit} |  
                |  | 如果用戶端應用程式傳送至 Apigee 的 HTTP 要求中,要求行的長度超過 Apigee 允許的上限,就會發生這個錯誤。 |  
                |  | Apigee 限制 |  |  | 
    
      | 
        protocol.http.UnsupportedEncoding | 
            
            
              
                |  | 415 Unsupported Media |  
                |  | Unsupported Encoding "{encoding}" |  
                |  | 如果用戶端傳送的 Content-Encoding標頭 (屬於 HTTP 回應的一部分) 包含 Apigee 不支援的編碼/酬載格式,就會發生這個錯誤。 |  
                |  | RFC 7231 第 6.5.13 節:415 不支援的媒體類型 |  |  | 
    
      | 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 |  
                |  | 如果後端伺服器傳送給 Apigee 的 HTTP 回應中含有空白標頭名稱,就會發生這項錯誤。 |  
                |  | 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 |  
                |  | 如果用戶端應用程式傳送至 Apigee 的 HTTP 要求酬載大小,超過 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} |  
                |  | 如果後端伺服器傳送給 Apigee 的 HTTP 回應中,回應行的長度超過 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 未在特定 Keystore 中找到,就會發生這個錯誤。 |  | 
            
              修正確認 TargetEndpoint 或 TargetServer 中指定的 KeyAlias 存在,且屬於特定 Keystore。 
              
             | 
    
      | 
        security.util.TrustStoreWithNoCertificates | 
            
            
              
                |  | 500 Internal Server Error |  
                |  | TrustStore {truststore_name} has no certificates |  
                |  | 如果 TargetEndpoint 或 TargetServer 參照的特定 Truststore 不含任何憑證,就會發生這個錯誤。 |  | 
             
               修正如要驗證後端伺服器的憑證,並在 TargetEndpoint 或 TargetServer 中使用 Truststore,請確保 Truststore 包含後端伺服器的有效憑證。 
              
             |