Documentation de référence sur les erreurs de règles

Vous consultez la documentation d'Apigee Edge.
Accédez à la documentation sur Apigee X.
info

Règle AccessControl

Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Cause Corriger
accesscontrol.IPDeniedAccess 403 L'adresse IP du client ou une adresse IP transmise dans la requête API correspond à une adresse IP spécifiée dans l'élément <SourceAddress> de l'élément <MatchRule> de la règle de contrôle d'accès AccessControl, et l'attribut action de l'élément <MatchRule> est défini sur DENY.

Variables de panne

Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour plus d'informations, consultez la section Variables spécifiques aux erreurs liées aux règles.

Variables Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name Matches "IPDeniedAccess"
acl.policy_name.failed policy_name est le nom spécifié par l'utilisateur pour la règle qui a généré l'erreur. acl.AC-AllowAccess.failed = true

Exemple de réponse aux pannes

{
   "fault":{
     "faultstring":"Access Denied for client ip : 52.211.243.3"
      "detail":{
         "errorcode":"accesscontrol.IPDeniedAccess"
      }
   }
}

Exemple de règle de défaillance

<FaultRule name="IPDeniedAccess">
    <Step>
        <Name>AM-IPDeniedAccess</Name>
        <Condition>(fault.name Matches "IPDeniedAccess") </Condition>
    </Step>
    <Condition>(acl.failed = true) </Condition>
</FaultRule>

Règle AccessEntity

Pour en savoir plus, consultez les articles Ce que vous devez savoir sur les erreurs liées aux règles et la gestion des erreurs.

Erreurs d'exécution

Aucune

Erreurs de déploiement

Nom de l'erreur Chaîne d'erreur État HTTP Se produit quand
InvalidEntityType Invalid type [entity_type] in ACCESSENTITYStepDefinition [policy_name] ND Le type d'entité utilisé doit correspondre à l'un des types acceptés.

Règle AssignMessage

This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP status Cause Fix
steps.assignmessage.SetVariableFailed 500 The policy was not able to set a variable. See the fault string for the name of the unresolved variable.
steps.assignmessage.VariableOfNonMsgType 500

This error occurs if the source attribute in the <Copy> element is set to a variable which is not of type message.

Message type variables represent entire HTTP requests and responses. The built-in Edge flow variables request, response, and message are of type message. To learn more about message variables, see the Variables reference.

steps.assignmessage.UnresolvedVariable 500

This error occurs if a variable specified in the Assign Message policy is either:

  • out of scope (not available in the specific flow where the policy is being executed)
  • or
  • can't be resolved (is not defined)

Deployment errors

These errors can occur when you deploy a proxy containing this policy.

Error name Cause Fix
InvalidIndex If the index specified in the <Copy> and/or <Remove> elements of the Assign Message policy is 0 or a negative number, then deployment of the API Proxy fails.
InvalidVariableName If the child element <Name> is empty or not specified in the <AssignVariable> element, then the deployment of the API proxy fails because there is no valid variable name to which to assign a value. A valid variable name is required.
InvalidPayload A payload specified in the policy is invalid.

Fault variables

These variables are set when this policy triggers an error at runtime. For more information, see What you need to know about policy errors.

Variables Where Example
fault.name="fault_name" fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. fault.name Matches "UnresolvedVariable"
assignmessage.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. assignmessage.AM-SetResponse.failed = true

Example error response

{  
   "fault":{  
      "detail":{  
         "errorcode":"steps.assignmessage.VariableOfNonMsgType"
      },
      "faultstring":"AssignMessage[AM-SetResponse]: value of variable is not of type Message"
   }
}

Example fault rule

    <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>

Règle BasicAuthentication

Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les erreurs. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Cause Corriger
steps.basicauthentication.InvalidBasicAuthenticationSource 500 Sur un décodage lorsque la chaîne entrante encodée en base64 ne contient pas de valeur valide ou si l'en-tête est incorrect (par exemple, ne commence pas par "Basic").
steps.basicauthentication.UnresolvedVariable 500 Les variables source requises pour le décodage ou l'encodage ne sont pas présentes. Cette erreur ne peut se produire que si la valeur de IgnoreUnresolvedVariables est "false".

Erreurs de déploiement

Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.

Nom de l'erreur Se produit quand Corriger
UserNameRequired L'élément <User> doit être présent pour l'opération nommée.
PasswordRequired L'élément <Password> doit être présent pour l'opération nommée.
AssignToRequired L'élément <AssignTo> doit être présent pour l'opération nommée.
SourceRequired L'élément <Source> doit être présent pour l'opération nommée.

Variables de panne

Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.

Variables Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name Matches "UnresolvedVariable"
BasicAuthentication.policy_name.failed policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. BasicAuthentication.BA-Authenticate.failed = true

Exemple de réponse d'erreur

{  
   "fault":{  
      "detail":{  
         "errorcode":"steps.basicauthentication.UnresolvedVariable"
      },
      "faultstring":"Unresolved variable : request.queryparam.password"
   }
}

Exemple de règle de défaillance

<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>

Règle ConcurrentRateLimit

This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle errors. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP status Occurs when
policies.concurrentratelimit.ConcurrentRatelimtViolation 503

ConcurrentRatelimit connection exceeded. Connection limit : {0}

Note: The Fault code shown on the left is correct, although it contains a misspelling ("limt"). Be sure to use the code exactly as shown here when creating fault rules to trap this error.

Deployment errors

Error name Occurs when
InvalidCountValue ConcurrentRatelimit invalid count value specified.
ConcurrentRatelimitStepAttachment\
NotAllowedAtProxyEndpoint
Concurrent Ratelimit policy {0} attachment is not allowed at proxy request/response/fault paths. This policy must be placed on the Target Endpoint.
ConcurrentRatelimitStepAttachment\
MissingAtTargetEndpoint
Concurrent Ratelimit policy {0} attachment is missing at target request/response/fault paths. This policy must be placed in the Target Request Preflow, Target Response Postflow, and DefaultFaultRule.
InvalidTTLForMessageTimeOut ConcurrentRatelimit invalid ttl value specified for message timeout. It must be a positive integer.

Fault variables

These variables are set when this policy triggers an error. For more information, see What you need to know about policy errors.

Variables Where Example
fault.name="fault_name" fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. fault.name Matches "ConcurrentRatelimtViolation"

Note: The Error code shown in the example is correct, although it contains a misspelling ("limt"). Please be sure to use the code exactly as shown here when creating fault rules to trap this error.

concurrentratelimit.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. concurrentratelimit.CRL-RateLimitPolicy.failed = true

Example error response

If the rate limit is exceeded, the policy returns only an HTTP status 503 to the client.

Example fault rule

<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>

Règle DecodeJWS

Cette section décrit les codes d'erreur et les messages d'erreur renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Se produit quand
steps.jws.FailedToDecode 401 La règle n'a pas pu décoder le jeton JWS. Le jeton JWS est peut-être corrompu.
steps.jws.FailedToResolveVariable 401 Cette erreur se produit si la variable de flux spécifiée dans l'élément <Source> de la règle n'existe pas.
steps.jws.InvalidClaim 401 en cas de revendication ou de non-concordance des revendications, ou si un en-tête ou un en-tête est manquant.
steps.jws.InvalidJsonFormat 401 JSON non valide trouvé dans l'en-tête JWS.
steps.jws.InvalidJws 401 Cette erreur se produit en cas d'échec de la validation de la signature du jeton JWS.
steps.jws.InvalidPayload 401 La charge utile JWS n'est pas valide.
steps.jws.InvalidSignature 401 <DetachedContent> est omis et le jeton JWS possède une charge utile de contenu dissociée.
steps.jws.MissingPayload 401 La charge utile JWS est manquante.
steps.jws.NoAlgorithmFoundInHeader 401 Cette erreur produit lorsque le jeton JWS omet l'en-tête de l'algorithme.
steps.jws.UnknownException 401 Une exception inconnue s'est produite.

Erreurs de déploiement

Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.

Nom de l'erreur Se produit quand
InvalidAlgorithm Les seules valeurs valides sont : RRS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512, HS256, HS384, HS512.

EmptyElementForKeyConfiguration

FailedToResolveVariable

InvalidConfigurationForActionAndAlgorithmFamily

InvalidConfigurationForVerify

InvalidEmptyElement

InvalidFamiliesForAlgorithm

InvalidKeyConfiguration

InvalidNameForAdditionalClaim

InvalidNameForAdditionalHeader

InvalidPublicKeyId

InvalidPublicKeyValue

InvalidSecretInConfig

InvalidTypeForAdditionalClaim

InvalidTypeForAdditionalHeader

InvalidValueForElement

InvalidValueOfArrayAttribute

InvalidVariableNameForSecret

MissingConfigurationElement

MissingElementForKeyConfiguration

MissingNameForAdditionalClaim

MissingNameForAdditionalHeader

Autres erreurs de déploiement possibles.

Variables de panne

Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.

Variables Lieu Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name Matches "TokenExpired"
JWS.failed Toutes les règles JWS définissent la même variable en cas d'échec. jws.JWS-Policy.failed = true

Exemple de réponse d'erreur

Pour le traitement des exceptions, la meilleure pratique consiste à intercepter la partie errorcode de la réponse. Ne vous fiez pas au texte dans faultstring, car il pourrait changer.

Exemple de règle de défaillance

<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>

Règle DecodeJWT

Cette section décrit les codes d'erreur et les messages d'erreur renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Cause Solution
steps.jwt.FailedToDecode 401 Se produit lorsque la stratégie ne parvient pas à décoder le jeton JWT. Le jeton JWT peut être incorrect, non valide ou non décodable.
steps.jwt.FailedToResolveVariable 401 Cette erreur se produit si la variable de flux spécifiée dans l'élément <Source> de la règle n'existe pas.
steps.jwt.InvalidToken 401 Se produit lorsque la variable de flux spécifiée dans l'élément <Source> de la règle est hors champ d'application ou ne peut être résolue.

Erreurs de déploiement

Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.

Nom de l'erreur Cause Corriger
InvalidEmptyElement Se produit lorsque la variable de flux contenant le jeton JWT à décoder n'est pas spécifiée dans l'élément <Source> de la règle.

Variables de panne

Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.

Variables Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name Matches "TokenExpired"
JWT.failed Toutes les règles JWT définissent la même variable en cas d'échec. JWT.failed = true

Exemple de réponse d'erreur

Codes d'erreur de la règle JWT

Pour le traitement des erreurs, la meilleur pratique consiste à intercepter la partie errorcode de la réponse. Ne vous fiez pas au texte dans faultstring, car il pourrait changer.

Exemple de règle de défaillance

    <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>
    

Règle Extract Variables

This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP status Cause Fix
steps.extractvariables.ExecutionFailed 500

This error occurs when:

  • The input payload (JSON, XML) is empty.
  • The input (JSON, XML, etc) passed to the policy is invalid or malformed.
steps.extractvariables.ImmutableVariable 500 A variable used in the policy is immutable. The policy was unable to set this variable.
steps.extractvariables.InvalidJSONPath 500 This error occurs if an invalid JSON path is used in the JSONPath element of the policy. For example, if a JSON payload does not have the object Name, but you specify Name as the path in the policy, then this error occurs.
steps.extractvariables.JsonPathParsingFailure 500 This error occurs when the policy is unable to parse a JSON path and extract data from the flow variable specified in Source element. Typically this happens if the flow variable specified in the Source element does not exist in the current flow.
steps.extractvariables.SetVariableFailed 500 This error occurs if the policy could not set the value to a variable. The error generally happens if you try to assign values to multiple variables whose names start with the same words in a nested dot-separated format.
steps.extractvariables.SourceMessageNotAvailable 500 This error occurs if the message variable specified in the Source element of the policy is either:
  • Out of scope (not available in the specific flow where the policy is being executed) or
  • Can't be resolved (is not defined)
steps.extractvariables.UnableToCast 500 This error occurs if the policy was unable to cast the extracted value to a variable. Typically this happens if you attempt to set the value of one data type to a variable of another data type.

