您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件。 資訊
AccessControl 政策
本節說明在這項政策觸發錯誤時,所傳回的錯誤代碼和錯誤訊息,以及 Edge 所設定的錯誤變數。 請務必瞭解這份資訊,以便瞭解您是否要擬定錯誤規則, 處理錯誤詳情請參閱這篇文章 瞭解政策錯誤和處理方式 發生錯誤
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤程式碼 | HTTP 狀態 | 原因 | 修正 |
---|---|---|---|
accesscontrol.IPDeniedAccess |
403 | 用戶端 IP 位址或已傳入的 IP 位址
在 API 要求中,與以下位置的 <SourceAddress> 元素中指定的 IP 位址相符:
存取權控管政策的 <MatchRule> 元素,以及action
<MatchRule> 元素已設為 DENY 。 |
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 在這個政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。如果您要開發錯誤處理規則來處理錯誤,就必須瞭解這項資訊。詳情請參閱政策錯誤須知和處理錯誤。
執行階段錯誤
執行政策時,可能會發生這些錯誤。
錯誤代碼 | HTTP 狀態 | 原因 | 修正 |
---|---|---|---|
steps.assignmessage.SetVariableFailed |
500 | 這項政策無法設定變數。請參閱錯誤字串,瞭解未解析變數的名稱。 | |
steps.assignmessage.VariableOfNonMsgType |
500 |
如果 訊息類型變數代表整個 HTTP 要求和回應。內建的 Edge 資料流變數 |
build |
steps.assignmessage.UnresolvedVariable |
500 |
如果在指派訊息政策中指定的變數為下列任一情況,就會發生這項錯誤:
|
build |
部署錯誤
部署含有這項政策的 Proxy 時,可能會發生這些錯誤。
錯誤名稱 | 原因 | 修正 |
---|---|---|
InvalidIndex |
如果指派訊息政策的 <Copy> 和/或 <Remove> 元素中指定的索引為 0 或負數,則 API Proxy 的部署作業會失敗。 |
build |
InvalidVariableName |
如果子元素 <Name> 為空白,或是未在 <AssignVariable> 元素中指定,則 API 代理程式無法部署,因為沒有有效的變數名稱可用來指派值。必須提供有效的變數名稱。 |
build |
InvalidPayload |
政策中指定的酬載無效。 |
錯誤變數
當這項政策在執行階段觸發錯誤時,系統會設定這些變數。詳情請參閱「政策錯誤須知」。
變數 | 地點 | 範例 |
---|---|---|
fault.name="fault_name" |
fault_name 是錯誤名稱,如上方「執行階段錯誤」表格所列。錯誤名稱是錯誤代碼的最後一個部分。 | fault.name Matches "UnresolvedVariable" |
assignmessage.policy_name.failed |
policy_name 是使用者指定的政策名稱,該政策會擲回錯誤。 | assignmessage.AM-SetResponse.failed = true |
錯誤回應範例
{ "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 在這個政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 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.name="fault_name" |
fault_name 是錯誤名稱,如上方「執行階段錯誤」表格所列。錯誤名稱是錯誤代碼的最後一個部分。 | fault.name Matches "UnresolvedVariable" |
BasicAuthentication.policy_name.failed |
policy_name 是擲回錯誤的政策的使用者指定名稱。 | BasicAuthentication.BA-Authenticate.failed = true |
錯誤回應範例
{ "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} 注意:左側顯示的 Fault 程式碼正確無誤,但 包含錯字 (「limt」)。請務必使用這裡所示的程式碼 , |
部署錯誤
錯誤名稱 | 發生時間 |
---|---|
InvalidCountValue |
ConcurrentRatelimit 指定的計數值無效。 |
ConcurrentRatelimitStepAttachment\ |
Proxy 不允許同時有 Ratelimit 政策 {0} 個附件 要求。這項政策必須置於目標端點。 |
ConcurrentRatelimitStepAttachment\ |
目標要求/回應/錯誤缺少並行 Ratelimit 政策 {0} 附件 路徑。這項政策必須置於「目標要求預測」、「目標回應後續流程」中。 和 DefaultFaultRule |
InvalidTTLForMessageTimeOut |
為訊息逾時指定的 ConcurrentRatelimit tl 值無效。這個名稱必須是 正整數。 |
錯誤變數
當這項政策觸發錯誤時,系統會設定這些變數。詳情請參閱重要須知 政策錯誤。
錯誤回應範例
如果超過頻率限制,這項政策只會向用戶端傳回 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。 |
|
其他可能的部署錯誤。 |
錯誤變數
系統會在發生執行階段錯誤時設定這些變數。詳情請參閱重要須知 政策錯誤。
變數 | 地點 | 範例 |
---|---|---|
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 |
錯誤變數
系統會在發生執行階段錯誤時設定這些變數。詳情請參閱重要須知 政策錯誤。
變數 | 地點 | 範例 |
---|---|---|
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 | 如果系統傳回這個錯誤,表示 message
政策的 Source 元素中指定的變數
為以下任一項:
|
build |
steps.extractvariables.UnableToCast |
500 | 如果政策無法將解壓縮的影片投放,就會發生這個錯誤 變數的值這通常是因為您嘗試將 傳遞至另一種資料類型的變數。 | build |
部署錯誤
當您部署含有這項政策的 Proxy 時,可能會發生這些錯誤。
錯誤名稱 | 原因 | 修正 |
---|---|---|
NothingToExtract |
如果政策沒有任何元素 URIPath 、QueryParam 、
Header 、FormParam 、XMLPayload 或 JSONPayload ,
API Proxy 部署作業失敗,因為沒有可擷取的內容。 |
build |
NONEmptyPrefixMappedToEmptyURI |
如果政策的前置字串定義為
XMLPayload 元素下的 Namespace 元素,但沒有 URI
|
build |
DuplicatePrefix |
如果政策定義的前置字串數量超過
在 XMLPayload 元素下方的 Namespace 元素中。 |
build |
NoXPathsToEvaluate |
如果政策沒有 XPath 元素
XMLPayload 元素,那麼 API Proxy 部署作業就會失敗,並發生這個錯誤。
|
build |
EmptyXPathExpression |
如果政策的 XMLPayload 內有空白的 XPath 運算式
元素,API Proxy 的部署作業就會失敗。 |
build |
NoJSONPathsToEvaluate |
如果政策沒有 JSONPath 元素
JSONPayload 元素,那麼 API Proxy 部署作業就會失敗,並發生這個錯誤。 |
build |
EmptyJSONPathExpression |
如果政策的 XPath 運算式包含空白的
XMLPayload 元素,那麼 API Proxy 部署作業就會失敗。 |
build |
MissingName |
這項政策的任何政策中沒有 name 屬性
元素,例如 QueryParam 、Header 、FormParam 或
Variable ,否則 API Proxy 部署作業便會失敗。 |
build |
PatternWithoutVariable |
如果政策未在 Pattern 元素內指定的變數,
那麼 API Proxy 的部署作業就會失敗Pattern 元素需要名稱為
要儲存擷取資料的目標變數。 |
build |
CannotBeConvertedToNodeset |
如果政策含有 XPath 運算式,其中 Variable 類型為
是定義為 nodeset
但運算式無法轉換為 nodeset,則 API Proxy 的部署會失敗。 |
build |
JSONPathCompilationFailed |
政策無法編譯指定的 JSON 路徑。 | |
InstantiationFailed |
無法將政策執行個體化。 | |
XPathCompilationFailed |
如果 XPath 元素中使用的前置字元或值不屬於
政策中宣告的命名空間,接著是
失敗。 |
build |
InvalidPattern |
如有任何元素 (例如 URIPath ) 中的 Pattern 元素定義無效,
QueryParam 、Header 、FormParam 、XMLPayload
或是政策中的 JSONPayload ,而將 Deployment
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。 |
|
其他可能的部署錯誤。 |
錯誤變數
系統會在發生執行階段錯誤時設定這些變數。詳情請參閱重要須知 政策錯誤。
變數 | 地點 | 範例 |
---|---|---|
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 |
錯誤變數
系統會在發生執行階段錯誤時設定這些變數。詳情請參閱重要須知 政策錯誤。
變數 | 地點 | 範例 |
---|---|---|
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 程式碼擲回例外狀況或傳回空值時會發生。 | 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 |
如果 <ResourceURL> 或 <IncludeURL> ,則在部署期間發生這個錯誤
JavaScript 政策的元素會參照 jsc (JavaScript 檔案) 以外的任何資源類型。 |
build |
NoResourceURLOrSource |
如果 <ResourceURL>
,或是未在這個元素中定義資源網址。
<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 政策可能會擲回許多不同類型的 Execution 失敗錯誤。 這類錯誤大多會在超過政策中設定的特定門檻時發生。這些 錯誤類型包括: 物件項目名稱長度 物件項目數量、 陣列元素數量、 容器深度、 字串值長度。 當酬載包含無效的 JSON 物件時,也會發生這個錯誤。 | build |
steps.jsonthreatprotection.SourceUnavailable |
500 |
如果系統傳回這個錯誤,表示 message
<Source> 元素中指定的變數為以下任一種形式:
|
build |
steps.jsonthreatprotection.NonMessageVariable |
500 |
如果 <Source> 元素設為變數,
非類型
訊息。
|
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 至 XML 政策的輸入內容 (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 的 <Source> 元素中指定的變數指向以下清單,就會發生這個錯誤:
XML 政策是類型字串,且未定義 <OutputVariable> 元素。
如果在 <Source> 中定義的變數,則 <OutputVariable> 是必要元素
元素屬於類型字串。 |
build |
steps.jsontoxml.SourceUnavailable |
500 |
如果系統傳回這個錯誤,表示 message
而在 JSON 到 XML 政策的 <Source> 元素中指定的是以下任一變數:
|
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> 元素中指定的值無效。有效的通訊協定為 TCP 和 UDP。
如果是透過 TLS/SSL 傳送系統記錄訊息,僅支援 TCP。 |
build |
InvalidPort |
如果通訊埠編號,MessageLogging 政策的部署作業可能會失敗,並出現這個錯誤
未在 <Port> 元素中指定,或是無效。通訊埠編號必須
大於零的整數 |
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 | 您要求的資源沒有任何與 存取權杖 | VerifyAccessToken |
steps.oauth.v2.FailedToResolveAccessToken |
500 | 這項政策預期會在
<AccessToken> 元素,但無法解析變數。 |
GenerateAccessToken |
steps.oauth.v2.FailedToResolveAuthorizationCode |
500 | 這項政策預期會在
<Code> 元素,但無法解析變數。 |
GenerateAuthorizationCode |
steps.oauth.v2.FailedToResolveClientId |
500 | 這項政策預期會在
<ClientId> 元素,但無法解析變數。 |
GenerateAccessToken GenerateAuthorizationCode GenerateAccessTokenImplicitGrant RefreshAccessToken |
steps.oauth.v2.FailedToResolveRefreshToken |
500 | 這項政策預期會在
<RefreshToken> 元素,但無法解析變數。 |
RefreshAccessToken |
steps.oauth.v2.FailedToResolveToken |
500 | 這項政策預期會在
<Tokens> 元素,但無法解析變數。 |
ValidateToken |
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 )。如果用戶端傳送錯誤的類型,
錯誤。 |
ValidateToken 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 |
您必須在<Token>
<Tokens> 元素。 |
錯誤變數
當這項政策在執行階段觸發錯誤時,即可設定這些變數。
錯誤回應範例
如果 <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 」配額類型。舉例來說,如果設定 type 屬性
設為 flexi 或 rolling window ,然後<Quota>
API Proxy 部署作業失敗。
|
build |
InvalidTimeUnitForDistributedQuota |
如果 <Distributed> 元素設為 true ,且 <TimeUnit> 元素設為
second ,則 API Proxy 的部署作業會失敗。「second 」的時間單位無效
分散式配額 |
build |
InvalidSynchronizeIntervalForAsyncConfiguration |
如果<SyncIntervalInSeconds>
配額政策中的 <AsynchronousConfiguration> 元素小於 0,
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 | 請參閱「錯誤字串」一節。 |
部署錯誤
無。
錯誤變數
系統會在發生執行階段錯誤時設定這些變數。詳情請參閱重要須知 政策錯誤。
錯誤回應範例
{ "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> 元素為空白或未在
AuthSAMLAssertion 政策,API Proxy 的部署作業就會失敗。
必須提供有效的 Trust Store。
|
build |
NullKeyStoreAlias |
如果子元素 <Alias> 為空白或未在 <Keystore> 中指定
產生 SAML 宣告政策的元素,然後是 API 的部署作業
Proxy 故障。必須提供有效的 KeyStore 別名。
|
build |
NullKeyStore |
如果子元素 <Name> 為空白或未在 <Keystore> 中指定
GenerateSAMLAssertion 政策的一部分,接著是 API 的部署作業。
Proxy 故障。必須提供有效的 KeyStore 名稱。
|
build |
NullIssuer |
如果 <Issuer> 元素為空白或未在 Generate SAML 中指定
斷言政策,那麼 API Proxy 的部署作業就會失敗。A 罩杯
必須提供有效的「<Issuer> 」值。
|
build |
錯誤變數
系統會在發生執行階段錯誤時設定這些變數。詳情請參閱重要須知 政策錯誤。
變數 | 地點 | 範例 |
---|---|---|
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 變數不是 Request Message。適用對象 例如,如果是回應類型,系統就會顯示此錯誤。 | 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 |
錯誤變數
系統會在發生執行階段錯誤時設定這些變數。詳情請參閱重要須知 政策錯誤。
錯誤回應範例
錯誤回應範例如下:
{ "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> 元素。 這個錯誤會在預期 變數不存在 (無法解析)。 |
oauth.v2.InvalidApiKey |
401 | Edge 收到的 API 金鑰無效。Edge 查詢 資料庫必須與要求中傳送的 完全相符。如果 API 運作正常 請確保該金鑰並未重新產生。如果金鑰重新產生,您會看到 這項錯誤。詳情請參閱「註冊應用程式及管理 API 金鑰。 |
oauth.v2.InvalidApiKeyForGivenResource |
401 | 由 Edge 接收的 API 金鑰有效;不過,不得與 在透過「產品」與您的 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。 |
|
其他可能的部署錯誤。 |
錯誤變數
系統會在發生執行階段錯誤時設定這些變數。詳情請參閱重要須知 政策錯誤。
變數 | 地點 | 範例 |
---|---|---|
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 |
錯誤變數
系統會在發生執行階段錯誤時設定這些變數。詳情請參閱重要須知 政策錯誤。
變數 | 地點 | 範例 |
---|---|---|
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 政策可能會擲回許多不同類型的 Execution 失敗錯誤。 這類錯誤大多會在超過政策中設定的特定門檻時發生。這些 錯誤類型包括: 元素名稱長度 子項數量、 節點深度 屬性計數、 屬性名稱長度 以及其他許多工具如要查看完整清單,請參閱「排解 XMLThreatProtection 政策執行階段錯誤疑難排解」主題。 | build |
steps.xmlthreatprotection.InvalidXMLPayload |
500 |
如果 XMLThreatProtection 政策的 <Source> 元素指定的輸入訊息酬載不是有效的 XML 文件,就會發生這個錯誤。
|
build |
steps.xmlthreatprotection.SourceUnavailable |
500 |
如果系統傳回這個錯誤,表示 message
<Source> 元素中指定的變數為以下任一種形式:
|
build |
steps.xmlthreatprotection.NonMessageVariable |
500 |
如果 <Source> 元素設為變數,
非類型
訊息。
|
build |
注意:
- 錯誤名稱「 ExecutionFailed」是預設錯誤名稱。不論 偵測到的錯誤類型;但只要設定一個 機構層級資源設定這個屬性後,錯誤名稱將反映實際的 錯誤。例如「TextExceeded」或「AttrValueExceeded」請參閱「使用注意事項」 詳細資料。
- 預設值為 500 HTTP 狀態。但可以將 HTTP 狀態 來要求流程錯誤。請參閱「使用注意事項」 詳細資料。
部署錯誤
無。
錯誤變數
系統會在發生執行階段錯誤時設定這些變數。詳情請參閱重要須知 政策錯誤。
錯誤回應範例
{ "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 的 <Source> 元素中指定的變數為
JSON 政策的類型為字串,且未定義 <OutputVariable> 元素。
如果在 <Source> 中定義的變數,則 <OutputVariable> 是必要元素
元素屬於類型字串。 |
build |
steps.xmltojson.SourceUnavailable |
500 |
如果系統傳回這個錯誤,表示 message
而 XML 到 JSON 政策的 <Source> 元素中指定的是以下任一變數:
|
build |
部署錯誤
當您部署含有這項政策的 Proxy 時,可能會發生這些錯誤。
錯誤名稱 | 原因 | 修正 |
---|---|---|
EitherOptionOrFormat |
如果不是 <Options> 或 <Format> 元素
在 XML 政策中宣告為 JSON 政策,則 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 |