您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件。 資訊
AccessControl 政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 | 修正 |
---|---|---|---|
accesscontrol.IPDeniedAccess |
403 | 用戶端 IP 位址或 API 要求中傳遞的 IP 位址,與存取權控管政策的 <MatchRule> 元素中指定的 IP 位址相符,且 <MatchRule> 元素的 action 屬性設為 DENY 。<SourceAddress> |
build |
錯誤變數
這些變數是在執行階段錯誤發生時設定。詳情請參閱「政策錯誤特有的變數」。
錯誤回應示例
{ "fault":{ "faultstring":"Access Denied for client ip : 52.211.243.3" "detail":{ "errorcode":"accesscontrol.IPDeniedAccess" } } }
故障規則示例
<FaultRule name="IPDeniedAccess"> <Step> <Name>AM-IPDeniedAccess</Name> <Condition>(fault.name Matches "IPDeniedAccess") </Condition> </Step> <Condition>(acl.failed = true) </Condition> </FaultRule>
AccessEntity 政策
執行階段錯誤
無。
部署錯誤
錯誤名稱 | 錯誤字串 | HTTP 狀態 | 發生時機 |
---|---|---|---|
InvalidEntityType |
Invalid type [entity_type] in ACCESSENTITYStepDefinition
[policy_name] |
不適用 | 使用的實體類型必須是支援的類型之一。 |
AssignMessage 政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 | 修正 |
---|---|---|---|
steps.assignmessage.SetVariableFailed |
500 | 這項政策無法設定變數。請參閱未解析變數名稱的錯誤字串。 | |
steps.assignmessage.VariableOfNonMsgType |
500 |
如果 訊息類型變數代表整個 HTTP 要求和回應。內建 Edge 流程變數 |
build |
steps.assignmessage.UnresolvedVariable |
500 |
如果 Assign Message 政策中指定的變數符合下列任一條件,就會發生這個錯誤:
|
build |
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 原因 | 修正 |
---|---|---|
InvalidIndex |
如果 Assign Message 政策的 <Copy> 和/或 <Remove> 元素中指定的索引為 0 或負數,API Proxy 部署就會失敗。
|
build |
InvalidVariableName |
如果子項元素 <Name> 為空白,或是在 <AssignVariable> 元素中未指定,API Proxy 的部署就會失敗,因為沒有可指派值的有效變數名稱。必須提供有效的變數名稱。 |
build |
InvalidPayload |
政策中指定的酬載無效。 |
錯誤變數
當這項政策在執行階段觸發錯誤時,系統會設定這些變數。詳情請參閱「政策錯誤須知」。
錯誤回應範例
{ "fault":{ "detail":{ "errorcode":"steps.assignmessage.VariableOfNonMsgType" }, "faultstring":"AssignMessage[AM-SetResponse]: value of variable is not of type Message" } }
故障規則示例
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="Assign Message Faults"> <Step> <Name>AM-CustomNonMessageTypeErrorResponse</Name> <Condition>(fault.name Matches "VariableOfNonMsgType") </Condition> </Step> <Step> <Name>AM-CustomSetVariableErrorResponse</Name> <Condition>(fault.name = "SetVariableFailed")</Condition> </Step> <Condition>(assignmessage.failed = true) </Condition> </FaultRule>
基本驗證政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。如果您開發的錯誤規則來處理錯誤,請務必瞭解這些資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 | 修正 |
---|---|---|---|
steps.basicauthentication.InvalidBasicAuthenticationSource |
500 | 當傳入的 Base64 編碼字串不含有效值,或是標頭格式錯誤 (例如不是以「Basic」開頭) 時,您進行的解碼。 | build |
steps.basicauthentication.UnresolvedVariable |
500 | 解碼或編碼所需的來源變數不存在。只有在 IgnoreUnresolvedVariables 為 false 時,才會發生這個錯誤。 |
build |
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 發生時機 | 修正 |
---|---|---|
UserNameRequired |
已命名作業必須有 <User> 元素。 |
build |
PasswordRequired |
已命名作業必須有 <Password> 元素。 |
build |
AssignToRequired |
已命名作業必須有 <AssignTo> 元素。 |
build |
SourceRequired |
已命名作業必須有 <Source> 元素。 |
build |
錯誤變數
這些變數是在執行階段錯誤發生時設定。詳情請參閱「政策錯誤的注意事項」。
錯誤回應範例
{ "fault":{ "detail":{ "errorcode":"steps.basicauthentication.UnresolvedVariable" }, "faultstring":"Unresolved variable : request.queryparam.password" } }
故障規則示例
<FaultRule name="Basic Authentication Faults"> <Step> <Name>AM-UnresolvedVariable</Name> <Condition>(fault.name Matches "UnresolvedVariable") </Condition> </Step> <Step> <Name>AM-AuthFailedResponse</Name> <Condition>(fault.name = "InvalidBasicAuthenticationSource")</Condition> </Step> <Condition>(BasicAuthentication.BA-Authentication.failed = true) </Condition> </FaultRule>
ConcurrentRateLimit 政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您開發的錯誤規則來處理錯誤,請務必瞭解這些資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 發生時機 |
---|---|---|
policies.concurrentratelimit.ConcurrentRatelimtViolation |
503 |
ConcurrentRatelimit 連線數量超過上限。連線限制:{0} 注意:左側顯示的錯誤程式碼正確無誤,但含有拼寫錯誤 (「limt」)。為了包裝這個錯誤,請務必使用此處所示的程式碼。 |
部署錯誤
錯誤名稱 | 發生時機 |
---|---|
InvalidCountValue |
ConcurrentRatelimit 指定的無效計數值無效。 |
ConcurrentRatelimitStepAttachment\ |
不得在 Proxy 要求/回應/錯誤路徑中使用並行速率限制政策 {0} 連結。這項政策必須放在目標端點上。 |
ConcurrentRatelimitStepAttachment\ |
目標要求/回應/錯誤的路徑缺少並行速率限制政策 {0} 連結。這項政策必須放置在「目標要求預先流程」、「目標回應 Postflow」和「DefaultFaultRule」中。 |
InvalidTTLForMessageTimeOut |
為訊息逾時指定的 ConcurrentRatelimit 無效 ttl 值。必須是正整數。 |
錯誤變數
系統會在這項政策觸發錯誤時設定這些變數。詳情請參閱「政策錯誤的注意事項」。
錯誤回應範例
如果超過頻率限制,政策只會將 HTTP 狀態 503 傳回給用戶端。
故障規則示例
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRules> <FaultRule name="Quota Errors"> <Step> <Name>JavaScript-1</Name> <Condition>(fault.name Matches "ConcurrentRatelimtViolation") </Condition> </Step> <Condition>concurrentratelimit.CRL-RateLimitPolicy.failed=true</Condition> </FaultRule> </FaultRules>
DecodeJWS 政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 發生時機 |
---|---|---|
steps.jws.FailedToDecode |
401 | 政策無法解碼 JWS。JWS 可能已損毀。 |
steps.jws.FailedToResolveVariable |
401 | 發生於政策 <Source> 元素中指定的資料流變數不存在時產生的。 |
steps.jws.InvalidClaim |
401 | 可能是因為缺少版權聲明或版權聲明不符,或是缺少標題或標頭不符的情形。 |
steps.jws.InvalidJsonFormat |
401 | JWS 標頭含有無效的 JSON。 |
steps.jws.InvalidJws |
401 | 當 JWS 簽名驗證失敗時,就會發生這個錯誤。 |
steps.jws.InvalidPayload |
401 | JWS 酬載無效。 |
steps.jws.InvalidSignature |
401 | 省略 <DetachedContent> ,且 JWS 具有卸離的內容酬載。 |
steps.jws.MissingPayload |
401 | 缺少 JWS 酬載。 |
steps.jws.NoAlgorithmFoundInHeader |
401 | JWS 省略演算法標頭時發生。 |
steps.jws.UnknownException |
401 | 發生不明例外狀況。 |
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 發生時機 |
---|---|
InvalidAlgorithm |
有效值僅為:RS256、RS384、RS512、PS256、PS384、PS512、ES256、ES384、ES512、HS256、HS384、HS512。 |
|
其他可能的部署錯誤。 |
錯誤變數
這些變數是在執行階段錯誤發生時設定。詳情請參閱「政策錯誤的注意事項」。
Variables | 地點 | 範例 |
---|---|---|
fault.name="fault_name" |
fault_name 是錯誤的名稱,如上方的「執行階段錯誤」表格所示。錯誤名稱是錯誤碼的最後一個部分。 | fault.name Matches "TokenExpired" |
JWS.failed |
當測試失敗時,所有 JWS 政策都會設定相同的變數。 | jws.JWS-Policy.failed = true |
錯誤回應範例
如要處理錯誤,最佳做法是納入錯誤回應的 errorcode
部分。請勿依賴 faultstring
中的文字,因為文字可能會有所變動。
故障規則示例
<FaultRules> <FaultRule name="JWS Policy Errors"> <Step> <Name>JavaScript-1</Name> <Condition>(fault.name Matches "TokenExpired")</Condition> </Step> <Condition>JWS.failed=true</Condition> </FaultRule> </FaultRules>
DecodeJWT 政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 | 修正 |
---|---|---|---|
steps.jwt.FailedToDecode |
401 | 當政策無法解碼 JWT 時發生。JWT 可能格式錯誤、無效或無法解密。 | build |
steps.jwt.FailedToResolveVariable |
401 | 發生於政策 <Source> 元素中指定的資料流變數不存在時產生的。 |
|
steps.jwt.InvalidToken |
401 | 當政策的 <Source> 元素中指定的流程變數超出範圍,或是無法解析時,就會發生這個錯誤。 |
build |
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 原因 | 修正 |
---|---|---|
InvalidEmptyElement |
系統會在政策的 <Source> 元素中未指定包含要解碼的 JWT 的流程變數。 |
build |
錯誤變數
這些變數是在執行階段錯誤發生時設定。詳情請參閱「政策錯誤的注意事項」。
Variables | 地點 | 範例 |
---|---|---|
fault.name="fault_name" |
fault_name 是錯誤的名稱,如上方的「執行階段錯誤」表格所示。錯誤名稱是錯誤碼的最後一個部分。 | fault.name Matches "TokenExpired" |
JWT.failed |
所有 JWT 政策設定失敗時,都會設定相同的變數。 | JWT.failed = true |
錯誤回應範例
如要處理錯誤,最佳做法是納入錯誤回應的 errorcode
部分。請勿依賴 faultstring
中的文字,因為文字可能會有所變動。
故障規則示例
<FaultRules> <FaultRule name="JWT Policy Errors"> <Step> <Name>JavaScript-1</Name> <Condition>(fault.name Matches "TokenExpired")</Condition> </Step> <Condition>JWT.failed=true</Condition> </FaultRule> </FaultRules>
「擷取變數」政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 | 修正 |
---|---|---|---|
steps.extractvariables.ExecutionFailed |
500 |
發生這個錯誤時,會發生以下錯誤:
|
build |
steps.extractvariables.ImmutableVariable |
500 | 政策中使用的變數不可變更。政策無法設定這個變數。 | |
steps.extractvariables.InvalidJSONPath |
500 | 如果政策的 JSONPath 元素中使用無效的 JSON 路徑,就會發生這個錯誤。舉例來說,如果 JSON 酬載沒有 Name 物件,但您在政策中將路徑指定為 Name ,就會發生這個錯誤。 |
build |
steps.extractvariables.JsonPathParsingFailure |
500 | 如果政策無法剖析 JSON 路徑,並從 Source 元素中指定的流程變數擷取資料,就會發生這個錯誤。通常,如果 Source 元素中指定的流程變數不存在於目前的流程中,就會發生這種情況。 |
build |
steps.extractvariables.SetVariableFailed |
500 | 如果政策無法將值設為變數,就會發生這個錯誤。 如果您嘗試將值指派給多個變數,而且變數的名稱開頭為以巢狀點分隔格式的字詞,通常就會發生這個錯誤。 | build |
steps.extractvariables.SourceMessageNotAvailable |
500 | 如果政策的 Source 元素中指定 message 變數,就會發生這個錯誤:
|
build |
steps.extractvariables.UnableToCast |
500 | 如果政策無法將擷取的值轉換為變數,就會發生這個錯誤。一般來說,如果您嘗試將某個資料類型的值設為另一種資料類型的變數,就會發生這類情況。 | build |
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 原因 | 修正 |
---|---|---|
NothingToExtract |
如果政策中沒有任何元素 URIPath 、QueryParam 、Header 、FormParam 、XMLPayload 或 JSONPayload ,API Proxy 的部署就會失敗,因為沒有可擷取的項目。 |
build |
NONEmptyPrefixMappedToEmptyURI |
如果政策的 Namespace 元素在 XMLPayload 元素下方已定義前置字串,但未定義 URI,就會發生這個錯誤。 |
build |
DuplicatePrefix |
如果政策在 XMLPayload 元素的 Namespace 元素中多次定義相同前置字串,就會發生這個錯誤。 |
build |
NoXPathsToEvaluate |
如果政策的 XMLPayload 元素中沒有 XPath 元素,API Proxy 部署作業就會失敗,並發生這個錯誤。
|
build |
EmptyXPathExpression |
如果政策的 XMLPayload 元素中包含空白的 XPath 運算式,API Proxy 的部署就會失敗。 |
build |
NoJSONPathsToEvaluate |
如果政策在 JSONPayload 元素中沒有 JSONPath 元素,API Proxy 部署就會失敗,並發生這項錯誤。 |
build |
EmptyJSONPathExpression |
如果政策的 XMLPayload 元素中含有空白的 XPath 運算式,API Proxy 的部署就會失敗。 |
build |
MissingName |
如果在必要情況下,政策的任何政策元素 (例如 QueryParam 、Header 、FormParam 或 Variable ) 中沒有 name 屬性,API Proxy 的部署作業就會失敗。 |
build |
PatternWithoutVariable |
如果政策未在 Pattern 元素中指定變數,API Proxy 的部署作業就會失敗。Pattern 元素需要指定要儲存擷取資料的變數名稱。 |
build |
CannotBeConvertedToNodeset |
如果政策中有 XPath 運算式,其中 Variable 類型定義為 nodeset,但運算式無法轉換為 nodeset,API Proxy 部署就會失敗。 |
build |
JSONPathCompilationFailed |
政策無法編譯指定的 JSON 路徑。 | |
InstantiationFailed |
無法執行個體化政策。 | |
XPathCompilationFailed |
如果 XPath 元素中使用的前置字串或值不屬於政策中任何宣告的命名空間,那麼 API Proxy 部署作業就會失敗。 |
build |
InvalidPattern |
如果政策內任何元素 (例如 URIPath 、QueryParam 、Header 、FormParam 、XMLPayload 或 JSONPayload ) 中的 Pattern 元素定義無效,API Proxy 的部署作業就會失敗。
|
build |
錯誤變數
當這項政策在執行階段觸發錯誤時,系統會設定這些變數。詳情請參閱「政策錯誤須知」。
錯誤回應範例
{ "fault":{ "detail":{ "errorcode":"steps.extractvariables.SourceMessageNotAvailable" }, "faultstring":"request message is not available for ExtractVariable: EV-ParseJsonResponse" } }
故障規則示例
<FaultRule name="Extract Variable Faults"> <Step> <Name>AM-CustomErrorMessage</Name> <Condition>(fault.name = "SourceMessageNotAvailable") </Condition> </Step> <Condition>(extractvariables.EM-ParseJsonResponse.failed = true) </Condition> </FaultRule>
產生 JWS 政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 請務必瞭解您是否正在開發錯誤規則來處理錯誤。詳情請參閱政策錯誤須知和處理錯誤。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 發生時機 |
---|---|---|
steps.jws.GenerationFailed |
401 | 政策無法產生 JWS。 |
steps.jws.InsufficientKeyLength |
401 | 適用於小於 32 個位元組的 HS256 演算法 |
steps.jws.InvalidClaim |
401 | 可能是因為缺少版權聲明或版權聲明不符,或是缺少標題或標頭不符的情形。 |
steps.jws.InvalidCurve |
401 | 索引鍵指定的曲線不適用於橢圓曲線演算法。 |
steps.jws.InvalidJsonFormat |
401 | JWS 標頭含有無效的 JSON。 |
steps.jws.InvalidPayload |
401 | JWS 酬載無效。 |
steps.jws.InvalidSignature |
401 | 省略 <DetachedContent> ,且 JWS 具有卸離的內容酬載。 |
steps.jws.KeyIdMissing |
401 | 驗證政策會使用 JWKS 做為公開金鑰來源,但已簽署的 JWS 不會在標頭中加入 kid 屬性。 |
steps.jws.KeyParsingFailed |
401 | 無法從指定的金鑰資訊剖析公開金鑰。 |
steps.jws.MissingPayload |
401 | 缺少 JWS 酬載。 |
steps.jws.NoAlgorithmFoundInHeader |
401 | JWS 省略演算法標頭時發生。 |
steps.jws.SigningFailed |
401 | 在 GenerateJWS 中,金鑰大小小於 HS384 或 HS512 演算法的最小大小 |
steps.jws.UnknownException |
401 | 發生不明例外狀況。 |
steps.jws.WrongKeyType |
401 | 指定的金鑰類型有誤。舉例來說,如果您為橢圓曲線演算法指定 RSA 金鑰,或是為 RSA 演算法指定曲線鍵, |
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 發生時機 |
---|---|
InvalidAlgorithm |
有效值僅為:RS256、RS384、RS512、PS256、PS384、PS512、ES256、ES384、ES512、HS256、HS384、HS512。 |
|
其他可能的部署錯誤。 |
錯誤變數
這些變數是在執行階段錯誤發生時設定。詳情請參閱「政策錯誤的注意事項」。
Variables | 地點 | 範例 |
---|---|---|
fault.name="fault_name" |
fault_name 是錯誤的名稱,如上方的「執行階段錯誤」表格所示。錯誤名稱是錯誤碼的最後一個部分。 | fault.name Matches "TokenExpired" |
JWS.failed |
當測試失敗時,所有 JWS 政策都會設定相同的變數。 | jws.JWS-Policy.failed = true |
錯誤回應範例
如要處理錯誤,最佳做法是納入錯誤回應的 errorcode
部分。請勿依賴 faultstring
中的文字,因為文字可能會有所變動。
故障規則示例
<FaultRules> <FaultRule name="JWS Policy Errors"> <Step> <Name>JavaScript-1</Name> <Condition>(fault.name Matches "TokenExpired")</Condition> </Step> <Condition>JWS.failed=true</Condition> </FaultRule> </FaultRules>
GenerateJWT 政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 發生時機 |
---|---|---|
steps.jwt.AlgorithmInTokenNotPresentInConfiguration |
401 | 驗證政策採用多個演算法時發生。 |
steps.jwt.AlgorithmMismatch |
401 | 產生政策中指定的演算法與驗證政策中預期的演算法不符。指定的演算法必須相符。 |
steps.jwt.FailedToDecode |
401 | 政策無法解碼 JWT。JWT 可能損毀。 |
steps.jwt.GenerationFailed |
401 | 政策無法產生 JWT。 |
steps.jwt.InsufficientKeyLength |
401 | 如果金鑰在 HS256 演算法中的資料量小於 32 個位元組,HS386 演算法需少於 48 個位元組,HS512 演算法則小於 64 個位元組。 |
steps.jwt.InvalidClaim |
401 | 可能是因為缺少版權聲明或版權聲明不符,或是缺少標題或標頭不符的情形。 |
steps.jwt.InvalidCurve |
401 | 索引鍵指定的曲線不適用於橢圓曲線演算法。 |
steps.jwt.InvalidJsonFormat |
401 | 標頭或酬載含有無效的 JSON。 |
steps.jwt.InvalidToken |
401 | 如果 JWT 簽名驗證失敗,就會發生這個錯誤。 |
steps.jwt.JwtAudienceMismatch |
401 | 權杖驗證失敗,目標對象聲明失敗。 |
steps.jwt.JwtIssuerMismatch |
401 | 核發機構憑證驗證失敗。 |
steps.jwt.JwtSubjectMismatch |
401 | 驗證權杖的主體擁有權聲明失敗。 |
steps.jwt.KeyIdMissing |
401 | 驗證政策會使用 JWKS 做為公開金鑰來源,但已簽署的 JWT 不會在標頭中加入 kid 屬性。 |
steps.jwt.KeyParsingFailed |
401 | 無法從指定的金鑰資訊剖析公開金鑰。 |
steps.jwt.NoAlgorithmFoundInHeader |
401 | 發生於 JWT 未包含演算法標頭時。 |
steps.jwt.NoMatchingPublicKey |
401 | 驗證政策會使用 JWKS 做為公開金鑰來源,但已簽署 JWT 中的 kid 並未列在 JWKS 中。 |
steps.jwt.SigningFailed |
401 | 在 GenerateJWT 中,金鑰大小必須小於 HS384 或 HS512 演算法的下限 |
steps.jwt.TokenExpired |
401 | 政策會嘗試驗證過期的權杖。 |
steps.jwt.TokenNotYetValid |
401 | 憑證尚未生效。 |
steps.jwt.UnhandledCriticalHeader |
401 | 在 crit 標頭中驗證 JWT 政策找到的標頭不在 KnownHeaders 中。 |
steps.jwt.UnknownException |
401 | 發生不明例外狀況。 |
steps.jwt.WrongKeyType |
401 | 指定的金鑰類型有誤。舉例來說,如果您為橢圓曲線演算法指定 RSA 金鑰,或是為 RSA 演算法指定曲線鍵, |
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 原因 | 修正 |
---|---|---|
InvalidNameForAdditionalClaim |
如果 <AdditionalClaims> 元素的子元素 <Claim> 中使用的憑證聲明是下列任一註冊名稱,部署作業就會失敗:kid 、iss 、sub 、aud 、iat 、exp 、nbf 或 jti 。 |
build |
InvalidTypeForAdditionalClaim |
如果 <AdditionalClaims> 元素子項元素 <Claim> 中使用的憑證聲明不是 string 、number 、boolean 或 map 類型,部署作業就會失敗。
|
build |
MissingNameForAdditionalClaim |
如未在 <AdditionalClaims> 元素的子元素 <Claim> 中指定憑證附加資訊,部署作業就會失敗。
|
build |
InvalidNameForAdditionalHeader |
當 <AdditionalClaims> 元素的子元素 <Claim> 使用的聲明名稱是 alg 或 typ 時,就會發生這個錯誤。 |
build |
InvalidTypeForAdditionalHeader |
如果 <AdditionalClaims> 元素子項元素 <Claim> 中使用的聲明類型不是 string 、number 、boolean 或 map ,部署就會失敗。 |
build |
InvalidValueOfArrayAttribute |
如果 <AdditionalClaims> 元素中子元素 <Claim> 的陣列屬性值未設為 true 或 false ,就會發生這個錯誤。 |
build |
InvalidConfigurationForActionAndAlgorithm |
如果將 <PrivateKey> 元素與 HS 系列演算法搭配使用,或是將 <SecretKey> 元素與 RSA Family 演算法搭配使用,部署作業就會失敗。 |
build |
InvalidValueForElement |
如果 <Algorithm> 元素中指定的值不是支援的值,部署作業就會失敗。
|
build |
MissingConfigurationElement |
如果 <PrivateKey> 元素未與 RSA 系列演算法搭配使用,或是 <SecretKey> 元素並未與 HS 系列演算法搭配使用,就會發生這個錯誤。 |
build |
InvalidKeyConfiguration |
如果未在 <PrivateKey> 或 <SecretKey> 元素中定義子項元素 <Value> ,部署就會失敗。 |
build |
EmptyElementForKeyConfiguration |
如果 <PrivateKey> 或 <SecretKey> 元素子項元素 <Value> 的 ref 屬性為空白或未指定,則部署作業將會失敗。 |
build |
InvalidVariableNameForSecret |
如果在 <PrivateKey> 或 <SecretKey> 元素的子項元素 <Value> 的 ref 屬性中指定的流程變數名稱不含私人前置字串 (private.) ,就會發生這個錯誤。 |
build |
InvalidSecretInConfig |
如果 <PrivateKey> 或 <SecretKey> 元素的子元素 <Value> 不含私人前置字串 (private.) ,就會發生這個錯誤。 |
build |
InvalidTimeFormat |
如果 <NotBefore> 元素中指定的值未使用支援的格式,部署就會失敗。
|
build |
錯誤變數
這些變數是在執行階段錯誤發生時設定。詳情請參閱「政策錯誤的注意事項」。
Variables | 地點 | 範例 |
---|---|---|
fault.name="fault_name" |
fault_name 是錯誤的名稱,如上方的「執行階段錯誤」表格所示。錯誤名稱是錯誤碼的最後一個部分。 | fault.name Matches "TokenExpired" |
JWT.failed |
所有 JWT 政策設定失敗時,都會設定相同的變數。 | JWT.failed = true |
錯誤回應範例
如要處理錯誤,最佳做法是納入錯誤回應的 errorcode
部分。請勿依賴 faultstring
中的文字,因為文字可能會有所變動。
故障規則示例
<FaultRules> <FaultRule name="JWT Policy Errors"> <Step> <Name>JavaScript-1</Name> <Condition>(fault.name Matches "TokenExpired")</Condition> </Step> <Condition>JWT.failed=true</Condition> </FaultRule> </FaultRules>
Java 呼叫政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 | 修正 |
---|---|---|---|
steps.javacallout.ExecutionError |
500 | 發生於 Java 程式碼在執行 Java Call 政策期間擲回例外狀況或傳回空值時發生。 | build |
部署錯誤
部署含有政策的 Proxy 時,就可能會發生這類錯誤。
錯誤名稱 | 錯誤字串 | HTTP 狀態 | 發生時機 |
---|---|---|---|
ResourceDoesNotExist |
Resource with name
[name] and type [type] does not exist |
不適用 | <ResourceURL> 元素中指定的檔案不存在。 |
JavaCalloutInstantiationFailed |
Failed to instantiate the JavaCallout Class [classname] |
不適用 | <ClassName> 元素中指定的類別檔案不在 jar 中。 |
IncompatibleJavaVersion |
Failed to load java class [classname] definition due to - [reason] |
不適用 | 查看錯誤字串。另請參閱支援的軟體和支援的版本。 |
JavaClassNotFoundInJavaResource |
Failed to find the ClassName in java resource [jar_name] -
[class_name] |
不適用 | 查看錯誤字串。 |
JavaClassDefinitionNotFound |
Failed to load java class [class_name] definition due to - [reason] |
不適用 | 查看錯誤字串。 |
NoAppropriateConstructor |
No appropriate constructor found in JavaCallout class [class_name] |
不適用 | 查看錯誤字串。 |
NoResourceForURL |
Could not locate a resource with URL [string] |
不適用 | 查看錯誤字串。 |
錯誤變數
系統會在這項政策觸發錯誤時設定這些變數。詳情請參閱「政策錯誤的注意事項」。
錯誤回應範例
{ "fault":{ "faultstring":"Failed to execute JavaCallout. [policy_name]", "detail":{ "errorcode":"javacallout.ExecutionError" } } }
故障規則示例
<FaultRule name="JavaCalloutFailed"> <Step> <Name>AM-JavaCalloutError</Name> </Step> <Condition>(fault.name Matches "ExecutionError") </Condition> </FaultRule>
JavaScript 政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。如果您開發的錯誤規則來處理錯誤,請務必瞭解這些資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 | 修正 |
---|---|---|---|
steps.javascript.ScriptExecutionFailed |
500 | JavaScript 政策可能會擲回多種不同類型的 ScriptExecutionFailed 錯誤。常見的錯誤類型包括 RangeError、ReferenceError、SyntaxError、TypeError 和 URIError。 | build |
steps.javascript.ScriptExecutionFailedLineNumber |
500 | JavaScript 程式碼發生錯誤。詳情請參閱錯誤字串。 | 不適用 |
steps.javascript.ScriptSecurityError |
500 | 執行 JavaScript 時發生安全性錯誤。詳情請參閱錯誤字串。 | 不適用 |
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 原因 | 修正 |
---|---|---|
InvalidResourceUrlFormat |
如果 <ResourceURL> 或 JavaScript 政策的 <IncludeURL> 元素中指定的資源網址格式無效,API Proxy 部署就會失敗。 |
build |
InvalidResourceUrlReference |
如果 <ResourceURL> 或 <IncludeURL> 元素參照的 JavaScript 檔案不存在,API Proxy 的部署作業就會失敗。參照的來源檔案必須位於 API Proxy、環境或機構層級。 |
build |
WrongResourceType |
如果 JavaScript 政策的 <ResourceURL> 或 <IncludeURL> 元素參照 jsc (JavaScript 檔案) 以外的任何資源類型,系統就會在部署期間發生這個錯誤。 |
build |
NoResourceURLOrSource |
如未宣告 <ResourceURL> 元素,或未在此元素中定義資源網址,JavaScript 政策的部署作業可能會失敗。<ResourceURL> 元素是必要元素。或者,系統會宣告 <IncludeURL> 元素,但這個元素中並未定義資源網址。<IncludeURL> 元素為選用元素,但如果已宣告,則必須在 <IncludeURL> 元素中指定資源網址。 |
build |
錯誤變數
當這項政策在執行階段觸發錯誤時,系統會設定這些變數。詳情請參閱「政策錯誤須知」。
錯誤回應範例
{ "fault": { "faultstring": "Execution of SetResponse failed with error: Javascript runtime error: "ReferenceError: "status" is not defined. (setresponse.js:6)\"", "detail": { "errorcode": "steps.javascript.ScriptExecutionFailed" } } }
故障規則示例
<FaultRule name="JavaScript Policy Faults"> <Step> <Name>AM-CustomErrorResponse</Name> <Condition>(fault.name Matches "ScriptExecutionFailed") </Condition> </Step> <Condition>(javascript.JavaScript-1.failed = true) </Condition> </FaultRule>
JSONThreatProtection 政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 | 修正 |
---|---|---|---|
steps.jsonthreatprotection.ExecutionFailed |
500 | JSONThreatProtection 政策可能會擲回多種不同類型的 ExecutionFailed 錯誤。 這類錯誤大多發生在政策中設定的特定門檻。這類錯誤包括:物件項目名稱長度、物件項目數量、陣列元素數量、容器深度、字串字串值長度。酬載包含無效的 JSON 物件時,也會出現這個錯誤。 | build |
steps.jsonthreatprotection.SourceUnavailable |
500 |
如果 <Source> 元素中指定的 message 變數是下列任一,就會發生這個錯誤:
|
build |
steps.jsonthreatprotection.NonMessageVariable |
500 |
如果 <Source> 元素設為不屬於 message 類型的變數,就會發生這個錯誤。 |
build |
部署錯誤
無。
錯誤變數
系統會在這項政策觸發錯誤時設定這些變數。詳情請參閱「政策錯誤的注意事項」。
錯誤回應範例
{ "fault": { "faultstring": "JSONThreatProtection[JPT-SecureRequest]: Execution failed. reason: JSONThreatProtection[JTP-SecureRequest]: Exceeded object entry name length at line 2", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
故障規則示例
<FaultRule name="JSONThreatProtection Policy Faults">
<Step>
<Name>AM-CustomErrorResponse</Name>
<Condition>(fault.name Matches "ExecutionFailed") </Condition>
</Step>
<Condition>(jsonattack.JPT-SecureRequest.failed = true) </Condition>
</FaultRule>
JSONThreatProtection 政策類型定義了下列錯誤代碼:
JSONtoXML 政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 | 修正 |
---|---|---|---|
steps.jsontoxml.ExecutionFailed |
500 | 輸入酬載 (JSON) 為空白,或是傳遞至 JSON 政策的輸入 (JSON) 無效或格式錯誤。 | build |
steps.jsontoxml.InCompatibleTypes |
500 | 如果 <Source> 元素中定義的變數類型與 <OutputVariable> 元素不同,就會發生這個錯誤。請務必指定 <Source> 元素中包含的變數類型,且 <OutputVariable> 元素必須相符。有效的類型包括 message 和 string 。 |
build |
steps.jsontoxml.InvalidSourceType |
500 | 如果用於定義 <Source> 元素的變數類型無效,就會發生這個錯誤。有效的變數類型為 message 和 string 。 |
build |
steps.jsontoxml.OutputVariableIsNotAvailable |
500 | 如果 JSON 至 XML 政策的 <Source> 元素中指定的變數為類型字串,且 <OutputVariable> 元素未定義,就會發生這個錯誤。如果 <Source> 元素中定義的變數為類型字串,則 <OutputVariable> 元素為必要元素。 |
build |
steps.jsontoxml.SourceUnavailable |
500 |
從 JSON 至 XML 政策的 <Source> 元素中,如果指定 message 變數,就會發生這個錯誤:
|
build |
部署錯誤
無。
錯誤變數
這些變數是在執行階段錯誤發生時設定。詳情請參閱「政策錯誤的注意事項」。
錯誤回應範例
{ "fault": { "faultstring": "JSONToXML[JSON-to-XML-1]: Source xyz is not available", "detail": { "errorcode": "steps.json2xml.SourceUnavailable" } } }
故障規則示例
<FaultRule name="JSON To XML Faults"> <Step> <Name>AM-SourceUnavailableMessage</Name> <Condition>(fault.name Matches "SourceUnavailable") </Condition> </Step> <Step> <Name>AM-BadJSON</Name> <Condition>(fault.name = "ExecutionFailed")</Condition> </Step> <Condition>(jsontoxml.JSON-to-XML-1.failed = true) </Condition> </FaultRule>
KeyValueMapOperations 政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 | 修正 |
---|---|---|---|
steps.keyvaluemapoperations.SetVariableFailed |
500 |
如果您嘗試從加密的金鑰值對應擷取值,並將值設為名稱不含前置字串 |
build |
steps.keyvaluemapoperations.UnsupportedOperationException |
500 |
如果鍵/值對應作業政策中的 |
build |
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 原因 | 修正 |
---|---|---|
InvalidIndex |
如果鍵值對應作業政策的 <Get> 元素中指定的 index 屬性為零或負數,API Proxy 部署就會失敗。索引從 1 開始,因此系統會將零或負整數的索引視為無效。 |
build |
KeyIsMissing |
如果金鑰值對應作業政策的 <InitialEntries> 元素 <Entry> 下方缺少 <Key> 元素,或是缺少 <Parameter> 元素,就會發生這個錯誤。<Key> |
build |
ValueIsMissing |
在鍵/值對應作業政策的 <InitialEntries> 元素的 <Entry> 元素下方,缺少 <Value> 元素,就會發生這個錯誤。 |
build |
LDAP 政策
這項政策會使用下列錯誤代碼:
錯誤代碼 | 訊息 |
---|---|
InvalidAttributeName |
Invalid attribute name {0}. |
InvalidSearchBase |
Search base can not be empty. |
InvalidValueForPassword |
Invalid value for password field. It can not be empty. |
InvalidSearchScope |
Invalid scope {0}. Allowed scopes are {1}. |
InvalidUserCredentials |
Invalid user credentials. |
InvalidExternalLdapReference |
Invalid external ldap reference {0}. |
LdapResourceNotFound |
Ldap resource {0} not found. |
BaseDNRequired |
Base DN required. |
OnlyReferenceOrValueIsAllowed |
Only value or reference is allowed for {0}. |
AttributesRequired |
At least one attribute required for search action. |
UserNameIsNull |
User name is null. |
SearchQueryAndUserNameCannotBePresent |
Both search query and username can not be present in the authentication action.
Please specify either one of them. |
MessageLogging 政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 |
---|---|---|
steps.messagelogging.StepDefinitionExecutionFailed |
500 | 查看錯誤字串。 |
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 原因 | 修正 |
---|---|---|
InvalidProtocol |
如果 <Protocol> 元素中指定的通訊協定無效,MessageLogging 政策的部署作業可能會失敗。有效的通訊協定為 TCP 和 UDP。如果是透過 TLS/SSL 傳送系統記錄訊息,則僅支援 TCP。 |
build |
InvalidPort |
如果 <Port> 元素中未指定通訊埠號碼,或是通訊埠號碼無效,MessageLogging 政策的部署作業可能會失敗。通訊埠編號必須為大於零的整數。 |
build |
錯誤變數
這些變數是在執行階段錯誤發生時設定。詳情請參閱「政策錯誤的注意事項」。
錯誤回應範例
{ "fault":{ "detail":{ "errorcode":"steps.messagelogging.StepDefinitionExecutionFailed" }, "faultstring":"Execution failed" } }
故障規則示例
<FaultRule name="MessageLogging"> <Step> <Name>ML-LogMessages</Name> <Condition>(fault.name Matches "StepDefinitionExecutionFailed") </Condition> </Step> <Condition>(messagelogging.ML-LogMessages.failed = true) </Condition> </FaultRule>
OASValidation 政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 | |
---|---|---|---|
steps.oasvalidation.Failed |
500 | 無法依據所提供的 OpenAPI 規格驗證要求訊息主體。 | |
steps.oasvalidation.SourceMessageNotAvailable |
500 |
你在政策的 |
|
steps.oasvalidation.NotMessageVariable |
500 |
|
build |
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 原因 | |
---|---|---|
ResourceDoesNotExist |
<OASResource> 元素中參照的 OpenAPI 規格不存在。 |
|
ResourceCompileFailed |
部署作業中包含的 OpenAPI 規格含有導致無法編譯的錯誤。這通常表示規格並非格式正確的 OpenAPI 規格 3.0。 | |
BadResourceURL |
無法處理 <OASResource> 元素中參照的 OpenAPI 規格。如果檔案並非 JSON 或 YAML 檔案,或是檔案網址未正確指定,就會發生這種情況。 |
錯誤變數
當這項政策在執行階段觸發錯誤時,系統會設定這些變數。詳情請參閱「政策錯誤須知」。
PopulateCache 政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 發生時機 |
---|---|---|
policies.populatecache.EntryCannotBeCached |
500 | 無法快取項目。快取的訊息物件不是 Serializable 類別的例項。 |
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 原因 | 修正 |
---|---|---|
InvalidCacheResourceReference |
如果 PopulateCache 政策中的 <CacheResource> 元素設定的名稱不在 API Proxy 部署的環境中,就會發生這個錯誤。 |
build |
CacheNotFound |
<CacheResource> 元素中指定的快取不存在。 |
build |
錯誤變數
系統會在這項政策觸發錯誤時設定這些變數。詳情請參閱「政策錯誤的注意事項」。
錯誤回應範例
{ "fault": { "faultstring": "[entry] can not be cached. Only serializable entries are cached.", "detail": { "errorcode": "steps.populatecache.EntryCannotBeCached" } } }
故障規則示例
<FaultRule name="Populate Cache Fault"> <Step> <Name>AM-EntryCannotBeCached</Name> <Condition>(fault.name Matches "EntryCannotBeCached") </Condition> </Step> <Condition>(populatecache.POP-CACHE-1.failed = true) </Condition> </FaultRule>
查詢快取政策
本節說明這項政策觸發錯誤時設定的錯誤訊息和流程變數。如果您正在開發 Proxy 的錯誤規則,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
錯誤代碼前置字串
不適用
執行階段錯誤
這項政策不會擲回任何執行階段錯誤。
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 原因 | 修正 |
---|---|---|
InvalidCacheResourceReference |
如果 <CacheResource> 元素設定的名稱不在部署 API Proxy 的環境中,就會發生這個錯誤。 |
build |
InvalidTimeout |
如果 <CacheLookupTimeoutInSeconds> 元素設為負數,API Proxy 部署就會失敗。 |
build |
CacheNotFound |
如果尚未在特定的訊息處理器元件上建立錯誤訊息中提及的特定快取,就會發生這個錯誤。 | build |
錯誤變數
不適用
錯誤回應範例
不適用
InvalidateCache 政策
本節說明這項政策觸發錯誤時設定的錯誤訊息和流程變數。如果您正在開發 Proxy 的錯誤規則,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
錯誤代碼前置字串
不適用
執行階段錯誤
這項政策不會擲回任何執行階段錯誤。
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 原因 | 修正 |
---|---|---|
InvalidCacheResourceReference |
如果 InvalidateCache 政策中的 <CacheResource> 元素設定的名稱不在部署 API Proxy 的環境中,就會發生這個錯誤。 |
build |
CacheNotFound |
如果尚未在特定的訊息處理器元件上建立錯誤訊息中提及的特定快取,就會發生這個錯誤。 | build |
錯誤變數
不適用
錯誤回應範例
不適用
ResponseCache 政策
本節說明這項政策觸發錯誤時設定的錯誤訊息和流程變數。如果您正在開發 Proxy 的錯誤規則,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
錯誤代碼前置字串
不適用
執行階段錯誤
這項政策不會擲回任何執行階段錯誤。
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 原因 | 修正 |
---|---|---|
InvalidTimeout |
如果 ResponseCache 政策的 <CacheLookupTimeoutInSeconds> 元素設為負數,API Proxy 部署就會失敗。 |
build |
InvalidCacheResourceReference |
如果 ResponseCache 政策中的 <CacheResource> 元素設定的名稱不在部署 API Proxy 的環境中,就會發生這個錯誤。 |
build |
ResponseCacheStepAttachmentNotAllowedReq |
如果在 API Proxy 的任何流程中,將相同的 ResponseCache 政策附加至多個要求路徑,就會發生這個錯誤。 | build |
ResponseCacheStepAttachmentNotAllowedResp |
如果在 API Proxy 的任何流程中,將相同的 ResponseCache 政策附加至多個回應路徑,就會發生這個錯誤。 | build |
InvalidMessagePatternForErrorCode |
如果 ResponseCache 政策中的 <SkipCacheLookup> 或 <SkipCachePopulation> 元素包含無效條件,就會發生這個錯誤。 |
build |
CacheNotFound |
如果尚未在特定的訊息處理器元件上建立錯誤訊息中提及的特定快取,就會發生這個錯誤。 | build |
錯誤變數
不適用
錯誤回應範例
不適用
OAuthV2 政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 | 依作業擲回 |
---|---|---|---|
steps.oauth.v2.access_token_expired |
401 | 存取權杖已過期。 |
VerifyAccessToken |
steps.oauth.v2.access_token_not_approved |
401 | 存取權杖已撤銷。 | VerifyAccessToken |
steps.oauth.v2.apiresource_doesnot_exist |
401 | 要求的資源不存在,且沒有任何與存取權杖相關聯的 API 產品。 | VerifyAccessToken |
steps.oauth.v2.FailedToResolveAccessToken |
500 | 這項政策預期會在 <AccessToken> 元素指定的變數中找到存取權杖,但該變數無法解析。 |
GenerateAccessToken |
steps.oauth.v2.FailedToResolveAuthorizationCode |
500 | 這項政策預期會在 <Code> 元素指定的變數中找到授權碼,但該變數無法解析。 |
GenerateAuthorizationCode |
steps.oauth.v2.FailedToResolveClientId |
500 | 這項政策預期會在 <ClientId> 元素中指定的變數中找到用戶端 ID,但該變數無法解析。 |
GenerateAccessToken GenerateAuthorizationCode GenerateAccessTokenImplicitGrant RefreshAccessToken |
steps.oauth.v2.FailedToResolveRefreshToken |
500 | 這項政策預期會在 <RefreshToken> 元素指定的變數中找到更新權杖,但該變數無法解析。 |
RefreshAccessToken |
steps.oauth.v2.FailedToResolveToken |
500 | 這項政策預期會在 <Tokens> 元素指定的變數中找到權杖,但該變數無法解析。 |
VerifyToken |
steps.oauth.v2.InsufficientScope |
403 | 要求中顯示的存取權杖範圍與驗證存取權杖政策中指定的範圍不符。如要瞭解範圍,請參閱使用 OAuth2 範圍。 | VerifyAccessToken |
steps.oauth.v2.invalid_access_token |
401 | 從用戶端傳送的存取權杖無效。 | VerifyAccessToken |
steps.oauth.v2.invalid_client |
401 |
如果政策的 注意:建議您變更現有的錯誤規則條件,以擷取 |
GenerateAccessToken RefreshAccessToken |
steps.oauth.v2.invalid_request |
400 | 這個錯誤名稱可用於多種錯誤類型,通常是因為要求中遺漏或不正確的參數。如果將 <GenerateResponse> 設為 false ,請使用錯誤變數 (如下所述) 擷取錯誤的詳細資料,例如錯誤名稱和原因。 |
GenerateAccessToken GenerateAuthorizationCode GenerateAccessTokenImplicitGrant RefreshAccessToken |
steps.oauth.v2.InvalidAccessToken |
401 | 授權標頭不含必要的「Bearer」字詞。例如:Authorization: Bearer your_access_token |
VerifyAccessToken |
steps.oauth.v2.InvalidAPICallAsNo\ |
401 |
API Proxy 不在與存取權杖相關聯的產品中。 提示:請確定與存取權杖相關聯的產品設定正確無誤。舉例來說,如果您在資源路徑中使用萬用字元,請確保萬用字元已正確使用。詳情請參閱「建立 API 產品」。 如要進一步瞭解這個錯誤的原因,請一併參閱這篇Apigee 社群貼文。 |
VerifyAccessToken |
steps.oauth.v2.InvalidClientIdentifier |
500 |
如果政策的 |
GenerateAccessToken |
steps.oauth.v2.InvalidParameter |
500 | 政策必須指定存取權杖或授權碼,但不得同時指定兩者。 | GenerateAuthorizationCode GenerateAccessTokenImplicitGrant |
steps.oauth.v2.InvalidTokenType |
500 | 您必須使用 <Tokens>/<Token> 元素指定權杖類型 (例如 refreshtoken )。如果用戶端傳遞了錯誤的類型,系統就會擲回這個錯誤。 |
VerifyToken InvalidateToken |
steps.oauth.v2.MissingParameter |
500 | 回應類型為 token ,但未指定授權類型。 |
GenerateAuthorizationCode GenerateAccessTokenImplicitGrant |
steps.oauth.v2.UnSupportedGrantType |
500 |
用戶端指定的授權類型不受政策支援 (未列於 <SupportedGrantTypes> 元素中)。 注意:目前有一個錯誤,無法正確擲回不支援的授權類型錯誤。如果發生不支援的授權類型錯誤,Proxy 不會如預期進入錯誤流程。 |
GenerateAccessToken GenerateAuthorizationCode GenerateAccessTokenImplicitGrant RefreshAccessToken |
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 原因 |
---|---|
InvalidValueForExpiresIn |
|
InvalidValueForRefreshTokenExpiresIn |
<RefreshTokenExpiresIn> 元素的有效值是正整數和 -1 。 |
InvalidGrantType |
<SupportedGrantTypes> 元素中指定的授權類型無效。如需有效類型的清單,請參閱政策參考資料。 |
ExpiresInNotApplicableForOperation |
請確認 <Operations> 元素中指定的作業支援到期時間。例如,VerifyToken 作業則不會。 |
RefreshTokenExpiresInNotApplicableForOperation |
請確認 <Operations> 元素中指定的作業支援更新權杖到期時間。例如,VerifyToken 作業則不會。 |
GrantTypesNotApplicableForOperation |
請確認您在 <SupportedGrantTypes> 中指定的授權類型支援指定作業。 |
OperationRequired |
您必須使用 注意:如果缺少 |
InvalidOperation |
您必須使用 注意:如果 |
TokenValueRequired |
您必須在 <Tokens> 元素中指定權杖 <Token> 值。 |
錯誤變數
當這項政策在執行階段觸發錯誤時,系統會設定這些變數。
錯誤回應範例
如果 <GenerateResponse>
元素為 true,這些回應就會傳回用戶端。
如果 <GenerateResponse>
為 true,政策會針對產生權杖和代碼的作業傳回這種格式的錯誤。如需完整清單,請參閱 OAuth HTTP 錯誤回應參考資料。
{"ErrorCode" : "invalid_client", "Error" :"ClientId is Invalid"}
如果 <GenerateResponse>
為 true,政策會傳回這種格式的錯誤,以便驗證及驗證作業。如需完整清單,請參閱 OAuth HTTP 錯誤回應參考資料。
{ { "fault":{ "faultstring":"Invalid Access Token", "detail":{ "errorcode":"keymanagement.service.invalid_access_token" } } }
故障規則示例
<FaultRule name=OAuthV2 Faults"> <Step> <Name>AM-InvalidClientResponse</Name> <Condition>(fault.name = "invalid_client") OR (fault.name = "InvalidClientIdentifier")</Condition> </Step> <Step> <Name>AM-InvalidTokenResponse</Name> <Condition>(fault.name = "invalid_access_token")</Condition> </Step> <Condition>(oauthV2.failed = true) </Condition> </FaultRule>
GetOAuthV2Info 政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。下列錯誤名稱是系統在發生錯誤時指派給 fault.name
變數的字串。詳情請參閱下方的「錯誤變數」一節。
錯誤代碼 | HTTP 狀態 | 原因 |
---|---|---|
steps.oauth.v2.access_token_expired |
500 | 傳送至政策的存取權杖已過期。 |
steps.oauth.v2.authorization_code_expired |
500 | 傳送至政策的授權碼已過期。 |
steps.oauth.v2.invalid_access_token |
500 | 傳送至政策的存取權權杖無效。 |
steps.oauth.v2.invalid_client-invalid_client_id |
500 | 傳送至政策的用戶端 ID 無效。 |
steps.oauth.v2.invalid_refresh_token |
500 | 傳送至政策的更新權杖無效。 |
steps.oauth.v2.invalid_request-authorization_code_invalid |
500 | 傳送至政策的授權碼無效。 |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 | 如要瞭解如何排解這項錯誤,請參閱 這篇 Apigee 社群文章。 |
steps.oauth.v2.refresh_token_expired |
500 | 傳送至政策的更新權杖已過期。 |
部署錯誤
如要瞭解部署錯誤,請參閱使用者介面中回報的訊息。
錯誤變數
當這項政策在執行階段觸發錯誤時,系統會設定這些變數。
錯誤回應範例
{ "fault":{ "faultstring":"ClientId is Invalid", "detail":{ "errorcode":"keymanagement.service.invalid_client-invalid_client_id" } } }
故障規則示例
<FaultRule name="OAuthV2 Faults"> <Step> <Name>AM-InvalidClientIdResponse</Name> </Step> <Condition>(fault.name = "invalid_client-invalid_client_id")</Condition> </FaultRule>
SetOAuthV2Info 政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 |
---|---|---|
steps.oauth.v2.access_token_expired |
500 | 傳送至政策的存取權杖已過期。 |
steps.oauth.v2.invalid_access_token |
500 | 傳送至政策的存取權權杖無效。 |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 | 如要瞭解如何排解這項錯誤,請參閱 這篇 Apigee 社群文章。 |
部署錯誤
如要瞭解部署錯誤,請參閱使用者介面中回報的訊息。
錯誤變數
當這項政策在執行階段觸發錯誤時,系統會設定這些變數。
錯誤回應範例
{ "fault": { "faultstring": "Invalid Access Token", "detail": { "errorcode": "keymanagement.service.invalid_access_token" } } }
故障規則示例
<FaultRule name=SetOAuthV2Info Faults"> <Step> <Name>AM-InvalidTokenResponse</Name> <Condition>(fault.name = "invalid_access_token")</Condition> </Step> <Condition>(oauthV2.failed = true) </Condition> </FaultRule>
刪除 OAuthV2Info 政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 |
---|---|---|
steps.oauth.v2.invalid_access_token |
401 | 傳送至政策的存取權權杖無效。 |
steps.oauth.v2.invalid_request-authorization_code_invalid |
401 | 傳送至政策的授權碼無效。 |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 | 如要瞭解如何排解這項錯誤,請參閱 這篇 Apigee 社群文章。 |
部署錯誤
如要瞭解部署錯誤,請參閱使用者介面中回報的訊息。
錯誤變數
當這項政策在執行階段觸發錯誤時,系統會設定這些變數。
錯誤回應範例
{ "fault": { "faultstring": "Invalid Access Token", "detail": { "errorcode": "keymanagement.service.invalid_access_token" } } }
故障規則示例
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="DeleteOAuthV2Info_Faults"> <Step> <Name>AM-InvalidTokenResponse</Name> </Step> <Condition>(fault.name = "invalid_access_token")</Condition> </FaultRule>
OAuthv1.0a 政策
OAuthV1 政策類型定義了以下錯誤代碼。
如要瞭解 OAuth 相關 HTTP 錯誤代碼,請參閱「OAuth HTTP 錯誤回應參考資料」。
錯誤代碼 | 訊息 |
---|---|
AppKeyNotResolved |
Could not resolve the app key with variable {0} |
ConsumerKeyNotResolved |
Could not resolve the consumer key with variable {0} |
RequestTokenNotResolved |
Could not resolve the request token with the variable {0} |
AccessTokenNotResolved |
Could not resolve the access token with the variable {0} |
ResponseGenerationError |
Error while generating response : {0} |
UnableToDetermineOperation |
Unable to determine an operation for stepDefinition {0} |
UnableToResolveOAuthConfig |
Unable to resolve the OAuth configuration for {0} |
AtLeastOneParamRequired |
At least one of AccessToken, RequestToken or ConsumerKey must be specified in
stepDefinition {0} |
SpecifyValueOrRefReqToken |
Specify Request Token as value or ref in stepDefinition {0} |
SpecifyValueOrRefAccToken |
Specify Access Token as value or ref in stepDefinition {0} |
SpecifyValueOrRefConKey |
Specify Consumer Key as value or ref in stepDefinition {0} |
SpecifyValueOrRefAppKey |
Specify App Key as value or ref in stepDefinition {0} |
ExpiresInNotApplicableForOperation |
ExpiresIn element is not valid for operation {0} |
InvalidValueForExpiresIn |
Invalid value for ExpiresIn element for operation {0} |
FailedToFetchApiProduct |
Failed to fetch api product for key {0} |
InvalidTokenType |
Valid token types : {0}, Invalid toke type {1} in stepDefinition {2} |
TokenValueRequired |
Token value is required in stepDefinition {0} |
FailedToResolveRealm |
Failed to resolve realm {0} |
GetOAuthV1Info 政策
未指定「取得 OAuth v1.0a 資訊」政策的錯誤代碼。
刪除 OAuthV1Info 政策
成功後,這項政策會傳回 200 狀態。
失敗時,這項政策會傳回 404 輸出內容,並產生類似下方的結果 (取決於您是否刪除存取權杖、要求權杖或驗證器):
HTTP/1.1 404 Not Found Content-Type: application/json Content-Length: 144 Connection: keep-alive {"fault":{"faultstring":"Invalid Access Token","detail":{"errorcode":"keymanagement.service.invalid_request-access_token_invalid"}}}
PythonScript 政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。如果您開發的錯誤規則來處理錯誤,請務必瞭解這些資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 | 修正 |
---|---|---|---|
steps.script.ScriptEvaluationFailed |
500 | PythonScript 政策可能會擲回多種不同類型的 ScriptExecutionFailed 錯誤。常見的錯誤類型包括 NameError 和 ZeroDivisionError。 | build |
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 原因 | 修正 |
---|---|---|
InvalidResourceUrlFormat |
如果 <ResourceURL> 或 PythonScript 政策的 <IncludeURL> 元素中指定的資源網址格式無效,API Proxy 部署就會失敗。 |
build |
InvalidResourceUrlReference |
如果 <ResourceURL> 或 <IncludeURL> 元素參照不存在的 PythonScript 檔案,API Proxy 的部署作業就會失敗。參照的來源檔案必須位於 API Proxy、環境或機構層級。 |
build |
錯誤變數
當這項政策在執行階段觸發錯誤時,系統會設定這些變數。詳情請參閱「政策錯誤須知」。
錯誤回應範例
{ "fault": { "faultstring": "Execution of SetResponse failed with error: Pythonscript runtime error: "ReferenceError: "status" is not defined.\"", "detail": { "errorcode": "steps.script.ScriptExecutionFailed" } } }
故障規則示例
<FaultRule name="PythonScript Policy Faults"> <Step> <Name>AM-CustomErrorResponse</Name> <Condition>(fault.name Matches "ScriptExecutionFailed") </Condition> </Step> <Condition>(pythonscript.PythonScript-1.failed = true) </Condition> </FaultRule>
配額政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 | 修正 |
---|---|---|---|
policies.ratelimit.FailedToResolveQuotaIntervalReference |
500 | 如未在配額政策中定義 <Interval> 元素,就會發生這個問題。此為必要元素,用來指定配額適用的時間間隔。時間間隔可以是以 <TimeUnit> 元素定義的分鐘、小時、天、週或月。 |
build |
policies.ratelimit.FailedToResolveQuotaIntervalTimeUnitReference |
500 | 如未在配額政策中定義 <TimeUnit> 元素,就會發生這個問題。此為必要元素,用於指定配額適用的時間單位。時間間隔可以是分鐘、小時、天、週或月。 |
build |
policies.ratelimit.InvalidMessageWeight |
500 | 如果透過流程變數指定的 <MessageWeight> 元素值無效 (非整數值),就會發生這個問題。 |
build |
policies.ratelimit.QuotaViolation |
500 | 超過配額限制。 | 不適用 |
部署錯誤
錯誤名稱 | 原因 | 修正 |
---|---|---|
InvalidQuotaInterval |
如果 <Interval> 元素中指定的配額間隔不是整數,API Proxy 的部署就會失敗。舉例來說,如果在 <Interval> 元素中指定的配額間隔為 0.1,API Proxy 的部署就會失敗。 |
build |
InvalidQuotaTimeUnit |
如果不支援 <TimeUnit> 元素中指定的時間單位,API Proxy 的部署就會失敗。支援的時間單位為 minute 、hour 、day 、week 和 month 。 |
build |
InvalidQuotaType |
如果 <Quota> 元素中 type 屬性指定的配額類型無效,API Proxy 的部署就會失敗。支援的配額類型為 default 、calendar 、flexi 和 rollingwindow 。 |
build |
InvalidStartTime |
如果 <StartTime> 元素中指定的時間格式無效,API Proxy 的部署就會失敗。有效的格式為 yyyy-MM-dd HH:mm:ss ,採 ISO 8601 日期和時間格式。舉例來說,如果 <StartTime> 元素中指定的時間是 7-16-2017 12:00:00 ,API Proxy 的部署就會失敗。 |
build |
StartTimeNotSupported |
如果指定 <StartTime> 元素的配額類型不是 calendar 類型,API Proxy 的部署就會失敗。<StartTime> 元素僅適用於 calendar 配額類型。舉例來說,如果 <Quota> 元素中的 type 屬性設為 flexi 或 rolling window ,API Proxy 的部署就會失敗。 |
build |
InvalidTimeUnitForDistributedQuota |
如果 <Distributed> 元素設為 true ,且 <TimeUnit> 元素設為 second ,API Proxy 的部署就會失敗。分散式配額無法設定「second 」時間單位。 |
build |
InvalidSynchronizeIntervalForAsyncConfiguration |
如果在配額政策的 <AsynchronousConfiguration> 元素中針對 <SyncIntervalInSeconds> 元素指定的值小於零,API Proxy 部署就會失敗。 |
build |
InvalidAsynchronizeConfigurationForSynchronousQuota |
如果配額政策中的 <AsynchronousConfiguration> 元素值設為 true ,且使用 <AsynchronousConfiguration> 元素定義非同步設定,則 API Proxy 部署作業會失敗。 |
build |
錯誤變數
系統會在這項政策觸發錯誤時設定這些變數。詳情請參閱「政策錯誤的注意事項」。
錯誤回應範例
{ "fault":{ "detail":{ "errorcode":"policies.ratelimit.QuotaViolation" }, "faultstring":"Rate limit quota violation. Quota limit exceeded. Identifier : _default" } }
故障規則示例
<FaultRules> <FaultRule name="Quota Errors"> <Step> <Name>JavaScript-1</Name> <Condition>(fault.name Matches "QuotaViolation") </Condition> </Step> <Condition>ratelimit.Quota-1.failed=true</Condition> </FaultRule> </FaultRules>
重設配額政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 | 修正 |
---|---|---|---|
policies.resetquota.InvalidRLPolicy |
500 | 重設配額政策的 <Quota> 元素中指定的配額政策未在 API Proxy 中定義,因此不適用於流程。<Quota> 是必要元素,用於識別應透過「重設配額」政策更新的目標配額政策。 |
build |
policies.resetquota.FailedToResolveAllowCountRef |
不適用 | 如果參照的變數含有政策 <Allow> 元素中的允許計數,就無法將參照的變數解析為值。此為必要元素,並指定配額計數器的金額。 |
build |
policies.resetquota.FailedToResolveRLPolicy |
500 | 無法解析 <Quota> 元素中 ref 屬性所參照的變數。 |
build |
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 原因 | 修正 |
---|---|---|
InvalidCount |
如果重設配額政策的 <Allow> 元素中指定的計數值不是整數,API Proxy 部署就會失敗。 |
build |
GrowFault 政策
本節說明這項政策觸發錯誤時傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱 政策錯誤須知和處理錯誤。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 |
---|---|---|
steps.raisefault.RaiseFault |
500 | 查看錯誤字串。 |
部署錯誤
無。
錯誤變數
這些變數是在執行階段錯誤發生時設定。詳情請參閱「政策錯誤的注意事項」。
Variables | 地點 | 範例 |
---|---|---|
fault.name="fault_name" |
fault_name 是錯誤的名稱,如上方的執行階段錯誤表格所示。錯誤名稱是錯誤代碼的最後一個部分。 | fault.name = "RaiseFault" |
raisefault.policy_name.failed |
policy_name 是擲回錯誤的政策由使用者指定的名稱。 | raisefault.RF-ThrowError.failed = true |
錯誤回應範例
{ "fault":{ "detail":{ "errorcode":"steps.raisefault.RaiseFault" }, "faultstring":"Raising fault. Fault name: [name]" } }
regexProtection 政策
本節說明這項政策觸發錯誤時,傳回的錯誤代碼和訊息,以及 Edge 設定的錯誤變數。如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。如要擷取錯誤並引發自訂錯誤,請為政策根元素設定 continueOnError="true"
屬性。詳情請參閱「
政策錯誤須知」和「處理錯誤」。
Edge 政策傳回的錯誤遵循一致的格式,詳情請參閱錯誤代碼參考資料。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | 訊息 |
---|---|
ExecutionFailed | 無法執行 RegularExpressionProtection StepDefinition {0}。原因:{1} |
InstantiationFailed | 無法將 RegularExpressionProtection StepDefinition {0} 例項化 |
NonMessageVariable | 變數「{0}」無法解析為訊息 |
SourceMessageNotAvailable | {0} 訊息不適用於 RegularExpressionProtection StepDefinition{1} |
ThreatDetected | 在 {0} 中偵測到規則運算式威脅:規則運算式:{1} 輸入:{2} |
VariableResolutionFailed | 無法解析變數「{0}」 |
部署錯誤
錯誤代碼 | 訊息 | 修正 |
---|---|---|
CannotBeConvertedToNodeset | regexProtection {0}:xpath {1} 的結果無法轉換為 nodeset。 內容{2} | build |
DuplicatePrefix | regexProtection {0}:前置字元重複 {1} | build |
EmptyJSONPathExpression | regexProtection {0}:空白 JSONPath 運算式 | build |
EmptyXPathExpression | regexProtection {0}:空白的 XPath 運算式 | build |
InvalidRegularExpression | regexProtection {0}:無效的規則運算式 {1},內容 {2} | build |
JSONPathCompilationFailed | regexProtection {0}:無法編譯 jsonpath {1}。內容{2} | build |
NONEmptyPrefixMappedToEmptyURI | regexProtection {0}:非空白前置字串 {1} 無法對應至空白 URI | build |
NoPatternsToEnforce | regexProtection {0}:{1} 中沒有可強制執行的模式 | build |
NothingToEnforce | RegularExpressionProtection {0}:至少須有一個 URIPath、QueryParam、Header、FormParam、XMLPayload 和 JSONPayload | build |
XPathCompilationFailed | regexProtection {0}:無法編譯 xpath {1}。內容{2} | build |
錯誤變數
系統會在這項政策觸發錯誤時設定這些變數。詳情請參閱「政策錯誤的注意事項」。
Variables | 地點 | 範例 |
---|---|---|
fault.name="fault_name" |
fault_name 是錯誤的名稱,如上表所列。 | fault.name Matches "ThreatDetected" |
regularexpressionprotection.policy_name.failed |
policy_name 是擲回錯誤的政策使用者指定的名稱。 | regularexpressionprotection.Regular-Expressions-Protection-1.failed = true |
SOAPMessageValidation 政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 | 修正 |
---|---|---|---|
steps.messagevalidation.SourceMessageNotAvailable |
500 |
如果政策的
|
build |
steps.messagevalidation.NonMessageVariable |
500 |
如果 SOAPMessageValidation 政策中的 訊息類型變數代表整個 HTTP 要求和回應。內建 Edge 流程變數 |
build |
steps.messagevalidation.Failed |
500 | 如果 SOAPMessageValidation 政策無法針對 XSD 結構定義或 WSDL 定義驗證輸入訊息酬載,就會發生這個錯誤。如果酬載訊息中有格式錯誤的 JSON 或 XML,也會發生這種狀況。 | build |
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 原因 | 修正 |
---|---|---|
InvalidResourceType |
SOAPMessageValidation 政策中的 <ResourceURL> 元素會設為政策不支援的資源類型。
|
build |
ResourceCompileFailed |
在 SOAPMessageValidation 政策的 <ResourceURL> 元素中參照的資源指令碼中,有一項錯誤導致無法編譯。
|
build |
RootElementNameUnspecified |
SOAPMessageValidation 政策中的 <Element> 元素不含根元素的名稱。 |
build |
InvalidRootElementName |
SOAPMessageValidation 政策中的 <Element> 元素包含的根元素名稱不符合 XML 規則的有效元素命名規則。 |
build |
SAMLAssertion 政策
本節說明這項政策觸發錯誤時傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 原因 | 修正 |
---|---|---|
SourceNotConfigured |
下列一或多項驗證 SAML 宣告政策元素未定義或空白:<Source> 、<XPath> 、<Namespaces> 、<Namespace> 。
|
build |
TrustStoreNotConfigured |
如果 <TrustStore> 元素為空白或未在 ValidationSAMLAssertion 政策中指定,代表 API Proxy 部署失敗。
必須提供有效的 Trust Store。
|
build |
NullKeyStoreAlias |
如果在 Generate SAML 斷言政策的 <Keystore> 元素中,含有空白或 <Alias> 的子元素,API Proxy 的部署作業就會失敗。必須提供有效的 KeyStore 別名。
|
build |
NullKeyStore |
如果 <Name> 的子元素 <Name> 為空白,或是未在 GenerateSAMLAssertion 政策的 <Keystore> 元素中指定,代表 API Proxy 部署失敗。必須提供有效的 KeyStore 名稱。 |
build |
NullIssuer |
如果 <Issuer> 元素為空白,或是未在 Generate SAML 斷言政策中指定,則表示 API Proxy 部署失敗。必須提供有效的 <Issuer> 值。 |
build |
錯誤變數
這些變數是在執行階段錯誤發生時設定。詳情請參閱「政策錯誤的注意事項」。
Variables | 地點 | 範例 |
---|---|---|
fault.name="fault_name" |
fault_name 是錯誤的名稱 。錯誤名稱是錯誤碼的最後一個部分。 | fault.name = "InvalidMediaTpe" |
GenerateSAMLAssertion.failed |
如果是驗證過的 SAML 宣告政策設定,錯誤前置字串為 ValidateSAMLAssertion 。 |
GenerateSAMLAssertion.failed = true |
錯誤回應範例
{ "fault": { "faultstring": "GenerateSAMLAssertion[GenSAMLAssert]: Invalid media type", "detail": { "errorcode": "steps.saml.generate.InvalidMediaTpe" } } }
故障規則示例
<FaultRules> <FaultRule name="invalid_saml_rule"> <Step> <Name>invalid-saml</Name> </Step> <Condition>(GenerateSAMLAssertion.failed = "true")</Condition> </FaultRule> </FaultRules>
服務摘要政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 | 修正 |
---|---|---|---|
steps.servicecallout.ExecutionFailed |
500 |
造成這個錯誤的可能原因如下:
|
build |
steps.servicecallout.RequestVariableNotMessageType |
500 | 政策中指定的 Request 變數不是「Message」類型。例如,如果是字串或其他非訊息類型,系統就會顯示這個錯誤。 | build |
steps.servicecallout.RequestVariableNotRequestMessageType |
500 | 政策中指定的 Request 變數不是要求訊息類型。舉例來說,如果是「回應」類型,系統就會顯示這個錯誤。 | build |
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 原因 | 修正 |
---|---|---|
URLMissing |
<HTTPTargetConnection> 中的 <URL> 元素缺少或空白。 |
build |
ConnectionInfoMissing |
如果政策沒有 <HTTPTargetConnection> 或 <LocalTargetConnection> 元素,就會發生這個錯誤。 |
build |
InvalidTimeoutValue |
如果 <Timeout> 值為負或零,就會發生這個錯誤。 |
build |
錯誤變數
這些變數是在執行階段錯誤發生時設定。詳情請參閱「政策錯誤的注意事項」。
錯誤回應範例
{ "fault":{ "detail":{ "errorcode":"steps.servicecallout.RequestVariableNotMessageType" }, "faultstring":"ServiceCallout[ServiceCalloutGetMockResponse]: request variable data_str value is not of type Message" } }
故障規則示例
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="RequestVariableNotMessageType"> <Step> <Name>AM-RequestVariableNotMessageType</Name> </Step> <Condition>(fault.name = "RequestVariableNotMessageType")</Condition> </FaultRule>
《刺客阿勒斯特》政策
本節說明這項政策觸發錯誤時傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 | 修正 |
---|---|---|---|
policies.ratelimit.FailedToResolveSpikeArrestRate |
500 |
如果參照的變數在 <Rate> 元素中包含費率設定的變數,並無法解析為「尖峰流量防範」政策中的值,就會發生這個錯誤。此為必要元素,用來以 intpm 或 intps 的格式指定尖峰時段逮捕率。 |
build |
policies.ratelimit.InvalidMessageWeight |
500 |
如果透過流程變數為 <MessageWeight> 元素指定的值無效 (非整數值),就會發生這個錯誤。 |
build |
policies.ratelimit.SpikeArrestViolation |
429 |
超過頻率限制。 |
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 原因 | 修正 |
---|---|---|
InvalidAllowedRate |
如果尖峰流量防範政策的 <Rate> 元素中指定的尖峰逮捕率不是整數,或者費率沒有 ps 或 pm 做為後置字串,表示 API Proxy 部署作業會失敗。 |
build |
錯誤變數
這些變數是在執行階段錯誤發生時設定。詳情請參閱「政策錯誤的注意事項」。
Variables | 地點 | 範例 |
---|---|---|
fault.name="fault_name" |
fault_name 是錯誤的名稱,如上方的執行階段錯誤表格所示。錯誤名稱是錯誤代碼的最後一個部分。 | fault.name Matches "SpikeArrestViolation" |
ratelimit.policy_name.failed |
policy_name 是擲回錯誤的政策使用者指定的名稱。 | ratelimit.SA-SpikeArrestPolicy.failed = true |
錯誤回應範例
錯誤回應範例如下:
{ "fault":{ "detail":{ "errorcode":"policies.ratelimit.SpikeArrestViolation" }, "faultstring":"Spike arrest violation. Allowed rate : 10ps" } }
故障規則示例
以下是處理 SpikeArrestViolation
錯誤的錯誤規則範例:
<FaultRules> <FaultRule name="Spike Arrest Errors"> <Step> <Name>JavaScript-1</Name> <Condition>(fault.name Matches "SpikeArrestViolation") </Condition> </Step> <Condition>ratelimit.Spike-Arrest-1.failed=true</Condition> </FaultRule> </FaultRules>
StatsCollector 政策
本節說明這項政策觸發錯誤時設定的錯誤訊息和流程變數。如果您正在開發 Proxy 的錯誤規則,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
無。
部署錯誤
錯誤名稱 | 原因 | 修正 |
---|---|---|
UnsupportedDatatype |
如果統計資料收集器政策的 <Statistic> 元素中的 ref 屬性指定變數類型,則 API Proxy 部署作業會失敗。支援的資料類型為 string 、integer 、float 、long 、double 和 boolean 。 |
build |
InvalidName |
如果名稱用於參照在統計資料收集器政策 <Statistic> 元素中定義的指定變數收集的資料,則與系統定義的變數發生衝突,API Proxy 部署作業就會失敗。部分已知的系統定義的變數為 organization 和 environment 。 |
build |
DatatypeMissing |
如果缺少統計資料收集器政策的 <Statistic> 元素中 ref 屬性指定的變數類型,則 API Proxy 部署作業會失敗。 |
build |
錯誤變數
無。
VerifyAPIKey 政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 |
---|---|---|
keymanagement.service.CompanyStatusNotActive |
401 | 只要是與開發人員應用程式相關聯,且該金鑰正在使用的 API 金鑰的公司,就處於無效狀態。公司狀態設為「無效」後,您就無法存取與該公司相關聯的開發人員或應用程式。機構組織管理員可以使用 Management API 變更公司的狀態。請參閱設定公司的狀態一文。 |
keymanagement.service.DeveloperStatusNotActive |
401 |
建立開發人員應用程式的開發人員應用程式,如果該開發人員使用的是您使用的 API 金鑰,則會處於無效狀態。應用程式開發人員的狀態設為無效時,由該開發人員建立的所有「開發人員應用程式」都會遭到停用。具備適當權限 (例如機構管理員) 的管理員使用者,可以透過下列幾種方式變更開發人員的狀態:
|
keymanagement.service.invalid_client-app_not_approved |
401 | 與 API 金鑰相關聯的開發人員應用程式已撤銷。撤銷的應用程式無法存取任何 API 產品,也無法叫用 Apigee Edge 代管的任何 API。機構組織管理員可以使用 management API 變更開發人員應用程式的狀態。請參閱 核准或撤銷開發人員應用程式。 |
oauth.v2.FailedToResolveAPIKey |
401 | 這項政策預期會在政策 <APIKey> 元素指定的變數中找到 API 金鑰。 當預期的變數不存在時,就會發生這個錯誤 (無法解決)。 |
oauth.v2.InvalidApiKey |
401 | Edge 已接收到無效的 API 金鑰。Edge 在資料庫中查詢金鑰時,必須與要求中傳送的 完全相符。如果 API 之前可以運作,請確認金鑰並未重新產生。如果重新產生金鑰,如果您嘗試使用舊金鑰,就會看到這則錯誤訊息。詳情請參閱「註冊應用程式及管理 API 金鑰」。 |
oauth.v2.InvalidApiKeyForGivenResource |
401 | Edge 收到且有效的 API 金鑰,但該金鑰與您在某項產品的 API Proxy 中連結至您的 API Proxy 的開發人員應用程式中的核准金鑰不同。 |
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 原因 |
---|---|
SpecifyValueOrRefApiKey |
<APIKey> 元素未指定值或鍵。 |
錯誤變數
這些變數是在執行階段錯誤發生時設定。詳情請參閱「政策錯誤的注意事項」。
錯誤回應示例
{ "fault":{ "faultstring":"Invalid ApiKey", "detail":{ "errorcode":"oauth.v2.InvalidApiKey" } } }
{ "fault":{ "detail":{ "errorcode":"keymanagement.service.DeveloperStatusNotActive" }, "faultstring":"Developer Status is not Active" } }
故障規則示例
<FaultRule name="FailedToResolveAPIKey"> <Step> <Name>AM-FailedToResolveAPIKey</Name> </Step> <Condition>(fault.name Matches "FailedToResolveAPIKey") </Condition> </FaultRule>
VerifyJWS 政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 發生時機 |
---|---|---|
steps.jws.AlgorithmInTokenNotPresentInConfiguration |
401 | 驗證政策採用多個演算法時發生 |
steps.jws.AlgorithmMismatch |
401 | 產生政策在標頭中指定的演算法與驗證政策中預期的演算法不符。指定的演算法必須相符。 |
steps.jws.ContentIsNotDetached |
401 | 當 JWS 不包含已卸離的內容酬載時,系統會指定 <DetachedContent> 。 |
steps.jws.FailedToDecode |
401 | 政策無法解碼 JWS。JWS 可能已損毀。 |
steps.jws.InsufficientKeyLength |
401 | 適用於小於 32 個位元組的 HS256 演算法 |
steps.jws.InvalidClaim |
401 | 可能是因為缺少版權聲明或版權聲明不符,或是缺少標題或標頭不符的情形。 |
steps.jws.InvalidCurve |
401 | 索引鍵指定的曲線不適用於橢圓曲線演算法。 |
steps.jws.InvalidJsonFormat |
401 | JWS 標頭含有無效的 JSON。 |
steps.jws.InvalidJws |
401 | 當 JWS 簽名驗證失敗時,就會發生這個錯誤。 |
steps.jws.InvalidPayload |
401 | JWS 酬載無效。 |
steps.jws.InvalidSignature |
401 | 省略 <DetachedContent> ,且 JWS 具有卸離的內容酬載。 |
steps.jws.KeyIdMissing |
401 | 驗證政策會使用 JWKS 做為公開金鑰來源,但已簽署的 JWS 不會在標頭中加入 kid 屬性。 |
steps.jws.KeyParsingFailed |
401 | 無法從指定的金鑰資訊剖析公開金鑰。 |
steps.jws.MissingPayload |
401 | 缺少 JWS 酬載。 |
steps.jws.NoAlgorithmFoundInHeader |
401 | JWS 省略演算法標頭時發生。 |
steps.jws.NoMatchingPublicKey |
401 | 驗證政策會使用 JWKS 做為公開金鑰來源,但已簽署 JWS 中的 kid 並未列在 JWKS 中。 |
steps.jws.UnhandledCriticalHeader |
401 | 透過驗證 JWS 政策在 crit 標頭中找到的標頭未列於 KnownHeaders 中。 |
steps.jws.UnknownException |
401 | 發生不明例外狀況。 |
steps.jws.WrongKeyType |
401 | 指定的金鑰類型有誤。舉例來說,如果您為橢圓曲線演算法指定 RSA 金鑰,或是為 RSA 演算法指定曲線鍵, |
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 發生時機 |
---|---|
InvalidAlgorithm |
有效值僅為:RS256、RS384、RS512、PS256、PS384、PS512、ES256、ES384、ES512、HS256、HS384、HS512。 |
|
其他可能的部署錯誤。 |
錯誤變數
這些變數是在執行階段錯誤發生時設定。詳情請參閱「政策錯誤的注意事項」。
Variables | 地點 | 範例 |
---|---|---|
fault.name="fault_name" |
fault_name 是錯誤的名稱,如上方的「執行階段錯誤」表格所示。錯誤名稱是錯誤碼的最後一個部分。 | fault.name Matches "TokenExpired" |
JWS.failed |
當測試失敗時,所有 JWS 政策都會設定相同的變數。 | jws.JWS-Policy.failed = true |
錯誤回應範例
如要處理錯誤,最佳做法是納入錯誤回應的 errorcode
部分。請勿依賴 faultstring
中的文字,因為文字可能會有所變動。
故障規則示例
<FaultRules> <FaultRule name="JWS Policy Errors"> <Step> <Name>JavaScript-1</Name> <Condition>(fault.name Matches "TokenExpired")</Condition> </Step> <Condition>JWS.failed=true</Condition> </FaultRule> </FaultRules>
驗證 JWT 政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 發生時機 |
---|---|---|
steps.jwt.AlgorithmInTokenNotPresentInConfiguration |
401 | 驗證政策採用多個演算法時發生。 |
steps.jwt.AlgorithmMismatch |
401 | 產生政策中指定的演算法與驗證政策中預期的演算法不符。指定的演算法必須相符。 |
steps.jwt.FailedToDecode |
401 | 政策無法解碼 JWT。JWT 可能損毀。 |
steps.jwt.GenerationFailed |
401 | 政策無法產生 JWT。 |
steps.jwt.InsufficientKeyLength |
401 | 如果金鑰在 HS256 演算法中的資料量小於 32 個位元組,HS386 演算法需少於 48 個位元組,HS512 演算法則小於 64 個位元組。 |
steps.jwt.InvalidClaim |
401 | 可能是因為缺少版權聲明或版權聲明不符,或是缺少標題或標頭不符的情形。 |
steps.jwt.InvalidCurve |
401 | 索引鍵指定的曲線不適用於橢圓曲線演算法。 |
steps.jwt.InvalidJsonFormat |
401 | 標頭或酬載含有無效的 JSON。 |
steps.jwt.InvalidToken |
401 | 如果 JWT 簽名驗證失敗,就會發生這個錯誤。 |
steps.jwt.JwtAudienceMismatch |
401 | 權杖驗證失敗,目標對象聲明失敗。 |
steps.jwt.JwtIssuerMismatch |
401 | 核發機構憑證驗證失敗。 |
steps.jwt.JwtSubjectMismatch |
401 | 驗證權杖的主體擁有權聲明失敗。 |
steps.jwt.KeyIdMissing |
401 | 驗證政策會使用 JWKS 做為公開金鑰來源,但已簽署的 JWT 不會在標頭中加入 kid 屬性。 |
steps.jwt.KeyParsingFailed |
401 | 無法從指定的金鑰資訊剖析公開金鑰。 |
steps.jwt.NoAlgorithmFoundInHeader |
401 | 發生於 JWT 未包含演算法標頭時。 |
steps.jwt.NoMatchingPublicKey |
401 | 驗證政策會使用 JWKS 做為公開金鑰來源,但已簽署 JWT 中的 kid 並未列在 JWKS 中。 |
steps.jwt.SigningFailed |
401 | 在 GenerateJWT 中,金鑰大小必須小於 HS384 或 HS512 演算法的下限 |
steps.jwt.TokenExpired |
401 | 政策會嘗試驗證過期的權杖。 |
steps.jwt.TokenNotYetValid |
401 | 憑證尚未生效。 |
steps.jwt.UnhandledCriticalHeader |
401 | 在 crit 標頭中驗證 JWT 政策找到的標頭不在 KnownHeaders 中。 |
steps.jwt.UnknownException |
401 | 發生不明例外狀況。 |
steps.jwt.WrongKeyType |
401 | 指定的金鑰類型有誤。舉例來說,如果您為橢圓曲線演算法指定 RSA 金鑰,或是為 RSA 演算法指定曲線鍵, |
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 原因 | 修正 |
---|---|---|
InvalidNameForAdditionalClaim |
如果 <AdditionalClaims> 元素的子元素 <Claim> 中使用的憑證聲明是下列任一註冊名稱,部署作業就會失敗:kid 、iss 、sub 、aud 、iat 、exp 、nbf 或 jti 。 |
build |
InvalidTypeForAdditionalClaim |
如果 <AdditionalClaims> 元素子項元素 <Claim> 中使用的憑證聲明不是 string 、number 、boolean 或 map 類型,部署作業就會失敗。
|
build |
MissingNameForAdditionalClaim |
如未在 <AdditionalClaims> 元素的子元素 <Claim> 中指定憑證附加資訊,部署作業就會失敗。
|
build |
InvalidNameForAdditionalHeader |
當 <AdditionalClaims> 元素的子元素 <Claim> 使用的聲明名稱是 alg 或 typ 時,就會發生這個錯誤。 |
build |
InvalidTypeForAdditionalHeader |
如果 <AdditionalClaims> 元素子項元素 <Claim> 中使用的聲明類型不是 string 、number 、boolean 或 map ,部署就會失敗。 |
build |
InvalidValueOfArrayAttribute |
如果 <AdditionalClaims> 元素中子元素 <Claim> 的陣列屬性值未設為 true 或 false ,就會發生這個錯誤。 |
build |
InvalidValueForElement |
如果 <Algorithm> 元素中指定的值不是支援的值,部署作業就會失敗。
|
build |
MissingConfigurationElement |
如果 <PrivateKey> 元素未與 RSA 系列演算法搭配使用,或是 <SecretKey> 元素並未與 HS 系列演算法搭配使用,就會發生這個錯誤。 |
build |
InvalidKeyConfiguration |
如果未在 <PrivateKey> 或 <SecretKey> 元素中定義子項元素 <Value> ,部署就會失敗。 |
build |
EmptyElementForKeyConfiguration |
如果 <PrivateKey> 或 <SecretKey> 元素子項元素 <Value> 的 ref 屬性為空白或未指定,則部署作業將會失敗。 |
build |
InvalidConfigurationForVerify |
如果在 <SecretKey> 元素中定義 <Id> 元素,就會發生這個錯誤。 |
build |
InvalidEmptyElement |
如果驗證 JWT 政策的 <Source> 元素為空白,就會發生這個錯誤。如果有,則必須以 Edge 流程變數名稱定義。 |
build |
InvalidPublicKeyValue |
如果 <PublicKey> 元素子項元素 <JWKS> 中使用的值未使用 RFC 7517 中指定的有效格式,部署作業就會失敗。
|
build |
InvalidConfigurationForActionAndAlgorithm |
如果將 <PrivateKey> 元素與 HS 系列演算法搭配使用,或是將 <SecretKey> 元素與 RSA Family 演算法搭配使用,部署作業就會失敗。 |
build |
錯誤變數
這些變數是在執行階段錯誤發生時設定。詳情請參閱「政策錯誤的注意事項」。
Variables | 地點 | 範例 |
---|---|---|
fault.name="fault_name" |
fault_name 是錯誤的名稱,如上方的「執行階段錯誤」表格所示。錯誤名稱是錯誤碼的最後一個部分。 | fault.name Matches "TokenExpired" |
JWT.failed |
所有 JWT 政策設定失敗時,都會設定相同的變數。 | JWT.failed = true |
錯誤回應範例
如要處理錯誤,最佳做法是納入錯誤回應的 errorcode
部分。請勿依賴 faultstring
中的文字,因為文字可能會有所變動。
故障規則示例
<FaultRules> <FaultRule name="JWT Policy Errors"> <Step> <Name>JavaScript-1</Name> <Condition>(fault.name Matches "TokenExpired")</Condition> </Step> <Condition>JWT.failed=true</Condition> </FaultRule> </FaultRules>
XMLThreatProtection 政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 | 修正 |
---|---|---|---|
steps.xmlthreatprotection.ExecutionFailed |
500 | XMLThreatProtection 政策可能會擲回多種不同類型的 ExecutionFailed 錯誤。 這類錯誤大多發生在政策中設定的特定門檻。這類錯誤包括:元素名稱長度、子項數量、節點深度、屬性計數、屬性名稱長度等。如要查看完整清單,請參閱「XMLThreatProtection 政策執行階段錯誤疑難排解」主題。 | build |
steps.xmlthreatprotection.InvalidXMLPayload |
500 |
如果 XMLThreatProtection 政策的 <Source> 元素指定的輸入訊息酬載不是有效的 XML 文件,就會發生這個錯誤。 |
build |
steps.xmlthreatprotection.SourceUnavailable |
500 |
如果 <Source> 元素中指定的 message 變數是下列任一,就會發生這個錯誤:
|
build |
steps.xmlthreatprotection.NonMessageVariable |
500 |
如果 <Source> 元素設為不屬於 message 類型的變數,就會發生這個錯誤。 |
build |
附註:
- 錯誤名稱「ExecutionFailed」是預設的錯誤名稱,無論偵測到的錯誤類型為何,系統都會傳回這個名稱。不過,您可以設定機構層級屬性,以變更這項預設值。設定這個屬性後,錯誤名稱將反映實際錯誤。例如「TextExceeded」或「AttrValueExceeded」。詳情請參閱「使用注意事項」一節。
- 預設狀態為 500 HTTP。不過,您可將機構層級屬性,將要求流程錯誤的 HTTP 狀態變更為 400。詳情請參閱「使用注意事項」一節。
部署錯誤
無。
錯誤變數
這些變數是在執行階段錯誤發生時設定。詳情請參閱「政策錯誤的注意事項」。
錯誤回應範例
{ "fault": { "faultstring": "XMLThreatProtection[XPT-SecureRequest]: Execution failed. reason: XMLThreatProtection[XTP-SecureRequest]: Exceeded object entry name length at line 2", "detail": { "errorcode": "steps.xmlthreatprotection.ExecutionFailed" } } }
故障規則示例
<FaultRule name="XML Threat Protection Policy Faults"> <Step> <Name>AM-CustomErrorResponse</Name> <Condition>(fault.name Matches "ExecutionFailed") </Condition> </Step> <Condition>(xmlattack.XPT-SecureRequest.failed = true) </Condition> </FaultRule>
XMLtoJSON 政策
本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 | 修正 |
---|---|---|---|
steps.xmltojson.ExecutionFailed |
500 | 如果輸入的酬載 (XML) 空白,或是輸入的 XML 無效或格式錯誤,就會發生這個錯誤。 | build |
steps.xmltojson.InCompatibleType |
500 | 如果 <Source> 元素中定義的變數類型與 <OutputVariable> 元素不同,就會發生這個錯誤。請務必指定 <Source> 元素中包含的變數類型,且 <OutputVariable> 元素必須相符。 |
build |
steps.xmltojson.InvalidSourceType |
500 | 如果用於定義 <Source> 元素的變數類型無效,就會發生這個錯誤。有效的變數類型為訊息和字串。 |
build |
steps.xmltojson.OutputVariableIsNotAvailable |
500 | 如果 XML 至 JSON 政策的 <Source> 元素中指定的變數為類型字串,且 <OutputVariable> 元素未定義,就會發生這個錯誤。如果 <Source> 元素中定義的變數為類型字串,則 <OutputVariable> 元素為必要元素。 |
build |
steps.xmltojson.SourceUnavailable |
500 |
如果在將 XML 至 JSON 政策的 <Source> 元素中,指定 message 變數,就會發生這個錯誤:
|
build |
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 原因 | 修正 |
---|---|---|
EitherOptionOrFormat |
如果未在 XML 中對 JSON 政策宣告 <Options> 或 <Format> 的其中一個元素,API Proxy 的部署作業就會失敗。 |
build |
UnknownFormat |
如果 XML 到 JSON 政策中的 <Format> 元素定義了不明格式,API Proxy 部署就會失敗。預先定義的格式包括:xml.com 、yahoo 、google 和 badgerFish 。 |
build |
錯誤變數
這些變數是在執行階段錯誤發生時設定。詳情請參閱「政策錯誤的注意事項」。
錯誤回應範例
{ "fault": { "faultstring": "XMLToJSON[XMLtoJSON-1]: Source xyz is not available", "detail": { "errorcode": "steps.xml2json.SourceUnavailable" } } }
故障規則示例
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="XML to JSON Faults"> <Step> <Name>AM-SourceUnavailableMessage</Name> <Condition>(fault.name Matches "SourceUnavailable") </Condition> </Step> <Step> <Name>AM-BadXML</Name> <Condition>(fault.name = "ExecutionFailed")</Condition> </Step> <Condition>(xmltojson.XMLtoJSON-1.failed = true) </Condition> </FaultRule>
XSLTransform 政策
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 | 修正 |
---|---|---|---|
steps.xsl.XSLSourceMessageNotAvailable |
500 |
如果 XSL 轉換政策的 <Source> 元素中指定的訊息或字串變數超出範圍 (不適用於執行政策的特定流程),或是無法解析 (未定義),就會發生這個錯誤。 |
build |
steps.xsl.XSLEvaluationFailed |
500 | 如果輸入的 XML 酬載無法使用/格式錯誤,或是 XSLTransform 政策失敗/無法依據 XSL 檔案中提供的轉換規則轉換輸入 XML 檔案,就會發生這個錯誤。導致 XSLTransform 政策失敗的原因有很多。錯誤訊息失敗的原因會提供原因詳細資訊。 | build |
部署錯誤
若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。
錯誤名稱 | 原因 | 修正 |
---|---|---|
XSLEmptyResourceUrl |
如果 XSL 轉換政策中的 <ResourceURL> 元素為空白,則 API Proxy 的部署作業會失敗。 |
build |
XSLInvalidResourceType |
如果 XSL 轉換政策的 <ResourceURL> 元素中指定的資源類型不屬於 xsl 類型,API Proxy 的部署就會失敗。 |
build |