Deployment errors

These errors can occur when you deploy a proxy containing this policy.

Error name Cause Fix
NothingToExtract If the policy does not have any of the elements URIPath, QueryParam, Header, FormParam, XMLPayload, or JSONPayload, the deployment of the API Proxy fails, because there's nothing to extract.
NONEmptyPrefixMappedToEmptyURI This error occurs if the policy has a prefix defined in the Namespace element under the XMLPayload element, but no URI is defined.
DuplicatePrefix This error occurs if the policy has the same prefix defined more than once in the Namespace element under the XMLPayload element.
NoXPathsToEvaluate If the policy does not have the XPath element within the XMLPayload element, then the deployment of the API proxy fails with this error.
EmptyXPathExpression If the policy has an empty XPath expression within the XMLPayload element, then the deployment of the API proxy fails.
NoJSONPathsToEvaluate If the policy does not have the JSONPath element within the JSONPayload element, then the deployment of the API proxy fails with this error.
EmptyJSONPathExpression If the policy has an empty XPath expression within the XMLPayload element, then the deployment of the API proxy fails.
MissingName If the policy does not have the name attribute in any of the policy elements like QueryParam, Header, FormParam or Variable, where it is required, then the deployment of the API proxy fails.
PatternWithoutVariable If the policy does not have a variable specified within the Pattern element, then the deployment of the API proxy fails. The Pattern element requires the name of the variable in which extracted data will be stored.
CannotBeConvertedToNodeset If the policy has an XPath expression where the Variable type is defined as nodeset, but the expression cannot be converted to nodeset, then the deployment of the API proxy fails.
JSONPathCompilationFailed The policy could not compile a specified JSON Path.
InstantiationFailed The policy could not be instantiated.
XPathCompilationFailed If the prefix or the value used in the XPath element is not part of any of the declared namespaces in the policy, then the deployment of the API proxy fails.
InvalidPattern If the Pattern element definition is invalid in any of the elements like URIPath, QueryParam, Header, FormParam, XMLPayload or JSONPayload within the policy, then the deployment of the API proxy fails.

Fault variables

These variables are set when this policy triggers an error at runtime. For more information, see What you need to know about policy errors.

Variables Where Example
fault.name="fault_name" fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. fault.name = "SourceMessageNotAvailable"
extractvariables.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. extractvariables.EV-ParseJsonResponse.failed = true

Example error response

{
   "fault":{
      "detail":{
         "errorcode":"steps.extractvariables.SourceMessageNotAvailable"
      },
      "faultstring":"request message is not available for ExtractVariable: EV-ParseJsonResponse"
   }
}

Example fault rule

<FaultRule name="Extract Variable Faults">
    <Step>
        <Name>AM-CustomErrorMessage</Name>
        <Condition>(fault.name = "SourceMessageNotAvailable") </Condition>
    </Step>
    <Condition>(extractvariables.EM-ParseJsonResponse.failed = true) </Condition>
</FaultRule>

Règle GenerateJWS

Cette section décrit les codes d'erreur et les messages d'erreur renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Se produit quand
steps.jws.GenerationFailed 401 La règle n'a pas pu générer le jeton JWS.
steps.jws.InsufficientKeyLength 401 Pour une clé inférieure à 32 octets pour l'algorithme HS256
steps.jws.InvalidClaim 401 en cas de revendication ou de non-concordance des revendications, ou si un en-tête ou un en-tête est manquant.
steps.jws.InvalidCurve 401 La courbe spécifiée par la clé n'est pas valide pour l'algorithme à courbe elliptique.
steps.jws.InvalidJsonFormat 401 JSON non valide trouvé dans l'en-tête JWS.
steps.jws.InvalidPayload 401 La charge utile JWS n'est pas valide.
steps.jws.InvalidSignature 401 <DetachedContent> est omis et le jeton JWS possède une charge utile de contenu dissociée.
steps.jws.KeyIdMissing 401 La règle de validation utilise un JWKS comme source pour les clés publiques, mais le JWS signé n'inclut pas de propriété kid dans l'en-tête.
steps.jws.KeyParsingFailed 401 Impossible d'analyser la clé publique à partir des informations de clé fournies.
steps.jws.MissingPayload 401 La charge utile JWS est manquante.
steps.jws.NoAlgorithmFoundInHeader 401 Cette erreur produit lorsque le jeton JWS omet l'en-tête de l'algorithme.
steps.jws.SigningFailed 401 Dans GenerateJWS, pour une clé inférieure à la taille minimale des algorithmes HS384 ou HS512
steps.jws.UnknownException 401 Une exception inconnue s'est produite.
steps.jws.WrongKeyType 401 Type de clé spécifié incorrect. Par exemple, si vous spécifiez une clé RSA pour un algorithme à courbe elliptique ou une clé à courbe elliptique pour un algorithme RSA.

Erreurs de déploiement

Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.

Nom de l'erreur Se produit quand
InvalidAlgorithm Les seules valeurs valides sont : RRS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512, HS256, HS384, HS512.

EmptyElementForKeyConfiguration

FailedToResolveVariable

InvalidConfigurationForActionAndAlgorithmFamily

InvalidConfigurationForVerify

InvalidEmptyElement

InvalidFamiliesForAlgorithm

InvalidKeyConfiguration

InvalidNameForAdditionalClaim

InvalidNameForAdditionalHeader

InvalidPublicKeyId

InvalidPublicKeyValue

InvalidSecretInConfig

InvalidTypeForAdditionalClaim

InvalidTypeForAdditionalHeader

InvalidValueForElement

InvalidValueOfArrayAttribute

InvalidVariableNameForSecret

MissingConfigurationElement

MissingElementForKeyConfiguration

MissingNameForAdditionalClaim

MissingNameForAdditionalHeader

Autres erreurs de déploiement possibles.

Variables de panne

Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.

Variables Lieu Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name Matches "TokenExpired"
JWS.failed Toutes les règles JWS définissent la même variable en cas d'échec. jws.JWS-Policy.failed = true

Exemple de réponse d'erreur

Pour le traitement des exceptions, la meilleure pratique consiste à intercepter la partie errorcode de la réponse. Ne vous fiez pas au texte dans faultstring, car il pourrait changer.

Exemple de règle de défaillance

<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>

Stratégie GenerateJWT

Cette section décrit les codes d'erreur et les messages d'erreur renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Se produit quand
steps.jwt.AlgorithmInTokenNotPresentInConfiguration 401 Se produit lorsque la règle de validation comporte plusieurs algorithmes.
steps.jwt.AlgorithmMismatch 401 L'algorithme spécifié dans la règle "Générer" ne correspond pas à celui attendu dans la règle "Vérifier". Les algorithmes spécifiés doivent correspondre.
steps.jwt.FailedToDecode 401 La règle n'a pas pu décoder le jeton JWT. Le jeton JWT est peut-être corrompu.
steps.jwt.GenerationFailed 401 La règle n'a pas pu générer le jeton JWT.
steps.jwt.InsufficientKeyLength 401 Pour une clé inférieure à 32 octets pour l'algorithme HS256, inférieure à 48 octets pour l'algorithme HS386 et inférieure à 64 octets pour l'algorithme HS512.
steps.jwt.InvalidClaim 401 en cas de revendication ou de non-concordance des revendications, ou si un en-tête ou un en-tête est manquant.
steps.jwt.InvalidCurve 401 La courbe spécifiée par la clé n'est pas valide pour l'algorithme à courbe elliptique.
steps.jwt.InvalidJsonFormat 401 JSON non valide trouvé dans l'en-tête ou la charge utile.
steps.jwt.InvalidToken 401 Cette erreur se produit en cas d'échec de la validation de la signature du jeton JWT.
steps.jwt.JwtAudienceMismatch 401 La revendication d'audience a échoué lors de la vérification du jeton.
steps.jwt.JwtIssuerMismatch 401 La revendication d'émetteur a échoué lors de la vérification du jeton.
steps.jwt.JwtSubjectMismatch 401 La revendication de sujet a échoué lors de la vérification du jeton.
steps.jwt.KeyIdMissing 401 La stratégie de validation utilise un JWKS comme source pour les clés publiques, mais le jeton JWT signé n'inclut pas de propriété kid dans l'en-tête.
steps.jwt.KeyParsingFailed 401 Impossible d'analyser la clé publique à partir des informations de clé fournies.
steps.jwt.NoAlgorithmFoundInHeader 401 Se produit lorsque le jeton JWT ne contient pas d'en-tête d'algorithme.
steps.jwt.NoMatchingPublicKey 401 La règle de vérification utilise un JWKS en tant que source pour les clés publiques, mais le kid du jeton JWT signé n'est pas répertorié dans le JWKS.
steps.jwt.SigningFailed 401 Dans GenerateJWT, pour une clé inférieure à la taille minimale des algorithmes HS384 ou HS512
steps.jwt.TokenExpired 401 La règle tente de vérifier un jeton expiré.
steps.jwt.TokenNotYetValid 401 Le jeton n'est pas encore valide.
steps.jwt.UnhandledCriticalHeader 401 Un en-tête trouvé par la règle de vérification JWT dans l'en-tête crit n'est pas répertorié dans KnownHeaders.
steps.jwt.UnknownException 401 Une exception inconnue s'est produite.
steps.jwt.WrongKeyType 401 Type de clé spécifié incorrect. Par exemple, si vous spécifiez une clé RSA pour un algorithme à courbe elliptique ou une clé à courbe elliptique pour un algorithme RSA.

Erreurs de déploiement

Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.

Nom de l'erreur Cause Solution
InvalidNameForAdditionalClaim Le déploiement échouera si la revendication utilisée dans l'élément enfant <Claim> de l'élément <AdditionalClaims> est l'un des noms enregistrés suivants : kid, iss, sub, aud, iat, exp, nbf ou jti.
InvalidTypeForAdditionalClaim Si la revendication utilisée dans l'élément enfant <Claim> de l'élément <AdditionalClaims> n'est pas du type string, number, boolean ou map, le déploiement échouera.
MissingNameForAdditionalClaim Si le nom de la revendication n'est pas spécifié dans l'élément enfant <Claim> de l'élément <AdditionalClaims>, le déploiement échouera.
InvalidNameForAdditionalHeader Cette erreur se produit lorsque le nom de la revendication utilisé dans l'élément enfant <Claim> de l'élément <AdditionalClaims> est alg ou typ.
InvalidTypeForAdditionalHeader Si le type de revendication utilisé dans l'élément enfant <Claim> de l'élément <AdditionalClaims> n'est pas du type string, number, boolean ou map, le déploiement échouera.
InvalidValueOfArrayAttribute Cette erreur se produit lorsque la valeur de l'attribut de tableau dans l'élément enfant <Claim> de l'élément <AdditionalClaims> n'est pas définie sur true ou false.
InvalidConfigurationForActionAndAlgorithm Si l'élément <PrivateKey> est utilisé avec des algorithmes de la famille HS ou que l'élément <SecretKey> est utilisé avec des algorithmes de la famille RSA, le déploiement échouera.
InvalidValueForElement Si la valeur spécifiée dans l'élément <Algorithm> n'est pas acceptée, le déploiement échouera.
MissingConfigurationElement Cette erreur se produit si l'élément <PrivateKey> n'est pas utilisé avec les algorithmes de la famille RSA ou si l'élément <SecretKey> n'est pas utilisé avec les algorithmes de la famille HS.
InvalidKeyConfiguration Si l'élément enfant <Value> n'est pas défini dans les éléments <PrivateKey> ou <SecretKey>, le déploiement échouera.
EmptyElementForKeyConfiguration Si l'attribut "ref" de l'élément enfant <Value> des éléments <PrivateKey> ou <SecretKey> est vide ou non spécifié, le déploiement échouera.
InvalidVariableNameForSecret Cette erreur se produit si le nom de la variable de flux spécifié dans l'attribut "ref" de l'élément enfant <Value> des éléments <PrivateKey> ou <SecretKey> ne contient pas le préfixe privé (private.).
InvalidSecretInConfig Cette erreur se produit si l'élément enfant <Value> des éléments <PrivateKey> ou <SecretKey> ne contient pas le préfixe privé (private.).
InvalidTimeFormat Si la valeur spécifiée dans l'élément <NotBefore> n'utilise pas un format compatible, le déploiement échouera.

Variables de panne

Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.

Variables Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name Matches "TokenExpired"
JWT.failed Toutes les règles JWT définissent la même variable en cas d'échec. JWT.failed = true

Exemple de réponse d'erreur

Codes d'erreur de la règle JWT

Pour le traitement des erreurs, la meilleur pratique consiste à intercepter la partie errorcode de la réponse. Ne vous fiez pas au texte dans faultstring, car il pourrait changer.

Exemple de règle de défaillance

    <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>
    

Règle JavaCallout

Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Cause Corriger
steps.javacallout.ExecutionError 500 Se produit lorsque le code Java génère une exception ou renvoie une valeur nulle lors de l'exécution d'une règle JavaCallout.

Erreurs de déploiement

Ces erreurs peuvent se produire lorsque le proxy contenant la règle est déployé.

Nom de l'erreur Chaîne d'erreur État HTTP Se produit quand
ResourceDoesNotExist Resource with name [name] and type [type] does not exist ND Le fichier spécifié dans l'élément <ResourceURL> n'existe pas.
JavaCalloutInstantiationFailed Failed to instantiate the JavaCallout Class [classname] ND Le fichier de classe spécifié dans l'élément <ClassName> n'est pas dans le fichier JAR.
IncompatibleJavaVersion Failed to load java class [classname] definition due to - [reason] ND Voir la chaîne d'erreur. Voir également les Logiciels compatibles et versions compatibles.
JavaClassNotFoundInJavaResource Failed to find the ClassName in java resource [jar_name] - [class_name] ND Voir la chaîne d'erreur.
JavaClassDefinitionNotFound Failed to load java class [class_name] definition due to - [reason] ND Voir la chaîne d'erreur.
NoAppropriateConstructor No appropriate constructor found in JavaCallout class [class_name] ND Voir la chaîne d'erreur.
NoResourceForURL Could not locate a resource with URL [string] ND Voir la chaîne d'erreur.

Variables de panne

Ces variables sont définies lorsque cette règle déclenche une erreur. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.

Variables Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name Matches "ExecutionError"
javacallout.policy_name.failed policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. javacallout.JC-GetUserData.failed = true

Exemple de réponse d'erreur

{  
   "fault":{  
      "faultstring":"Failed to execute JavaCallout. [policy_name]",
      "detail":{  
         "errorcode":"javacallout.ExecutionError"
      }
   }
}

Exemple de règle de défaillance

<FaultRule name="JavaCalloutFailed">
    <Step>
        <Name>AM-JavaCalloutError</Name>
    </Step>
    <Condition>(fault.name Matches "ExecutionError") </Condition>
</FaultRule>

Règle JavaScript

Cette section décrit les codes d'erreur et les messages d'erreur renvoyés ainsi que les variables d'erreur qui sont définis par Edge lorsque cette règle déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Cause Corriger
steps.javascript.ScriptExecutionFailed 500 La règle JavaScript peut générer de nombreux types d'erreurs ScriptExecutionFailed. Les types d'erreurs fréquemment constatées incluent RangeError, ReferenceError, SyntaxError, TypeError et URIError.
steps.javascript.ScriptExecutionFailedLineNumber 500 Une erreur s'est produite dans le code JavaScript. Pour en savoir plus, consultez la chaîne d'erreur. ND
steps.javascript.ScriptSecurityError 500 Une erreur de sécurité s'est produite lors de l'exécution du JavaScript. Pour en savoir plus, consultez la chaîne d'erreur. ND

Erreurs de déploiement

Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.

Nom de l'erreur Cause Corriger
InvalidResourceUrlFormat Si le format de l'URL de ressource spécifiée dans l'élément <ResourceURL> ou <IncludeURL> de la règle JavaScript n'est pas valide, le déploiement du proxy d'API échoue.
InvalidResourceUrlReference Si les éléments <ResourceURL> ou <IncludeURL> font référence à un fichier JavaScript qui n'existe pas, alors le déploiement du proxy d'API échoue. Le fichier source référencé doit exister au niveau du proxy d'API, de l'environnement ou de l'organisation.
WrongResourceType Cette erreur se produit lors du déploiement si les éléments <ResourceURL> et <IncludeURL> de la règle JavaScript font référence à un type de ressource autre que jsc (fichier JavaScript).
NoResourceURLOrSource Le déploiement de la règle JavaScript peut échouer avec cette erreur si <ResourceURL> n'est pas déclaré ou si l'URL de la ressource n'est pas définie dans cet élément. L'élément <ResourceURL> est obligatoire. Ou, l'élément <IncludeURL> est déclaré. mais l'URL de la ressource n'est pas définie dans cet élément. L'élément <IncludeURL> est facultatif Toutefois, si elle est déclarée, l'URL de la ressource doit être spécifiée dans l'élément <IncludeURL>.

Variables de panne

Ces variables sont définies lorsque cette règle déclenche une erreur au moment de l'exécution. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.

Variables Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name Matches "ScriptExecutionFailed"
javascript.policy_name.failed policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. javascript.JavaScript-1.failed = true

Exemple de réponse d'erreur

{
  "fault": {
    "faultstring": "Execution of SetResponse failed with error: Javascript runtime error: "ReferenceError: "status" is not defined. (setresponse.js:6)\"",
    "detail": {
      "errorcode": "steps.javascript.ScriptExecutionFailed"
    }
  }
}

Exemple de règle de défaillance

<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>

Règle JSONThreatProtection

Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Cause Corriger
steps.jsonthreatprotection.ExecutionFailed 500 La règle JSONThreatProtection peut générer de nombreux types d'erreurs ExecutionFailed. La plupart de ces erreurs se produisent lorsqu'un seuil spécifique défini dans la règle est dépassé. Ces types d'erreurs incluent les éléments suivants : longueur de noms d'entrée d'objet, nombre d'entrées d'objet, nombre d'éléments de tableau, profondeur de conteneur, longueur de valeur de chaîne. Cette erreur se produit également lorsque la charge utile contient un objet JSON non valide.
steps.jsonthreatprotection.SourceUnavailable 500 Cette erreur se produit si la variable message spécifiée dans l'élément <Source> :
  • est hors de portée (non disponible dans le flux spécifique où la règle est exécutée)
  • n'est pas une des valeurs valides request, response ou message.
steps.jsonthreatprotection.NonMessageVariable 500 Cette erreur se produit si l'élément <Source> est défini sur une variable qui n'est pas de type message.

Erreurs de déploiement

Aucune

Variables de panne

Ces variables sont définies lorsque cette règle déclenche une erreur. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.

Variables Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name Matches "SourceUnavailable"
jsonattack.policy_name.failed policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. jsonattack.JTP-SecureRequest.failed = true

Exemple de réponse d'erreur

{
  "fault": {
    "faultstring": "JSONThreatProtection[JPT-SecureRequest]: Execution failed. reason: JSONThreatProtection[JTP-SecureRequest]: Exceeded object entry name length at line 2",
    "detail": {
      "errorcode": "steps.jsonthreatprotection.ExecutionFailed"
    }
  }
}

Exemple de règle de défaillance

<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>

Les types de règles JSONThreatProtection définissent les codes d'erreur suivants :

Règle JSONtoXML

Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Cause Corriger
steps.jsontoxml.ExecutionFailed 500 La charge utile d'entrée (JSON) est vide ou la valeur d'entrée (JSON) transmise par règle JSON vers XML n'est pas valide ou est incorrecte.
steps.jsontoxml.InCompatibleTypes 500 Cette erreur se produit si le type de la variable définie dans l'élément <Source> et l'élément <OutputVariable> ne sont pas identiques. Il est obligatoire que le type des variables contenues dans l'élément <Source> corresponde à celui de l'élément <OutputVariable>. Les types valides sont message et string.
steps.jsontoxml.InvalidSourceType 500 Cette erreur se produit si le type de la variable utilisée pour définir l'élément <Source> n'est pas valide. Les types de variables valides sont message et string.
steps.jsontoxml.OutputVariableIsNotAvailable 500 Cette erreur se produit si la variable spécifiée dans l'élément <Source> de la stratégie JSON vers XML est de type chaîne et que l'élément <OutputVariable> n'est pas défini. L'élément <OutputVariable> est obligatoire lorsque la variable définie dans l'élément <Source> est de type chaîne.
steps.jsontoxml.SourceUnavailable 500 Cette erreur se produit si la variable message spécifiée dans l'élément <Source> de la stratégie JSON est XML :
  • hors du champ d'application (non disponible dans le flux spécifique où la stratégie est exécutée) ou
  • impossible à résoudre (non définie),

Erreurs de déploiement

Aucune

Variables de panne

Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.

Variables Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name Matches "SourceUnavailable"
jsontoxml.policy_name.failed policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. jsontoxml.JSON-to-XML-1.failed = true

Exemple de réponse d'erreur

{
  "fault": {
    "faultstring": "JSONToXML[JSON-to-XML-1]: Source xyz is not available",
    "detail": {
      "errorcode": "steps.json2xml.SourceUnavailable"
    }
  }
}

Exemple de règle de défaillance

<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>

Règle KeyValueMapOperations

Cette section décrit les codes d'erreur et les messages d'erreur renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Cause Solution
steps.keyvaluemapoperations.SetVariableFailed 500

Cette erreur se produit si vous tentez de récupérer une valeur à partir d'un mappage clé-valeur chiffré et de la définir sur une variable dont le nom ne comporte pas le préfixe private. Le préfixe, requis pour des raisons de sécurité élémentaires lors du débogage, masque les valeurs chiffrées des sessions de débogage et de suivi du proxy d'API.

steps.keyvaluemapoperations.UnsupportedOperationException 500

Cette erreur se produit si l'attribut mapIdentifier est défini sur une chaîne vide dans la règle des opérations de mappage clé-valeur.

Erreurs de déploiement

Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.

Nom de l'erreur Cause Corriger
InvalidIndex Si l'attribut index spécifié dans l'élément <Get> de la règle des opérations de mappage clé-valeur est égal à zéro ou à un nombre négatif, le déploiement du proxy API échoue. L'index commence à partir de 1. Un index égal à zéro ou à un entier négatif est donc considéré comme non valide.
KeyIsMissing Cette erreur se produit si l'élément <Key> est complètement manquant ou si l'élément <Parameter> est manquant dans l'élément <Key> sous l'élément <Entry> de l'élément <InitialEntries> de la règle "Opérations de mappage de clés-valeurs".
ValueIsMissing Cette erreur se produit si l'élément <Value> est manquant sous l'élément <Entry> de l'élément <InitialEntries> de la règle des opérations de mappage clé-valeur.

Règle LDAP

This policy uses the following error codes:

Error Code Message
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.

Règle de journalisation des messages

This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP status Cause
steps.messagelogging.StepDefinitionExecutionFailed 500 See fault string.

Deployment errors

These errors can occur when you deploy a proxy containing this policy.

Error name Cause Fix
InvalidProtocol The deployment of the MessageLogging policy can fail with this error if the protocol specified within the <Protocol> element is not valid. The valid protocols are TCP and UDP. For sending syslog messages over TLS/SSL, only TCP is supported.
InvalidPort The deployment of the MessageLogging policy can fail with this error if the port number is not specified within the <Port> element or if it is not valid. The port number must be an integer greater than zero.

Fault variables

These variables are set when a runtime error occurs. For more information, see What you need to know about policy errors.

Variables Where Example
fault.name="fault_name" fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. fault.name Matches "StepDefinitionExecutionFailed"
messagelogging.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. messagelogging.ML-LogMessages.failed = true

Example error response

{  
   "fault":{  
      "detail":{  
         "errorcode":"steps.messagelogging.StepDefinitionExecutionFailed"
      },
      "faultstring":"Execution failed"
   }
}

Example fault rule

<FaultRule name="MessageLogging">
    <Step>
        <Name>ML-LogMessages</Name>
        <Condition>(fault.name Matches "StepDefinitionExecutionFailed") </Condition>
    </Step>
    <Condition>(messagelogging.ML-LogMessages.failed = true) </Condition>
</FaultRule>

Règle OASValidation

This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP status Cause
steps.oasvalidation.Failed 500 Request message body cannot be validated against the provided OpenAPI Specification.
steps.oasvalidation.SourceMessageNotAvailable 500

Variable specified in the <Source> element of the policy is either out of scope or cannot be resolved.

steps.oasvalidation.NotMessageVariable 500

<Source> element is set to a variable that is not of type message.

Deployment errors

These errors can occur when you deploy a proxy containing this policy.

Error name Cause
ResourceDoesNotExist OpenAPI Specification referenced in the <OASResource> element does not exist.
ResourceCompileFailed OpenAPI Specification that is included in the deployment contains errors that prevent it from being compiled. This generally indicates that the specification is not a well-formed OpenAPI Specification 3.0.
BadResourceURL OpenAPI Specification referenced in the <OASResource> element cannot be processed. This can occur if the file is not a JSON or YAML file or the file URL is not specified correctly.

Fault variables

These variables are set when this policy triggers an error at runtime. For more information, see What you need to know about policy errors.

Variables Where Example
fault.name="fault_name" fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. fault.name Matches "ResourceDoesNotExist"
oasvalidation.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. oasvalidation.myoaspolicy.failed = true

Règle PopulateCache

This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP Status Occurs when
policies.populatecache.EntryCannotBeCached 500 An entry cannot be cached. The message object being cached is not an instance of a class that is Serializable.

Deployment errors

These errors can occur when you deploy a proxy containing this policy.

Error name Cause Fix
InvalidCacheResourceReference This error occurs if the <CacheResource> element in the PopulateCache policy is set to a name that does not exist in the environment where the API proxy is being deployed.
CacheNotFound The cache specified in the <CacheResource> element does not exist.

Fault variables

These variables are set when this policy triggers an error. For more information, see What you need to know about policy errors.

Variables Where Example
fault.name="fault_name" fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. fault.name = "EntryCannotBeCached"
populatecache.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. populatecache.POP-CACHE-1.failed = true

Example error response

{
  "fault": {
    "faultstring": "[entry] can not be cached. Only serializable entries are cached.",
    "detail": {
      "errorcode": "steps.populatecache.EntryCannotBeCached"
    }
  }
}

Example fault rule

<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>

Règle LookupCache

Cette section décrit les messages d'erreur et les variables de flux définies lorsque cette règle déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance pour un proxy. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Préfixe de code d'erreur

N/A

Erreurs d'exécution

Cette règle ne génère aucune erreur d'exécution.

Erreurs de déploiement

Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.

Nom de l'erreur Cause Solution
InvalidCacheResourceReference Cette erreur se produit si l'élément <CacheResource> est défini sur un nom qui n'existe pas dans l'environnement dans lequel le proxy d'API est déployé.
InvalidTimeout Si l'élément <CacheLookupTimeoutInSeconds> est défini sur un nombre négatif, le déploiement du proxy d'API échoue.
CacheNotFound Cette erreur se produit si le cache spécifique mentionné dans le message d'erreur n'a pas été créé sur un composant du processeur de messages spécifique.

Variables de panne

ND

Exemple de réponse d'erreur

N/A

Règle InvalidateCache

Cette section décrit les messages d'erreur et les variables de flux définies lorsque cette règle déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance pour un proxy. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Préfixe de code d'erreur

N/A

Erreurs d'exécution

Cette règle ne génère aucune erreur d'exécution.

Erreurs de déploiement

Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.

Nom de l'erreur Cause Corriger
InvalidCacheResourceReference Cette erreur se produit si l'élément <CacheResource> de la stratégie InvalidateCache est défini sur un nom qui n'existe pas dans l'environnement où le proxy d'API est déployé.
CacheNotFound Cette erreur se produit si le cache spécifique mentionné dans le message d'erreur n'a pas été créé sur un composant du processeur de messages spécifique.

Variables de panne

ND

Exemple de réponse d'erreur

N/A

Règle ResponseCache

Cette section décrit les messages d'erreur et les variables de flux définies lorsque cette règle déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance pour un proxy. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Préfixe de code d'erreur

N/A

Erreurs d'exécution

Cette règle ne génère aucune erreur d'exécution.

Erreurs de déploiement

Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.

Nom de l'erreur Cause Solution
InvalidTimeout Si l'élément <CacheLookupTimeoutInSeconds> de la règle ResponseCache est défini sur un nombre négatif, le déploiement du proxy d'API échoue.
InvalidCacheResourceReference Cette erreur se produit si l'élément <CacheResource> d'une règle ResponseCache est défini sur un nom qui n'existe pas dans l'environnement où le proxy d'API est déployé.
ResponseCacheStepAttachmentNotAllowedReq Cette erreur se produit si la même règle ResponseCache est associée à plusieurs chemins de requête dans tous les flux d'un proxy d'API.
ResponseCacheStepAttachmentNotAllowedResp Cette erreur se produit si la même règle ResponseCache est associée à plusieurs chemins de réponse dans tous les flux d'un proxy d'API.
InvalidMessagePatternForErrorCode Cette erreur se produit si les éléments <SkipCacheLookup> ou <SkipCachePopulation> d'une règle ResponseCache contiennent une condition non valide.
CacheNotFound Cette erreur se produit si le cache spécifique mentionné dans le message d'erreur n'a pas été créé sur un composant du processeur de messages spécifique.

Variables de panne

ND

Exemple de réponse d'erreur

N/A

Règle OAuthV2

Cette section décrit les codes d'erreur et les messages d'erreur renvoyés et les variables d'erreur définies par Edge lorsque cette règle déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Cause Généré par des opérations
steps.oauth.v2.access_token_expired 401 Le jeton d'accès est arrivé à expiration.

VerifyAccessToken
InvalidateToken

steps.oauth.v2.access_token_not_approved 401 Le jeton d'accès a été révoqué. VerifyAccessToken
steps.oauth.v2.apiresource_doesnot_exist 401 La ressource demandée n'existe dans aucun des produits d'API associés au jeton d'accès. VerifyAccessToken
steps.oauth.v2.FailedToResolveAccessToken 500 La règle était censée trouver un jeton d'accès dans une variable spécifiée dans l'élément <AccessToken>, mais la variable n'a pas pu être résolue. GenerateAccessToken
steps.oauth.v2.FailedToResolveAuthorizationCode 500 La règle était censée trouver un code d'autorisation dans une variable spécifiée dans l'élément <Code>, mais la variable n'a pas pu être résolue. GenerateAuthorizationCode
steps.oauth.v2.FailedToResolveClientId 500 La règle était censée trouver l'ID client dans une variable spécifiée dans l'élément <ClientId>, mais la variable n'a pas pu être résolue. GenerateAccessToken
GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
RefreshAccessToken
steps.oauth.v2.FailedToResolveRefreshToken 500 La règle était censée trouver un jeton d'actualisation dans une variable spécifiée dans l'élément <RefreshToken>, mais la variable n'a pas pu être résolue. RefreshAccessToken
steps.oauth.v2.FailedToResolveToken 500 La règle était censée trouver un jeton dans une variable spécifiée dans l'élément <Tokens>, mais la variable n'a pas pu être résolue.

ValidateToken
InvalidateToken

steps.oauth.v2.InsufficientScope 403 Le champ d'application du jeton d'accès présenté dans la requête ne correspond pas à celui spécifié dans la règle VerifyAccessToken. Pour en savoir plus sur le champ d'application, consultez la page Utiliser des champs d'application OAuth2. VerifyAccessToken
steps.oauth.v2.invalid_access_token 401 Le jeton d'accès envoyé à partir du client n'est pas valide. VerifyAccessToken
steps.oauth.v2.invalid_client 401

Ce nom d'erreur est renvoyé lorsque la propriété <GenerateResponse> de la règle est définie sur true et que l'ID client envoyé dans la requête n'est pas valide. Vérifiez que vous utilisez les valeurs correctes de clé et de code secret du client pour l'application de développeur associée à votre proxy. En règle générale, ces valeurs sont envoyées sous la forme d'un en-tête d'autorisation de base encodé en base64.

Remarque : Nous vous recommandons de modifier les conditions de règle d'erreur existantes pour identifier les noms invalid_client et InvalidClientIdentifier. Consultez les notes de version 16.09.21 pour obtenir plus d'informations et un exemple.

GenerateAccessToken
RefreshAccessToken
steps.oauth.v2.InvalidRequest 400 Ce nom d'erreur est utilisé pour plusieurs types d'erreurs, généralement pour des paramètres manquants ou incorrects envoyés dans la requête. Si <GenerateResponse> est défini sur false, utilisez des variables d'erreur (décrites ci-dessous) pour récupérer des informations sur l'erreur, telles que son nom et sa cause. GenerateAccessToken
GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
RefreshAccessToken
steps.oauth.v2.InvalidAccessToken 401 L'en-tête d'autorisation ne comporte pas le mot "Bearer", qui est obligatoire. Exemple : Authorization: Bearer your_access_token VerifyAccessToken
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401

Le proxy d'API ne se trouve pas dans le produit associé au jeton d'accès.

Conseil : Assurez-vous que le produit associé au jeton d'accès est correctement configuré. Par exemple, si vous utilisez des caractères génériques dans les chemins d'accès aux ressources, veillez à les utiliser correctement. Pour plus d'informations, consultez la page Créer des produits d'API.

Consultez également ce post destiné à la communauté Apigee pour en savoir plus sur les causes de cette erreur.

VerifyAccessToken
steps.oauth.v2.InvalidClientIdentifier 500

Ce nom d'erreur est renvoyé lorsque la propriété <GenerateResponse> de la règle est définie sur false et que l'ID client envoyé dans la requête n'est pas valide. Vérifiez que vous utilisez les valeurs correctes de clé et de code secret du client pour l'application de développeur associée à votre proxy. En règle générale, ces valeurs sont envoyées sous la forme d'un en-tête d'autorisation de base encodé en base64.

Remarque : Dans ce cas, cette erreur était auparavant appelée invalid_client. Nous vous recommandons de modifier les conditions de règle d'erreur existantes pour identifier les noms invalid_client et InvalidClientIdentifier. Consultez les notes de version 16.09.21 pour obtenir plus d'informations et un exemple.

GenerateAccessToken
RefreshAccessToken

steps.oauth.v2.InvalidParameter 500 La règle doit spécifier un jeton d'accès ou un code d'autorisation, mais pas les deux. GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
steps.oauth.v2.InvalidTokenType 500 L'élément <Tokens>/<Token> nécessite de spécifier le type de jeton (par exemple, refreshtoken). Si le client transmet le mauvais type, cette erreur est générée. ValidateToken
InvalidateToken
steps.oauth.v2.MissingParameter 500 Le type de réponse est token, mais aucun type d'attribution n'est spécifié. GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
steps.oauth.v2.UnSupportedGrantType 500

Le client a spécifié un type d'attribution non compatible avec la règle (non répertorié dans l'élément <SupportedGrantTypes>).

Remarque : Il existe actuellement un bug dans lequel les erreurs liées à un type d'attribution non compatible ne sont pas générées correctement. Si une erreur de ce genre se produit, le proxy ne passe pas par le flux d'erreurs, comme prévu.

GenerateAccessToken
GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
RefreshAccessToken

Erreurs de déploiement

Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.

Nom de l'erreur Cause
InvalidValueForExpiresIn

Pour l'élément <ExpiresIn>, les valeurs valides sont des entiers positifs et -1.

InvalidValueForRefreshTokenExpiresIn Pour l'élément <RefreshTokenExpiresIn>, les valeurs valides sont des entiers positifs et -1.
InvalidGrantType Un type d'attribution non valide est spécifié dans l'élément <SupportedGrantTypes>. Pour obtenir la liste des types valides, consultez la documentation de référence sur les règles.
ExpiresInNotApplicableForOperation Assurez-vous que les opérations spécifiées dans l'élément <Operations> sont compatibles avec l'expiration. Par exemple, ce n'est pas le cas de l'opération VerifyToken.
RefreshTokenExpiresInNotApplicableForOperation Assurez-vous que les opérations spécifiées dans l'élément <Operations> sont compatibles avec l'expiration du jeton d'actualisation. Par exemple, ce n'est pas le cas de l'opération VerifyToken.
GrantTypesNotApplicableForOperation Assurez-vous que les types d'attribution spécifiés dans <SupportedGrantTypes> sont compatibles pour l'opération spécifiée.
OperationRequired

Vous devez spécifier une opération dans cette règle à l'aide de l'élément <Operation>.

Remarque : Si l'élément <Operation> est manquant, l'UI génère une erreur de validation du schéma.

InvalidOperation

Vous devez spécifier une opération valide dans cette règle à l'aide de l'élément <Operation>.

Remarque : Si l'élément <Operation> n'est pas valide, l'UI génère une erreur de validation du schéma.

TokenValueRequired Vous devez spécifier une valeur de jeton <Token> dans l'élément <Tokens>.

Variables de panne

Ces variables sont définies lorsque cette règle déclenche une erreur au moment de l'exécution.

Variables Lieu Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name = "InvalidRequest"
oauthV2.policy_name.failed policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. oauthV2.GenerateAccesstoken.failed = true
oauthV2.policy_name.fault.name policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. oauthV2.GenerateAccesstoken.fault.name = InvalidRequest

Remarque : Pour l'opération VerifyAccessToken, le nom d'erreur inclut le suffixe suivant : keymanagement.service
Par exemple : keymanagement.service.invalid_access_token

oauthV2.policy_name.fault.cause policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. oauthV2.GenerateAccesstoken.cause = Required param : grant_type

Exemple de réponse d'erreur

Ces réponses sont renvoyées au client si l'élément <GenerateResponse> est défini sur true.

Si <GenerateResponse> est défini sur true, la règle renvoie des erreurs dans ce format pour les opérations générant des jetons et des codes. Pour obtenir la liste complète, consultez la documentation de référence sur les réponses aux erreurs HTTP OAuth.

{"ErrorCode" : "invalid_client", "Error" :"ClientId is Invalid"}

Si <GenerateResponse> est défini sur true, la règle renvoie des erreurs dans ce format pour les opérations de vérification et de validation. Pour obtenir la liste complète, consultez la documentation de référence sur les réponses aux erreurs HTTP OAuth.

{  
   {  
      "fault":{  
         "faultstring":"Invalid Access Token",
         "detail":{  
            "errorcode":"keymanagement.service.invalid_access_token"
         }
      }
   }

Exemple de règle de défaillance

<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>

Règle GetOAuthV2Info

Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle. Les noms d'erreur indiqués ci-dessous sont les chaînes attribuées à la variable fault.name en cas d'erreur. Pour plus d'informations, consultez la section des variables de codes d'erreur ci-dessous.

Code d'erreur État HTTP Cause
steps.oauth.v2.access_token_expired 500 Le jeton d'accès envoyé à la règle a expiré.
steps.oauth.v2.authorization_code_expired 500 Le code d'autorisation envoyé à la règle a expiré.
steps.oauth.v2.invalid_access_token 500 Le jeton d'accès envoyé à la règle n'est pas valide.
steps.oauth.v2.invalid_client-invalid_client_id 500 L'ID client envoyé à la règle n'est pas valide.
steps.oauth.v2.invalid_refresh_token 500 Le jeton d'actualisation envoyé à la règle n'est pas valide.
steps.oauth.v2.invalid_request-authorization_code_invalid 500 Le code d'autorisation envoyé à la règle n'est pas valide.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 Veuillez consulter cet article de la communauté Apigee pour en savoir plus sur la résolution de cette erreur.
steps.oauth.v2.refresh_token_expired 500 Le jeton d'actualisation envoyé à la règle a expiré.

Erreurs de déploiement

Reportez-vous au message indiqué dans l'interface utilisateur pour en savoir plus sur les erreurs de déploiement.

Variables de panne

Ces variables sont définies lorsque cette règle déclenche une erreur au moment de l'exécution.

Variables Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name Matches "IPDeniedAccess"
oauthV2.policy_name.failed policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. oauthV2.GetTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. oauthV2.GetToKenInfo.fault.name = invalid_client-invalid_client_id
oauthV2.policy_name.fault.cause policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. oauthV2.GetTokenInfo.cause = ClientID is Invalid

Exemple de réponse d'erreur

{  
   "fault":{  
      "faultstring":"ClientId is Invalid",
      "detail":{  
         "errorcode":"keymanagement.service.invalid_client-invalid_client_id"
      }
   }
}

Exemple de règle de défaillance

<FaultRule name="OAuthV2 Faults">
    <Step>
        <Name>AM-InvalidClientIdResponse</Name>
    </Step>
    <Condition>(fault.name = "invalid_client-invalid_client_id")</Condition>
</FaultRule>

Règle SetOAuthV2Info

Cette section décrit les codes d'erreur et les messages d'erreur renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette règle déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Cause
steps.oauth.v2.access_token_expired 500 Le jeton d'accès envoyé à la règle a expiré.
steps.oauth.v2.invalid_access_token 500 Le jeton d'accès envoyé à la règle n'est pas valide.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 Veuillez consulter cet article de la communauté Apigee pour en savoir plus sur la résolution de cette erreur.

Erreurs de déploiement

Reportez-vous au message indiqué dans l'interface utilisateur pour en savoir plus sur les erreurs de déploiement.

Variables de panne

Ces variables sont définies lorsque cette règle déclenche une erreur au moment de l'exécution.

Variables Lieu Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name = "invalid_access_token"
oauthV2.policy_name.failed policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. oauthV2.SetTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. oauthV2.SetTokenInfo.fault.name = invalid_access_token
oauthv2.policy_name.fault.cause policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. oauthV2.SetTokenInfo.cause = Invalid Access Token

Exemple de réponse d'erreur

{
  "fault": {
    "faultstring": "Invalid Access Token",
    "detail": {
      "errorcode": "keymanagement.service.invalid_access_token"
    }
  }
}

Exemple de règle de défaillance

<FaultRule name=SetOAuthV2Info Faults">
    <Step>
        <Name>AM-InvalidTokenResponse</Name>
        <Condition>(fault.name = "invalid_access_token")</Condition>
    </Step>
    <Condition>(oauthV2.failed = true) </Condition>
</FaultRule>

Règle DeleteOAuthV2Info

Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Cause
steps.oauth.v2.invalid_access_token 401 Le jeton d'accès envoyé à la règle n'est pas valide.
steps.oauth.v2.invalid_request-authorization_code_invalid 401 Le code d'autorisation envoyé à la règle n'est pas valide.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 Veuillez consulter cet article de la communauté Apigee pour en savoir plus sur la résolution de cette erreur.

Erreurs de déploiement

Reportez-vous au message indiqué dans l'interface utilisateur pour en savoir plus sur les erreurs de déploiement.

Variables de panne

Ces variables sont définies lorsque cette règle déclenche une erreur au moment de l'exécution.

Variables Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name = "invalid_access_token"
oauthV2.policy_name.failed policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. oauthV2.DeleteTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. oauthV2.DeleteTokenInfo.fault.name = invalid_access_token
oauthv2.policy_name.fault.cause policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. oauthV2.DeleteTokenInfo.cause = Invalid Access Token

Exemple de réponse d'erreur

{
  "fault": {
    "faultstring": "Invalid Access Token",
    "detail": {
      "errorcode": "keymanagement.service.invalid_access_token"
    }
  }
}

Exemple de règle de défaillance

<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="DeleteOAuthV2Info_Faults">
    <Step>
        <Name>AM-InvalidTokenResponse</Name>
    </Step>
    <Condition>(fault.name = "invalid_access_token")</Condition>
</FaultRule>

Règle OAuthv1.0a

Le type de règle OAuthV1 définit les codes d'erreur suivants.

Pour les codes d'erreur HTTP liés à OAuth, consultez la documentation de référence sur les réponses d'erreur HTTP OAuth.

Code d'erreur d'un message ;
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}

Règle GetOAuthV1Info

Aucun code d'erreur n'est spécifié pour la stratégie d'informations Obtenir OAuth v1.0a.

Règle DeleteOAuthV1Info

En cas de réussite, la règle renvoie un état 200.

En cas d'échec, la stratégie renvoie une erreur 404 et un résultat semblable aux lignes suivantes (selon que vous supprimez un jeton d'accès, un jeton de requête ou un vérificateur):

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"}}}

Règle PythonScript

Cette section décrit les codes d'erreur et les messages d'erreur renvoyés ainsi que les variables d'erreur qui sont définis par Edge lorsque cette règle déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Cause Corriger
steps.script.ScriptEvaluationFailed 500 La règle PythonScript peut générer plusieurs types d'erreurs différents ScriptExecutionFailed. Les types d'erreurs courants incluent NameError et ZeroDivisionError.

Erreurs de déploiement

Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.

Nom de l'erreur Cause Corriger
InvalidResourceUrlFormat Si le format de l'URL de la ressource spécifiée dans l'élément <ResourceURL> ou <IncludeURL> de la règle PythonScript n'est pas valide, alors le déploiement du proxy d'API échoue.
InvalidResourceUrlReference Si les éléments <ResourceURL> ou <IncludeURL> font référence à un fichier PythonScript qui n'existe pas, alors le déploiement du proxy d'API échoue. Le fichier source référencé doit exister au niveau du proxy d'API, de l'environnement ou de l'organisation.

Variables de panne

Ces variables sont définies lorsque cette règle déclenche une erreur au moment de l'exécution. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.

Variables Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name Matches "ScriptExecutionFailed"
pythonscript.policy_name.failed policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. pythonscript.PythonScript-1.failed = true

Exemple de réponse d'erreur

{
  "fault": {
    "faultstring": "Execution of SetResponse failed with error: Pythonscript runtime error: "ReferenceError: "status" is not defined.\"",
    "detail": {
      "errorcode": "steps.script.ScriptExecutionFailed"
    }
  }
}

Exemple de règle de défaillance

<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>

Règles de quotas

Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Cause Corriger
policies.ratelimit.FailedToResolveQuotaIntervalReference 500 Cette erreur se produit si l'élément <Interval> n'est pas défini dans la règle de quota. Cet élément est obligatoire et permet de spécifier l'intervalle de temps applicable au quota. L'intervalle de temps peut être exprimé en minutes, en heures, en jours, en semaines ou en mois, comme défini dans l'élément <TimeUnit>.
policies.ratelimit.FailedToResolveQuotaIntervalTimeUnitReference 500 Cette erreur se produit si l'élément <TimeUnit> n'est pas défini dans la règle de quota. Cet élément est obligatoire et permet de spécifier l'unité de temps applicable au quota. L'intervalle de temps peut être exprimé en minutes, en heures, en jours, en semaines ou en mois.
policies.ratelimit.InvalidMessageWeight 500 Cette erreur se produit si la valeur de l'élément <MessageWeight> spécifiée via une variable de flux n'est pas valide (valeur non entière).
policies.ratelimit.QuotaViolation 500 La limite de quota a été dépassée. ND

Erreurs de déploiement

Nom de l'erreur Cause Corriger
InvalidQuotaInterval Si l'intervalle de quota spécifié dans l'élément <Interval> n'est pas un entier, le déploiement du proxy d'API échoue. Par exemple, si l'intervalle de quota spécifié est de 0,1 dans l'élément <Interval>, le déploiement du proxy d'API échoue.
InvalidQuotaTimeUnit Si l'unité de temps spécifiée dans l'élément <TimeUnit> n'est pas acceptée, le déploiement du proxy d'API échoue. Les unités de temps acceptées sont minute, hour, day, week et month.
InvalidQuotaType Si le type de quota spécifié par l'attribut type dans l'élément <Quota> n'est pas valide, le déploiement du proxy d'API échoue. Les types de quotas acceptés sont default, calendar, flexi et rollingwindow.
InvalidStartTime Si le format de l'heure spécifiée dans l'élément <StartTime> n'est pas valide, le déploiement du proxy d'API échoue. Le format valide est yyyy-MM-dd HH:mm:ss. Il correspond au format de date et d'heure ISO 8601. Par exemple, si l'heure spécifiée dans l'élément <StartTime> est 7-16-2017 12:00:00, le déploiement du proxy d'API échoue.
StartTimeNotSupported Si l'élément <StartTime> est spécifié et que le type de quota n'est pas calendar, le déploiement du proxy d'API échoue. L'élément <StartTime> n'est disponible que pour le type de quota calendar. Par exemple, si l'attribut type est défini sur flexi ou rolling window dans l'élément <Quota>, le déploiement du proxy d'API échoue.
InvalidTimeUnitForDistributedQuota Si l'élément <Distributed> est défini sur true et que l'élément <TimeUnit> est défini sur second, le déploiement du proxy d'API échoue. L'unité de temps second n'est pas valide pour un quota distribué.
InvalidSynchronizeIntervalForAsyncConfiguration Si la valeur spécifiée pour l'élément <SyncIntervalInSeconds> au sein de l'élément <AsynchronousConfiguration> d'une règle de quota est inférieure à zéro, le déploiement du proxy d'API échoue.
InvalidAsynchronizeConfigurationForSynchronousQuota Si la valeur de l'élément <AsynchronousConfiguration> est définie sur true dans une règle de quota, qui possède également une configuration asynchrone définie à l'aide de l'élément <AsynchronousConfiguration>, le déploiement du proxy d'API échoue.

Variables de panne

Ces variables sont définies lorsque cette règle déclenche une erreur. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.

Variables Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name Matches "QuotaViolation"
ratelimit.policy_name.failed policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. ratelimit.QT-QuotaPolicy.failed = true

Exemple de réponse d'erreur

{  
   "fault":{  
      "detail":{  
         "errorcode":"policies.ratelimit.QuotaViolation"
      },
      "faultstring":"Rate limit quota violation. Quota limit  exceeded. Identifier : _default"
   }
}

Exemple de règle de défaillance

<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>

Règle ResetQuota

This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP status Cause Fix
policies.resetquota.InvalidRLPolicy 500 The Quota policy specified in the <Quota> element of the Reset Quota policy is not defined in the API proxy and thus is not available during the flow. The <Quota> element is mandatory and identifies the target Quota policy whose counter should be updated through the Reset Quota policy.
policies.resetquota.FailedToResolveAllowCountRef N/A The reference to the variable containing the allow count in the <Allow> element of the policy cannot be resolved to a value. This element is mandatory and specifies the amount to decrease the quota counter.
policies.resetquota.FailedToResolveRLPolicy 500 The variable referenced by the ref attribute in the <Quota> element cannot be resolved.

Deployment errors

These errors can occur when you deploy a proxy containing this policy.

Error name Cause Fix
InvalidCount If the count value specified in the <Allow> element of the Reset Quota Policy is not an integer, then the deployment of the API proxy fails.

Règle de génération d'erreur

Cette section décrit les codes d'erreur et les messages d'erreur renvoyés ainsi que les variables d'erreur qui sont définis par Edge lorsque cette règle déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Cause
steps.raisefault.RaiseFault 500 Voir la chaîne d'erreur.

Erreurs de déploiement

Aucune

Variables de panne

Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.

Variables Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name = "RaiseFault"
raisefault.policy_name.failed policy_name est le nom spécifié par l'utilisateur de la règle qui je n'ai pas commis d'erreur. raisefault.RF-ThrowError.failed = true

Exemple de réponse d'erreur

{
   "fault":{
      "detail":{
         "errorcode":"steps.raisefault.RaiseFault"
      },
      "faultstring":"Raising fault. Fault name: [name]"
   }
}

Règle de protection contre les expressions régulières

Cette section décrit les codes d'erreur et les messages renvoyés et les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Si vous souhaitez capturer une erreur et générer votre propre erreur personnalisée, définissez l'attribut continueOnError="true" sur l'élément racine de la règle. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Les erreurs renvoyées par les stratégies Edge suivent un format cohérent, comme décrit dans la référence du code d'erreur.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur Message
ExecutionFailed Échec de l'exécution de RegularExpressionProtection StepDefinition {0}. Motif : {1}
InstantiationFailed Échec de l'instanciation de RegularExpressionProtection StepDefinition {0}
NonMessageVariable La variable {0} ne pointe pas vers un Message
SourceMessageNotAvailable Le message {0} n'est pas disponible pour RegularExpressionProtection StepDefinition {1}
ThreatDetected Menace d'expression régulière détectée dans {0}: regex: {1} input: {2}
VariableResolutionFailed Échec de la résolution de la variable {0}

Erreurs de déploiement

Code d'erreur Message Corriger
CannotBeConvertedToNodeset RegularExpressionProtection {0}: le résultat de xpath {1} ne peut pas être converti en ensemble de nœuds. Contexte {2}
DuplicatePrefix RegularExpressionProtection {0}: Dupliquer le préfixe {1}
EmptyJSONPathExpression RegularExpressionProtection {0}: Expression JSONPath vide
EmptyXPathExpression RegularExpressionProtection {0}: Expression XPath vide
InvalidRegularExpression RegularExpressionProtection {0}: Expression régulière non valide {1}, Contexte {2}
JSONPathCompilationFailed RegularExpressionProtection {0}: échec de la compilation de jsonpath {1}. Contexte {2}
NONEmptyPrefixMappedToEmptyURI RegularExpressionProtection {0}: Le préfixe non vide {1} ne peut pas être mappé avec l'URI vide.
NoPatternsToEnforce RegularExpressionProtection {0}: Aucun modèle à appliquer dans {1}
NothingToEnforce RegularExpressionProtection {0}: Au moins un URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload est obligatoire.
XPathCompilationFailed RegularExpressionProtection {0}: Échec de la compilation de xpath {1}. Contexte {2}

Variables de panne

Ces variables sont définies lorsque cette règle déclenche une erreur. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.

Variables Où : Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, comme indiqué dans le tableau ci-dessus. fault.name Matches "ThreatDetected"
regularexpressionprotection.policy_name.failed policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. regularexpressionprotection.Regular-Expressions-Protection-1.failed = true

Règle SOAPMessageValidation

Cette section décrit les codes d'erreur et les messages d'erreur renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Cause Solution
steps.messagevalidation.SourceMessageNotAvailable 500

Cette erreur se produit si une variable spécifiée dans l'élément <Source> de la règle est :

  • hors de portée (non disponible dans le flux spécifique où la règle est exécutée) ;
  • ou
  • impossible à résoudre (non définie),
steps.messagevalidation.NonMessageVariable 500

Cette erreur se produit si l'élément <Source> de la règle SOAPMessageValidation est défini sur une variable qui n'est pas du type message.

Les variables de type Message représentent des requêtes et des réponses HTTP entières. Les variables de flux Edge intégrées request, response et message sont de type message. Pour en savoir plus sur les variables de message, consultez la documentation de référence sur les variables.

steps.messagevalidation.Failed 500 Cette erreur se produit si la règle SOAPMessageValidation ne parvient pas à valider la charge utile du message d'entrée par rapport au schéma XSD ou à la définition WSDL. Elle se produira également si le message de charge utile contient des syntaxes JSON ou XML incorrectes.

Erreurs de déploiement

Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.

Nom de l'erreur Cause Corriger
InvalidResourceType L'élément <ResourceURL> de la stratégie SAMLMessageValidation est défini sur un type de ressource non compatible avec la stratégie.
ResourceCompileFailed Le script de ressource référencé dans l'élément <ResourceURL> de la stratégie SAMLMessageValidation contient une erreur qui empêche sa compilation.
RootElementNameUnspecified L'élément <Element> de la règle SOAPMessageValidation ne contient pas le nom de l'élément racine.
InvalidRootElementName L'élément <Element> de la stratégie SAMLMessageValidation contient un nom d'élément racine qui ne respecte pas les règles XML pour une dénomination valide des éléments.

Règle SAMLAssertion

Cette section décrit les codes d'erreur et les messages d'erreur renvoyés et les variables de panne définies par Edge lorsque cette règle déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs de déploiement

Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.

Nom de l'erreur Cause Corriger
SourceNotConfigured Un ou plusieurs des éléments suivants de la stratégie "Valider une assertion SAML" n'est pas défini ni vide : <Source>, <XPath>, <Namespaces>, <Namespace>.
TrustStoreNotConfigured Si l'élément <TrustStore> est vide ou non spécifié dans la stratégie ValidateSAMLAssertion, le déploiement du proxy d'API échoue. Vous devez indiquer un fichier Trust Store valide.
NullKeyStoreAlias Si l'élément enfant <Alias> est vide ou n'est pas spécifié dans <Keystore> de la règle "Generate SAML Assertion" (Générer l'assertion SAML), puis le déploiement de l'API le proxy échoue. Vous devez saisir un alias de keystore valide.
NullKeyStore Si l'élément enfant <Name> est vide ou n'est pas spécifié dans <Keystore> de la règle GenerateSAMLAssertion, le déploiement de l'API le proxy échoue. Veuillez indiquer un nom de keystore valide.
NullIssuer Si l'élément <Issuer> est vide ou n'est pas spécifié dans la stratégie "Générer l'assertion SAML", le déploiement du proxy d'API échoue. Vous devez saisir une valeur <Issuer> valide.

Variables de panne

Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.

Variables Exemple
fault.name="fault_name" fault_name est le nom de l'erreur . Le nom d'erreur est la dernière partie du code d'erreur. fault.name = "InvalidMediaTpe"
GenerateSAMLAssertion.failed Pour une configuration de règle d'assertion SAML valide, le préfixe d'erreur est ValidateSAMLAssertion. GenerateSAMLAssertion.failed = true

Exemple de réponse d'erreur

{
  "fault": {
    "faultstring": "GenerateSAMLAssertion[GenSAMLAssert]: Invalid media type",
    "detail": {
      "errorcode": "steps.saml.generate.InvalidMediaTpe"
    }
  }
}

Exemple de règle de défaillance

<FaultRules>
    <FaultRule name="invalid_saml_rule">
        <Step>
            <Name>invalid-saml</Name>
        </Step>
        <Condition>(GenerateSAMLAssertion.failed = "true")</Condition>
    </FaultRule>
</FaultRules>

Règle ServiceCallout

Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Cause Corriger
steps.servicecallout.ExecutionFailed 500

Cette erreur peut se produire dans les cas suivants :

  • La règle doit gérer les entrées dont le format est incorrect ou non valide.
  • le service cible de backend renvoie un état d'erreur (par défaut, 4xx ou 5xx).
steps.servicecallout.RequestVariableNotMessageType 500 La variable de requête spécifiée dans la stratégie n'est pas du type Message. Par exemple, s'il s'agit d'une chaîne ou d'un type autre qu'un message, cette erreur s'affiche.
steps.servicecallout.RequestVariableNotRequestMessageType 500 La variable Request spécifiée dans la stratégie n'est pas du type Request Message. Par exemple, s'il s'agit d'un type de réponse, cette erreur s'affiche.

Erreurs de déploiement

Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.

Nom de l'erreur Cause Corriger
URLMissing L'élément <URL> dans <HTTPTargetConnection> est manquant ou vide.
ConnectionInfoMissing Cette erreur se produit si la règle ne comporte pas d'élément <HTTPTargetConnection> ou <LocalTargetConnection>.
InvalidTimeoutValue Cette erreur se produit si la valeur <Timeout> est négative ou égale à zéro.

Variables de panne

Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.

Variables Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name = "RequestVariableNotMessageType"
servicecallout.policy_name.failed policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. servicecallout.SC-GetUserData.failed = true

Exemple de réponse d'erreur

{  
   "fault":{  
      "detail":{  
         "errorcode":"steps.servicecallout.RequestVariableNotMessageType"
      },
      "faultstring":"ServiceCallout[ServiceCalloutGetMockResponse]: 
            request variable data_str value is not of type Message"
   }
}

Exemple de règle de défaillance

<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="RequestVariableNotMessageType">
    <Step>
        <Name>AM-RequestVariableNotMessageType</Name>
    </Step>
    <Condition>(fault.name = "RequestVariableNotMessageType")</Condition>
</FaultRule>

Règle SpikeArrest

Cette section décrit les codes d'erreur et les messages d'erreur renvoyés ainsi que les variables d'erreur qui sont définis par Edge lorsque cette règle déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Cause Corriger
policies.ratelimit.FailedToResolveSpikeArrestRate 500 Cette erreur se produit si la référence à la variable contenant le paramètre de taux dans l'élément <Rate> ne peut pas être résolue en une valeur comprise dans la règle Spike Arrest. Cet élément est obligatoire et permet de spécifier le taux d'arrêt de pic sous la forme intpm ou intps.
policies.ratelimit.InvalidMessageWeight 500 Cette erreur se produit si la valeur spécifiée pour l'élément <MessageWeight> via une variable de flux n'est pas valide (valeur non entière).
policies.ratelimit.SpikeArrestViolation 429

La limite de débit a été dépassée.

<ph type="x-smartling-placeholder">

Erreurs de déploiement

Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.

Nom de l'erreur Cause Corriger
InvalidAllowedRate Si le taux d'arrêt de pic spécifié dans l'élément <Rate> de la règle Spike Arrest n'est pas un entier ou si le taux ne comporte pas ps ou pm comme suffixe, alors le déploiement du proxy d'API échoue.

Variables de panne

Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.

Variables Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name Matches "SpikeArrestViolation"
ratelimit.policy_name.failed policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. ratelimit.SA-SpikeArrestPolicy.failed = true

Exemple de réponse d'erreur

Vous trouverez ci-dessous un exemple de réponse d'erreur :

{  
   "fault":{  
      "detail":{  
         "errorcode":"policies.ratelimit.SpikeArrestViolation"
      },
      "faultstring":"Spike arrest violation. Allowed rate : 10ps"
   }
}

Exemple de règle de défaillance

Vous trouverez ci-dessous un exemple de règle d'erreur pour gérer une erreur 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>

Règle StatisticsCollector

Cette section décrit les messages d'erreur et les variables de flux définies lorsque cette règle déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance pour un proxy. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Aucune

Erreurs de déploiement

Nom de l'erreur Cause Corriger
UnsupportedDatatype Si le type de la variable spécifiée par l'attribut "ref" dans l'élément <Statistic> de la règle StatisticsCollector n'est pas compatible, le déploiement du proxy d'API échoue. Les types de données compatibles sont string, integer, float, long, double et boolean.
InvalidName Si le nom utilisé pour référencer les données collectées pour la variable spécifiée dans l'élément <Statistic> de la règle StatisticsCollector est en conflit avec une variable définie par le système, le déploiement du proxy d'API échoue. Voici quelques-unes des variables définies par le système connues : organization et environment.
DatatypeMissing Si le type de la variable spécifiée par l'attribut ref dans l'élément <Statistic> de la règle StatisticsCollector est manquant, le déploiement du proxy d'API échoue.

Variables de panne

Aucune.

Règle VerifyAPIKey

Cette section décrit les codes d'erreur et les messages d'erreur renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette règle déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Cause
keymanagement.service.CompanyStatusNotActive 401 L'entreprise associée à l'application de développeur qui possède la clé API que vous utilisez est à l'état "inactif". Lorsque l'état d'une entreprise est défini sur "inactif", vous ne pouvez pas accéder aux développeurs ni aux applications associées à cette entreprise. Un administrateur d'organisation peut modifier le statut d'une entreprise à l'aide de l'API Management. Consultez la section Définir l'état d'une entreprise.
keymanagement.service.DeveloperStatusNotActive 401

Le développeur ayant créé l'application de développeur disposant de la clé API que vous utilisez est à l'état "inactif". Lorsque l'état d'un développeur d'applications est défini sur "inactif", toutes les applications de développeur créées par ce développeur sont désactivées. Un administrateur disposant des autorisations appropriées (par exemple, administrateur de l'organisation) peut modifier l'état d'un développeur de différentes manières :

keymanagement.service.invalid_client-app_not_approved 401 L'application de développeur associée à la clé API est révoquée. Une application révoquée ne peut accéder à aucun produit d'API et ne peut pas appeler n'importe quelle API gérée par Apigee Edge. Un administrateur d'organisation peut modifier l'état d'une application de développeur à l'aide de l'API Management. Consultez la section Approuver ou révoquer l'application de développeur
oauth.v2.FailedToResolveAPIKey 401 La règle s'attend à trouver la clé API dans une variable spécifiée dans l'élément <APIKey> de la règle. Cette erreur se produit lorsque la variable attendue n'existe pas (elle ne peut pas être résolue).
oauth.v2.InvalidApiKey 401 Une clé API a été reçue par Edge, mais elle n'est pas valide. Lorsque Edge recherche la clé dans sa base de données, elle doit correspondre exactement à celle qui a été envoyée dans la requête. Si l'API a fonctionné précédemment, assurez-vous que la clé n'a pas été générée de nouveau. Si la clé a été regénérée, cette erreur s'affiche si vous essayez d'utiliser l'ancienne clé. Pour en savoir plus, consultez la section Enregistrer des applications et gérer les clés API.
oauth.v2.InvalidApiKeyForGivenResource 401 Une clé API a été reçue par Edge et elle est valide. Toutefois, elle ne correspond pas à une clé approuvée dans l'application de développement associée à votre proxy d'API via un Produit.

Erreurs de déploiement

Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.

Nom de l'erreur Cause
SpecifyValueOrRefApiKey Aucune valeur ou clé n'est spécifiée pour l'élément <APIKey>.

Variables de panne

Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.

Variables Lieu Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name Matches "FailedToResolveAPIKey"
oauthV2.policy_name.failed policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. oauthV2.VK-VerifyAPIKey.failed = true

Exemple de réponses d'erreur

{
   "fault":{
      "faultstring":"Invalid ApiKey",
      "detail":{
         "errorcode":"oauth.v2.InvalidApiKey"
      }
   }
}
{
   "fault":{
      "detail":{
         "errorcode":"keymanagement.service.DeveloperStatusNotActive"
      },
      "faultstring":"Developer Status is not Active"
   }
}

Exemple de règle de défaillance

<FaultRule name="FailedToResolveAPIKey">
    <Step>
        <Name>AM-FailedToResolveAPIKey</Name>
    </Step>
    <Condition>(fault.name Matches "FailedToResolveAPIKey") </Condition>
</FaultRule>

Règle VerifyJWS

Cette section décrit les codes d'erreur et les messages d'erreur renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Se produit quand
steps.jws.AlgorithmInTokenNotPresentInConfiguration 401 Se produit lorsque la règle de validation comporte plusieurs algorithmes.
steps.jws.AlgorithmMismatch 401 L'algorithme spécifié dans l'en-tête par la règle "Generate" (Générer) ne correspond pas à celui attendu dans la règle "Verify" (Vérifier). Les algorithmes spécifiés doivent correspondre.
steps.jws.ContentIsNotDetached 401 <DetachedContent> est spécifié lorsque le fichier JWS ne contient pas de charge utile de contenu dissociée.
steps.jws.FailedToDecode 401 La règle n'a pas pu décoder le jeton JWS. Le jeton JWS est peut-être corrompu.
steps.jws.InsufficientKeyLength 401 Pour une clé inférieure à 32 octets pour l'algorithme HS256
steps.jws.InvalidClaim 401 en cas de revendication ou de non-concordance des revendications, ou si un en-tête ou un en-tête est manquant.
steps.jws.InvalidCurve 401 La courbe spécifiée par la clé n'est pas valide pour l'algorithme à courbe elliptique.
steps.jws.InvalidJsonFormat 401 JSON non valide trouvé dans l'en-tête JWS.
steps.jws.InvalidJws 401 Cette erreur se produit en cas d'échec de la validation de la signature du jeton JWS.
steps.jws.InvalidPayload 401 La charge utile JWS n'est pas valide.
steps.jws.InvalidSignature 401 <DetachedContent> est omis et le jeton JWS possède une charge utile de contenu dissociée.
steps.jws.KeyIdMissing 401 La règle de validation utilise un JWKS comme source pour les clés publiques, mais le JWS signé n'inclut pas de propriété kid dans l'en-tête.
steps.jws.KeyParsingFailed 401 Impossible d'analyser la clé publique à partir des informations de clé fournies.
steps.jws.MissingPayload 401 La charge utile JWS est manquante.
steps.jws.NoAlgorithmFoundInHeader 401 Cette erreur produit lorsque le jeton JWS omet l'en-tête de l'algorithme.
steps.jws.NoMatchingPublicKey 401 La règle de validation utilise un JWKS comme source pour les clés publiques, mais le kid du JWS signé ne figure pas dans le JWKS.
steps.jws.UnhandledCriticalHeader 401 Un en-tête trouvé par la règle de vérification JWS dans l'en-tête crit n'est pas répertorié dans KnownHeaders.
steps.jws.UnknownException 401 Une exception inconnue s'est produite.
steps.jws.WrongKeyType 401 Type de clé spécifié incorrect. Par exemple, si vous spécifiez une clé RSA pour un algorithme à courbe elliptique ou une clé à courbe elliptique pour un algorithme RSA.

Erreurs de déploiement

Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.

Nom de l'erreur Se produit quand
InvalidAlgorithm Les seules valeurs valides sont : RRS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512, HS256, HS384, HS512.

EmptyElementForKeyConfiguration

FailedToResolveVariable

InvalidConfigurationForActionAndAlgorithmFamily

InvalidConfigurationForVerify

InvalidEmptyElement

InvalidFamiliesForAlgorithm

InvalidKeyConfiguration

InvalidNameForAdditionalClaim

InvalidNameForAdditionalHeader

InvalidPublicKeyId

InvalidPublicKeyValue

InvalidSecretInConfig

InvalidTypeForAdditionalClaim

InvalidTypeForAdditionalHeader

InvalidValueForElement

InvalidValueOfArrayAttribute

InvalidVariableNameForSecret

MissingConfigurationElement

MissingElementForKeyConfiguration

MissingNameForAdditionalClaim

MissingNameForAdditionalHeader

Autres erreurs de déploiement possibles.

Variables de panne

Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.

Variables Lieu Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name Matches "TokenExpired"
JWS.failed Toutes les règles JWS définissent la même variable en cas d'échec. jws.JWS-Policy.failed = true

Exemple de réponse d'erreur

Pour le traitement des exceptions, la meilleure pratique consiste à intercepter la partie errorcode de la réponse. Ne vous fiez pas au texte dans faultstring, car il pourrait changer.

Exemple de règle de défaillance

<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>

Règle VerifyJWT

Cette section décrit les codes d'erreur et les messages d'erreur renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Se produit quand
steps.jwt.AlgorithmInTokenNotPresentInConfiguration 401 Se produit lorsque la règle de validation comporte plusieurs algorithmes.
steps.jwt.AlgorithmMismatch 401 L'algorithme spécifié dans la règle "Générer" ne correspond pas à celui attendu dans la règle "Vérifier". Les algorithmes spécifiés doivent correspondre.
steps.jwt.FailedToDecode 401 La règle n'a pas pu décoder le jeton JWT. Le jeton JWT est peut-être corrompu.
steps.jwt.GenerationFailed 401 La règle n'a pas pu générer le jeton JWT.
steps.jwt.InsufficientKeyLength 401 Pour une clé inférieure à 32 octets pour l'algorithme HS256, inférieure à 48 octets pour l'algorithme HS386 et inférieure à 64 octets pour l'algorithme HS512.
steps.jwt.InvalidClaim 401 en cas de revendication ou de non-concordance des revendications, ou si un en-tête ou un en-tête est manquant.
steps.jwt.InvalidCurve 401 La courbe spécifiée par la clé n'est pas valide pour l'algorithme à courbe elliptique.
steps.jwt.InvalidJsonFormat 401 JSON non valide trouvé dans l'en-tête ou la charge utile.
steps.jwt.InvalidToken 401 Cette erreur se produit en cas d'échec de la validation de la signature du jeton JWT.
steps.jwt.JwtAudienceMismatch 401 La revendication d'audience a échoué lors de la vérification du jeton.
steps.jwt.JwtIssuerMismatch 401 La revendication d'émetteur a échoué lors de la vérification du jeton.
steps.jwt.JwtSubjectMismatch 401 La revendication de sujet a échoué lors de la vérification du jeton.
steps.jwt.KeyIdMissing 401 La stratégie de validation utilise un JWKS comme source pour les clés publiques, mais le jeton JWT signé n'inclut pas de propriété kid dans l'en-tête.
steps.jwt.KeyParsingFailed 401 Impossible d'analyser la clé publique à partir des informations de clé fournies.
steps.jwt.NoAlgorithmFoundInHeader 401 Se produit lorsque le jeton JWT ne contient pas d'en-tête d'algorithme.
steps.jwt.NoMatchingPublicKey 401 La règle de vérification utilise un JWKS en tant que source pour les clés publiques, mais le kid du jeton JWT signé n'est pas répertorié dans le JWKS.
steps.jwt.SigningFailed 401 Dans GenerateJWT, pour une clé inférieure à la taille minimale des algorithmes HS384 ou HS512
steps.jwt.TokenExpired 401 La règle tente de vérifier un jeton expiré.
steps.jwt.TokenNotYetValid 401 Le jeton n'est pas encore valide.
steps.jwt.UnhandledCriticalHeader 401 Un en-tête trouvé par la règle de vérification JWT dans l'en-tête crit n'est pas répertorié dans KnownHeaders.
steps.jwt.UnknownException 401 Une exception inconnue s'est produite.
steps.jwt.WrongKeyType 401 Type de clé spécifié incorrect. Par exemple, si vous spécifiez une clé RSA pour un algorithme à courbe elliptique ou une clé à courbe elliptique pour un algorithme RSA.

Erreurs de déploiement

Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.

Nom de l'erreur Cause Solution
InvalidNameForAdditionalClaim Le déploiement échouera si la revendication utilisée dans l'élément enfant <Claim> de l'élément <AdditionalClaims> est l'un des noms enregistrés suivants : kid, iss, sub, aud, iat, exp, nbf ou jti.
InvalidTypeForAdditionalClaim Si la revendication utilisée dans l'élément enfant <Claim> de l'élément <AdditionalClaims> n'est pas du type string, number, boolean ou map, le déploiement échouera.
MissingNameForAdditionalClaim Si le nom de la revendication n'est pas spécifié dans l'élément enfant <Claim> de l'élément <AdditionalClaims>, le déploiement échouera.
InvalidNameForAdditionalHeader Cette erreur se produit lorsque le nom de la revendication utilisé dans l'élément enfant <Claim> de l'élément <AdditionalClaims> est alg ou typ.
InvalidTypeForAdditionalHeader Si le type de revendication utilisé dans l'élément enfant <Claim> de l'élément <AdditionalClaims> n'est pas du type string, number, boolean ou map, le déploiement échouera.
InvalidValueOfArrayAttribute Cette erreur se produit lorsque la valeur de l'attribut de tableau dans l'élément enfant <Claim> de l'élément <AdditionalClaims> n'est pas définie sur true ou false.
InvalidValueForElement Si la valeur spécifiée dans l'élément <Algorithm> n'est pas acceptée, le déploiement échouera.
MissingConfigurationElement Cette erreur se produit si l'élément <PrivateKey> n'est pas utilisé avec les algorithmes de la famille RSA ou si l'élément <SecretKey> n'est pas utilisé avec les algorithmes de la famille HS.
InvalidKeyConfiguration Si l'élément enfant <Value> n'est pas défini dans les éléments <PrivateKey> ou <SecretKey>, le déploiement échouera.
EmptyElementForKeyConfiguration Si l'attribut "ref" de l'élément enfant <Value> des éléments <PrivateKey> ou <SecretKey> est vide ou non spécifié, le déploiement échouera.
InvalidConfigurationForVerify Cette erreur se produit si l'élément <Id> est défini dans l'élément <SecretKey>.
InvalidEmptyElement Cette erreur se produit si l'élément <Source> de la règle de vérification JWT est vide. Si elle est présente, elle doit être définie avec un nom de variable de flux Edge.
InvalidPublicKeyValue Si la valeur utilisée dans l'élément enfant <JWKS> de l'élément <PublicKey> n'utilise pas un format valide tel que spécifié dans la RFC 7517, le déploiement échouera.
InvalidConfigurationForActionAndAlgorithm Si l'élément <PrivateKey> est utilisé avec des algorithmes de la famille HS ou que l'élément <SecretKey> est utilisé avec des algorithmes de la famille RSA, le déploiement échouera.

Variables de panne

Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.

Variables Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name Matches "TokenExpired"
JWT.failed Toutes les règles JWT définissent la même variable en cas d'échec. JWT.failed = true

Exemple de réponse d'erreur

Codes d'erreur de la règle JWT

Pour le traitement des erreurs, la meilleur pratique consiste à intercepter la partie errorcode de la réponse. Ne vous fiez pas au texte dans faultstring, car il pourrait changer.

Exemple de règle de défaillance

    <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>
    

Règle XMLThreatProtection

Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Cause Corriger
steps.xmlthreatprotection.ExecutionFailed 500 La règle XMLThreatProtection peut générer de nombreux types d'erreurs ExecutionFailed. La plupart de ces erreurs se produisent lorsqu'un seuil spécifique défini dans la règle est dépassé. Ces types d'erreurs incluent: longueur du nom de l'élément, nombre d'enfants, profondeur de nœud, nombre d'attributs, longueur du nom de l'attribut, et bien d'autres. Vous pouvez consulter la liste complète dans la rubrique Résolution des erreurs d'exécution de la stratégie XMLThreatProtection.
steps.xmlthreatprotection.InvalidXMLPayload 500 Cette erreur se produit si la charge utile du message d'entrée spécifié par l'élément <Source> de la stratégie XMLThreatProtection n'est pas un document XML valide.
steps.xmlthreatprotection.SourceUnavailable 500 Cette erreur se produit si la variable message spécifiée dans l'élément <Source> :
  • est hors de portée (non disponible dans le flux spécifique où la règle est exécutée)
  • n'est pas une des valeurs valides request, response ou message.
steps.xmlthreatprotection.NonMessageVariable 500 Cette erreur se produit si l'élément <Source> est défini sur une variable qui n'est pas de type message.

Remarques :

  • Le nom d'erreur "ExecutionFailed" est le nom d'erreur par défaut. Il est renvoyé quel que soit le le type d'erreur détecté ; Toutefois, vous pouvez modifier cette valeur par défaut en définissant au niveau de l'organisation. Lorsque cette propriété est définie, le nom de l'erreur reflète la valeur réelle . Exemple : "TextExceeded" ou "AttrValueExceeded". Pour en savoir plus, consultez la section Remarques sur l'utilisation.
  • L'état HTTP 500 est défini par défaut. Toutefois, pour les erreurs de flux de requêtes, cette valeur peut être remplacée par 400 en définissant une propriété au niveau de l'organisation. Pour en savoir plus, consultez la section Remarques sur l'utilisation.

Erreurs de déploiement

Aucune

Variables de panne

Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.

Variables Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name Matches "SourceUnavailable"
xmlattack.policy_name.failed policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. xmlattack.XPT-SecureRequest.failed = true

Exemple de réponse d'erreur

{
  "fault": {
    "faultstring": "XMLThreatProtection[XPT-SecureRequest]: Execution failed. reason: XMLThreatProtection[XTP-SecureRequest]: Exceeded object entry name length at line 2",
    "detail": {
      "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
    }
  }
}

Exemple de règle de défaillance

<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>

Règle XMLtoJSON

Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Cause Corriger
steps.xmltojson.ExecutionFailed 500 Cette erreur se produit lorsque la charge utile d'entrée (XML) est vide ou que le code XML d'entrée est mal configuré ou non valide.
steps.xmltojson.InCompatibleType 500 Cette erreur se produit si le type de la variable définie dans l'élément <Source> et l'élément <OutputVariable> ne sont pas identiques. La correspondance du type des variables contenues dans l'élément <Source> et l'élément <OutputVariable> est obligatoire.
steps.xmltojson.InvalidSourceType 500 Cette erreur se produit si le type de la variable utilisée pour définir l'élément <Source> n'est pas valide. Les types de variable valides sont message et chaîne.
steps.xmltojson.OutputVariableIsNotAvailable 500 Cette erreur se produit si la variable spécifiée dans l'élément <Source> de la règle XML vers JSON est de type chaîne et que l'élément <OutputVariable> n'est pas défini. L'élément <OutputVariable> est obligatoire lorsque la variable définie dans l'élément <Source> est de type chaîne.
steps.xmltojson.SourceUnavailable 500 Cette erreur se produit si la variable message spécifiée dans l'élément <Source> de la règle XML vers JSON est l'une des suivantes :
  • hors du champ d'application (non disponible dans le flux spécifique où la règle est exécutée) ou
  • impossible à résoudre (non définie),

Erreurs de déploiement

Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.

Nom de l'erreur Cause Corriger
EitherOptionOrFormat Si l'un des éléments <Options> ou <Format> n'est pas déclaré dans la règle XML vers JSON, le déploiement du proxy d'API échoue.
UnknownFormat Si un format inconnu est défini sur l'élément <Format> de la règle XML vers JSON, le déploiement du proxy d'API échoue. Les formats prédéfinis sont les suivants : xml.com, yahoo, google et badgerFish.

Variables de panne

Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.

Variables Exemple
fault.name="fault_name" fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name = "SourceUnavailable"
xmltojson.policy_name.failed policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. xmltojson.XMLtoJSON-1.failed = true

Exemple de réponse d'erreur

{
  "fault": {
    "faultstring": "XMLToJSON[XMLtoJSON-1]: Source xyz is not available",
    "detail": {
      "errorcode": "steps.xml2json.SourceUnavailable"
    }
  }
}

Exemple de règle de défaillance

<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>

Règle XSLTransform

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Cause Solution
steps.xsl.XSLSourceMessageNotAvailable 500 Cette erreur se produit si le message ou la variable de chaîne spécifiée dans l'élément <Source> de la règle de transformation XSL n'est pas dans le champ d'application (non disponible dans le flux spécifique où la règle est exécutée) ou ne peut pas être résolu (non défini).
steps.xsl.XSLEvaluationFailed 500 Cette erreur se produit si la charge utile du fichier XML d'entrée est non disponible/mal formée, ou si la règle XSLTransform échoue/ne parvient pas à transformer le fichier XML d'entrée en fonction des règles de transformation fournies dans le fichier XSL. Plusieurs raisons peuvent expliquer l'échec de la règle XSLTransform. La raison de l'échec dans le message d'erreur fournira davantage d'informations sur la cause de l'échec.

Erreurs de déploiement

Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.

Nom de l'erreur Cause Solution
XSLEmptyResourceUrl Si l'élément <ResourceURL> de la règle de Transformation XSL est vide, le déploiement du proxy d'API échoue.
XSLInvalidResourceType Si le type de ressource spécifié dans l'élément <ResourceURL> de la règle de Transformation XSL n'est pas du type xsl, le déploiement du proxy d'API échoue.