Estás viendo la documentación de Apigee Edge.
Ve a la
documentación de Apigee X. info
Política AccessControl
En esta sección, se describen los códigos y mensajes de error que se muestran, y las variables de error que establece Edge cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.
Errores de entorno de ejecución
Estos errores pueden producirse cuando se ejecuta la política.
| Código de falla | Estado de HTTP | Causa | Corregir |
|---|---|---|---|
accesscontrol.IPDeniedAccess |
403 | La dirección IP del cliente, o una dirección IP que se pasa en la solicitud a la API, coincide con una dirección IP especificada en el elemento <SourceAddress> dentro del elemento <MatchRule> de la Política de control de acceso y el atributo action del elemento <MatchRule> se configura como DENY. |
build |
Variables con fallas
Estas variables se configuran cuando se genera un error de entorno de ejecución. Para obtener más información, consulta Variables específicas de los errores de política.
| Variables | Donde | Ejemplo |
|---|---|---|
fault.name="fault_name" |
fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. | fault.name Matches "IPDeniedAccess" |
acl.policy_name.failed |
policy_name es el nombre especificado por el usuario de la política que generó la falla. | acl.AC-AllowAccess.failed = true |
Ejemplo de respuesta de falla
{
"fault":{
"faultstring":"Access Denied for client ip : 52.211.243.3"
"detail":{
"errorcode":"accesscontrol.IPDeniedAccess"
}
}
}Ejemplo de regla de falla
<FaultRule name="IPDeniedAccess">
<Step>
<Name>AM-IPDeniedAccess</Name>
<Condition>(fault.name Matches "IPDeniedAccess") </Condition>
</Step>
<Condition>(acl.failed = true) </Condition>
</FaultRule>Política AccessEntity
For related information, see What you need to know about policy errors and Handling faults.
Runtime errors
None.
Deployment errors
| Error name | Fault string | HTTP status | Occurs when |
|---|---|---|---|
InvalidEntityType |
Invalid type [entity_type] in ACCESSENTITYStepDefinition
[policy_name] |
N/A | The entity type used must be one of the supported types. |
Política 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 Message type variables represent entire HTTP requests and responses. The built-in Edge
flow variables |
build |
steps.assignmessage.UnresolvedVariable |
500 |
This error occurs if a variable specified in the Assign Message policy is either:
|
build |
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.
|
build |
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.
|
build |
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>
Política de BasicAuthentication
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 | Cause | Fix |
|---|---|---|---|
steps.basicauthentication.InvalidBasicAuthenticationSource |
500 | On a decode when the incoming Base64 encoded string does not contain a valid value or the header is malformed (e.g., does not start with "Basic"). | build |
steps.basicauthentication.UnresolvedVariable |
500 | The required source variables for the decode or encode are not present. This error can
only occur if IgnoreUnresolvedVariables is false. |
build |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Occurs when | Fix |
|---|---|---|
UserNameRequired |
The <User> element must be present for the named operation. |
build |
PasswordRequired |
The <Password> element must be present for the named operation. |
build |
AssignToRequired |
The <AssignTo> element must be present for the named operation. |
build |
SourceRequired |
The <Source> element must be present for the named operation. |
build |
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 "UnresolvedVariable" |
BasicAuthentication.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | BasicAuthentication.BA-Authenticate.failed = true |
Example error response
{ "fault":{ "detail":{ "errorcode":"steps.basicauthentication.UnresolvedVariable" }, "faultstring":"Unresolved variable : request.queryparam.password" } }
Example fault rule
<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>Política de 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\ |
Concurrent Ratelimit policy {0} attachment is not allowed at proxy request/response/fault paths. This policy must be placed on the Target Endpoint. |
ConcurrentRatelimitStepAttachment\ |
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>Política DecodeJWS
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 |
|---|---|---|
steps.jws.FailedToDecode |
401 | The policy was unable to decode the JWS. The JWS is possibly corrupted. |
steps.jws.FailedToResolveVariable |
401 | Occurs when the flow variable specified in the <Source> element of
the policy does not exist. |
steps.jws.InvalidClaim |
401 | For a missing claim or claim mismatch, or a missing header or header mismatch. |
steps.jws.InvalidJsonFormat |
401 | Invalid JSON found in the JWS header. |
steps.jws.InvalidJws |
401 | This error occurs when the JWS signature verification fails. |
steps.jws.InvalidPayload |
401 | The JWS payload is invalid. |
steps.jws.InvalidSignature |
401 | <DetachedContent> is omitted and the JWS has a detached content payload. |
steps.jws.MissingPayload |
401 | The JWS payload is missing. |
steps.jws.NoAlgorithmFoundInHeader |
401 | Occurs when the JWS omits the algorithm header. |
steps.jws.UnknownException |
401 | An unknown exception occurred. |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Occurs when |
|---|---|
InvalidAlgorithm |
The only valid values are: RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512, HS256, HS384, HS512. |
|
|
Other possible deployment errors. |
Variables con fallas
Estas variables se configuran cuando se genera un error de entorno de ejecución. Para obtener más información, consulta Qué debes saber sobre los errores de la política.
| Variables | Donde | Ejemplo |
|---|---|---|
fault.name="fault_name" |
fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. | fault.name Matches "TokenExpired" |
JWS.failed |
Todas las políticas de JWS establecen la misma variable en caso de falla. | jws.JWS-Policy.failed = true |
Ejemplo de respuesta de error
Para controlar errores, se recomienda capturar la parte errorcode de la respuesta de error. No dependas del texto en la faultstring, ya que podría cambiar.
Ejemplo de regla de falla
<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>Política DecodeJWT
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.jwt.FailedToDecode |
401 | Occurs when the policy is unable to decode the JWT. The JWT may be malformed, invalid or otherwise not decodable. | build |
steps.jwt.FailedToResolveVariable |
401 | Occurs when the flow variable specified in the <Source> element of
the policy does not exist. |
|
steps.jwt.InvalidToken |
401 | Occurs when the flow variable specified in the <Source> element of
the policy is out of scope or can't be resolved. |
build |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
InvalidEmptyElement |
Occurs when the flow variable containing the JWT to be decoded is not specified in the
<Source> element of the policy.
|
build |
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 "TokenExpired" |
JWT.failed |
All JWT policies set the same variable in the case of a failure. | JWT.failed = true |
Example error response
For error handling, the best practice is to trap the errorcode part of the error
response. Do not rely on the text in the faultstring, because it could change.
Example fault rule
<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>
Política ExtractVariables
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:
|
build |
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. |
build |
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. |
build |
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. | build |
steps.extractvariables.SourceMessageNotAvailable |
500 | This error occurs if the message
variable specified in the Source element of the policy
is either:
|
build |
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. | build |
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. |
build |
NONEmptyPrefixMappedToEmptyURI |
This error occurs if the policy has a prefix defined in the
Namespace element under the XMLPayload element, but no URI is
defined. |
build |
DuplicatePrefix |
This error occurs if the policy has the same prefix defined more than
once in the Namespace element under the XMLPayload element. |
build |
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.
|
build |
EmptyXPathExpression |
If the policy has an empty XPath expression within the XMLPayload
element, then the deployment of the API proxy fails. |
build |
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. |
build |
EmptyJSONPathExpression |
If the policy has an empty XPath expression within the
XMLPayload element, then the deployment of the API proxy fails. |
build |
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. |
build |
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. |
build |
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. |
build |
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. |
build |
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.
|
build |
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>
Política GenerateJWS
En esta sección, se describen los códigos y mensajes de error que se muestran y las variables de fallas que establece Edge cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Lo que necesitas saber sobre errores de políticas y Controla fallas.
Errores de entorno de ejecución
Estos errores pueden producirse cuando se ejecuta la política.
| Código de falla | Estado de HTTP | Ocurre cuando |
|---|---|---|
steps.jws.GenerationFailed |
401 | La política no pudo generar el JWS. |
steps.jws.InsufficientKeyLength |
401 | En el caso de una clave de menos de 32 bytes para el algoritmo HS256 |
steps.jws.InvalidClaim |
401 | Porque falta un reclamo o un reclamo, o bien el encabezado o el encabezado no coinciden. |
steps.jws.InvalidCurve |
401 | La curva especificada por la clave no es válida para el algoritmo de curva elíptica. |
steps.jws.InvalidJsonFormat |
401 | Se encontró un JSON no válido en el encabezado JWS. |
steps.jws.InvalidPayload |
401 | La carga útil de JWS no es válida. |
steps.jws.InvalidSignature |
401 | <DetachedContent> se omite y la JWS tiene una carga útil de contenido desconectada. |
steps.jws.KeyIdMissing |
401 | La política Verificar usa un JWKS como fuente para las claves públicas, pero el JWS firmado no incluye una propiedad kid en el encabezado. |
steps.jws.KeyParsingFailed |
401 | No se pudo analizar la clave pública a partir de la información clave proporcionada. |
steps.jws.MissingPayload |
401 | Falta la carga útil de JWS. |
steps.jws.NoAlgorithmFoundInHeader |
401 | Ocurre cuando el JWS omite el encabezado del algoritmo. |
steps.jws.SigningFailed |
401 | En GenerateJWS, ocurre en el caso de una clave que es menor que el tamaño mínimo para los algoritmos HS384 o HS512. |
steps.jws.UnknownException |
401 | Se produjo una excepción desconocida. |
steps.jws.WrongKeyType |
401 | El tipo de clave especificado es incorrecto. Por ejemplo, si especificas una clave RSA para un algoritmo de curva elíptica o una clave de curva para un algoritmo de RSA. |
Errores en la implementación
Estos errores pueden generarse cuando implementas un proxy que contiene esta política.
| Nombre del error | Ocurre cuando |
|---|---|
InvalidAlgorithm |
Los únicos valores válidos son RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512, HS256, HS384, HS512. |
|
|
Otros posibles errores de implementación |
Variables con fallas
Estas variables se configuran cuando se genera un error de entorno de ejecución. Para obtener más información, consulta Qué debes saber sobre los errores de la política.
| Variables | Donde | Ejemplo |
|---|---|---|
fault.name="fault_name" |
fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. | fault.name Matches "TokenExpired" |
JWS.failed |
Todas las políticas de JWS establecen la misma variable en caso de falla. | jws.JWS-Policy.failed = true |
Ejemplo de respuesta de error
Para controlar errores, se recomienda capturar la parte errorcode de la respuesta de error. No dependas del texto en la faultstring, ya que podría cambiar.
Ejemplo de regla de falla
<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>Genera GenerateJWT
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 |
|---|---|---|
steps.jwt.AlgorithmInTokenNotPresentInConfiguration |
401 | Occurs when the verification policy has multiple algorithms. |
steps.jwt.AlgorithmMismatch |
401 | The algorithm specified in the Generate policy did not match the one expected in the Verify policy. The algorithms specified must match. |
steps.jwt.FailedToDecode |
401 | The policy was unable to decode the JWT. The JWT is possibly corrupted. |
steps.jwt.GenerationFailed |
401 | The policy was unable to generate the JWT. |
steps.jwt.InsufficientKeyLength |
401 | For a key less than 32 bytes for the HS256 algorithm, less than 48 bytes for the HS386 algortithm, and less than 64 bytes for the HS512 algorithm. |
steps.jwt.InvalidClaim |
401 | For a missing claim or claim mismatch, or a missing header or header mismatch. |
steps.jwt.InvalidCurve |
401 | The curve specified by the key is not valid for the Elliptic Curve algorithm. |
steps.jwt.InvalidJsonFormat |
401 | Invalid JSON found in the header or payload. |
steps.jwt.InvalidToken |
401 | This error occurs when the JWT signature verification fails. |
steps.jwt.JwtAudienceMismatch |
401 | The audience claim failed on token verification. |
steps.jwt.JwtIssuerMismatch |
401 | The issuer claim failed on token verification. |
steps.jwt.JwtSubjectMismatch |
401 | The subject claim failed on token verification. |
steps.jwt.KeyIdMissing |
401 | The Verify policy uses a JWKS as a source for public keys, but the signed JWT does not
include a kid property in the header. |
steps.jwt.KeyParsingFailed |
401 | The public key could not be parsed from the given key information. |
steps.jwt.NoAlgorithmFoundInHeader |
401 | Occurs when the JWT contains no algorithm header. |
steps.jwt.NoMatchingPublicKey |
401 | The Verify policy uses a JWKS as a source for public keys, but the kid
in the signed JWT is not listed in the JWKS. |
steps.jwt.SigningFailed |
401 | In GenerateJWT, for a key less than the minimum size for the HS384 or HS512 algorithms |
steps.jwt.TokenExpired |
401 | The policy attempts to verify an expired token. |
steps.jwt.TokenNotYetValid |
401 | The token is not yet valid. |
steps.jwt.UnhandledCriticalHeader |
401 | A header found by the Verify JWT policy in the crit header is not
listed in KnownHeaders. |
steps.jwt.UnknownException |
401 | An unknown exception occurred. |
steps.jwt.WrongKeyType |
401 | Wrong type of key specified. For example, if you specify an RSA key for an Elliptic Curve algorithm, or a curve key for an RSA algorithm. |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
InvalidNameForAdditionalClaim |
The deployment will fail if the claim used in the child element <Claim>
of the <AdditionalClaims> element is one of the following registered names:
kid, iss, sub, aud, iat,
exp, nbf, or jti.
|
build |
InvalidTypeForAdditionalClaim |
If the claim used in the child element <Claim>
of the <AdditionalClaims> element is not of type string, number,
boolean, or map, the deployment will fail.
|
build |
MissingNameForAdditionalClaim |
If the name of the claim is not specified in the child element <Claim>
of the <AdditionalClaims> element, the deployment will fail.
|
build |
InvalidNameForAdditionalHeader |
This error ccurs when the name of the claim used in the child element <Claim>
of the <AdditionalClaims> element is either alg or typ.
|
build |
InvalidTypeForAdditionalHeader |
If the type of claim used in the child element <Claim>
of the <AdditionalClaims> element is not of type string, number,
boolean, or map, the deployment will fail.
|
build |
InvalidValueOfArrayAttribute |
This error occurs when the value of the array attribute in the child element <Claim>
of the <AdditionalClaims> element is not set to true or false.
|
build |
InvalidConfigurationForActionAndAlgorithm |
If the <PrivateKey> element is used with HS Family algorithms or
the <SecretKey> element is used with RSA Family algorithms, the
deployment will fail.
|
build |
InvalidValueForElement |
If the value specified in the <Algorithm> element is not a supported value,
the deployment will fail.
|
build |
MissingConfigurationElement |
This error will occur if the <PrivateKey> element is not used with
RSA family algorithms or the <SecretKey> element is not used with HS Family
algorithms.
|
build |
InvalidKeyConfiguration |
If the child element <Value> is not defined in the <PrivateKey>
or <SecretKey> elements, the deployment will fail.
|
build |
EmptyElementForKeyConfiguration |
If the ref attribute of the child element <Value> of the <PrivateKey>
or <SecretKey> elements is empty or unspecified, the deployment will fail.
|
build |
InvalidVariableNameForSecret |
This error occurs if the flow variable name specified in the ref attribute of the child
element <Value> of the <PrivateKey>
or <SecretKey> elements does not contain the private prefix (private.).
|
build |
InvalidSecretInConfig |
This error occurs if the child element <Value> of the <PrivateKey>
or <SecretKey> elements does not contain the private prefix (private.).
|
build |
InvalidTimeFormat |
If the value specified in the<NotBefore> element does not use a
supported format, the deployment will fail.
|
build |
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 "TokenExpired" |
JWT.failed |
All JWT policies set the same variable in the case of a failure. | JWT.failed = true |
Example error response
For error handling, the best practice is to trap the errorcode part of the error
response. Do not rely on the text in the faultstring, because it could change.
Example fault rule
<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>
Política JavaCallout
En esta sección, se describen los códigos y mensajes de error que se muestran, y las variables de falla que establece Edge cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.
Errores de entorno de ejecución
Estos errores pueden producirse cuando se ejecuta la política.
| Código de falla | Estado de HTTP | Causa | Corregir |
|---|---|---|---|
steps.javacallout.ExecutionError |
500 | Ocurre cuando el código Java arroja una excepción o muestra un resultado nulo durante la ejecución de una política JavaCallout. | build |
Errores en la implementación
Estos errores se pueden generar cuando se implementa el proxy que contiene la política.
| Nombre del error | String de error | Estado de HTTP | Ocurre cuando |
|---|---|---|---|
ResourceDoesNotExist |
Resource with name
[name] and type [type] does not exist |
N/A | No existe el archivo especificado en el elemento <ResourceURL>. |
JavaCalloutInstantiationFailed |
Failed to instantiate the JavaCallout Class [classname] |
N/A | El archivo de clase especificado en el elemento <ClassName> no está en el archivo jar. |
IncompatibleJavaVersion |
Failed to load java class [classname] definition due to - [reason] |
N/A | Consulta la cadena de errores. Consulta también Funciones admitidas y versiones compatibles. |
JavaClassNotFoundInJavaResource |
Failed to find the ClassName in java resource [jar_name] -
[class_name] |
N/A | Consulta la cadena de errores. |
JavaClassDefinitionNotFound |
Failed to load java class [class_name] definition due to - [reason] |
N/A | Consulta la cadena de errores. |
NoAppropriateConstructor |
No appropriate constructor found in JavaCallout class [class_name] |
N/A | Consulta la cadena de errores. |
NoResourceForURL |
Could not locate a resource with URL [string] |
N/A | Consulta la cadena de errores. |
Variables con fallas
Estas variables se establecen cuando esta política activa un error. Para obtener más información, consulta Qué debes saber sobre los errores de la política.
| Variables | Donde | Ejemplo |
|---|---|---|
fault.name="fault_name" |
fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. | fault.name Matches "ExecutionError" |
javacallout.policy_name.failed |
policy_name es el nombre especificado por el usuario de la política que generó la falla. | javacallout.JC-GetUserData.failed = true |
Ejemplo de respuesta de error
{ "fault":{ "faultstring":"Failed to execute JavaCallout. [policy_name]", "detail":{ "errorcode":"javacallout.ExecutionError" } } }
Ejemplo de regla de falla
<FaultRule name="JavaCalloutFailed"> <Step> <Name>AM-JavaCalloutError</Name> </Step> <Condition>(fault.name Matches "ExecutionError") </Condition> </FaultRule>
Política JavaScript
En esta sección, se describen los códigos y mensajes de error que se muestran, así como las variables de falla. que establece Edge cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Lo que necesitas saber sobre errores de políticas y Controla fallas.
Errores de entorno de ejecución
Estos errores pueden producirse cuando se ejecuta la política.
| Código de falla | Estado de HTTP | Causa | Corregir |
|---|---|---|---|
steps.javascript.ScriptExecutionFailed |
500 | La política de JavaScript puede arrojar muchos tipos diferentes de errores de ScriptExecutionFailed. Comúnmente tipos de errores detectados son RangeError, ReferenceError, SyntaxError, TypeError y URIError. | build |
steps.javascript.ScriptExecutionFailedLineNumber |
500 | Se produjo un error en el código JavaScript. Consulta la string con error para obtener más detalles. | N/A |
steps.javascript.ScriptSecurityError |
500 | Se produjo un error de seguridad cuando se ejecutó JavaScript. Consulta la string con error para obtener más detalles. | N/A |
Errores en la implementación
Estos errores pueden generarse cuando implementas un proxy que contiene esta política.
| Nombre del error | Causa | Corregir |
|---|---|---|
InvalidResourceUrlFormat |
Si el formato de la URL del recurso especificado en elemento <ResourceURL> o <IncludeURL> de la política de JavaScript no es válida, la implementación del proxy de la API falla. |
build |
InvalidResourceUrlReference |
Si los elementos <ResourceURL> o <IncludeURL>
hacer referencia a un archivo JavaScript que no existe, la implementación del proxy de API fallará.
El archivo de origen al que se hace referencia debe existir a nivel de proxy de API, entorno u organización. |
build |
WrongResourceType |
Este error se produce durante la implementación si <ResourceURL> o <IncludeURL>
los elementos de la política de JavaScript hacen referencia a cualquier tipo de recurso que no sea jsc (archivo JavaScript). |
build |
NoResourceURLOrSource |
La implementación de la política de JavaScript puede fallar con este error si el <ResourceURL>
no se declaró el elemento o si la URL del recurso no está definida dentro de este elemento.
El elemento <ResourceURL> es obligatorio. O bien, se declara el elemento <IncludeURL>
pero la URL del recurso no está definida en este elemento. El elemento <IncludeURL> es opcional.
pero, si se declara, la URL del recurso debe especificarse en el elemento <IncludeURL>. |
build |
Variables con fallas
Estas variables se configuran cuando esta política activa un error en el entorno de ejecución. Para obtener más información, consulta Qué debes saber sobre los errores de la política.
| Variables | Donde | Ejemplo |
|---|---|---|
fault.name="fault_name" |
fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. | fault.name Matches "ScriptExecutionFailed" |
javascript.policy_name.failed |
policy_name es el nombre especificado por el usuario de la política que generó la falla. | javascript.JavaScript-1.failed = true |
Ejemplo de respuesta de error
{ "fault": { "faultstring": "Execution of SetResponse failed with error: Javascript runtime error: "ReferenceError: "status" is not defined. (setresponse.js:6)\"", "detail": { "errorcode": "steps.javascript.ScriptExecutionFailed" } } }
Ejemplo de regla de falla
<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>
Política JSONThreatProtection
En esta sección, se describen los códigos y mensajes de error que se muestran, y las variables de falla que establece Edge cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.
Errores de entorno de ejecución
Estos errores pueden producirse cuando se ejecuta la política.
| Código de falla | Estado de HTTP | Causa | Corregir |
|---|---|---|---|
steps.jsonthreatprotection.ExecutionFailed |
500 | La política JSONThreatProtection puede arrojar varios tipos de errores ExecutionFailed. La mayoría de estos errores se generan cuando se supera un límite específico establecido en la política. Estos tipos de errores incluyen: longitud del nombre de la entrada del objeto, recuento de entradas de objetos recuento de elementos de array profundidad del contenedor, Longitud del valor de la cadena. Este error también ocurre cuando la carga útil contiene un objeto JSON no válido. | build |
steps.jsonthreatprotection.SourceUnavailable |
500 | Este error se genera si la variable mensaje especificada en el elemento <Source>:
|
build |
steps.jsonthreatprotection.NonMessageVariable |
500 | Este error se genera si el elemento <Source> se configura como una variable que no es del tipo mensaje. |
build |
Errores en la implementación
Ninguno
Variables con fallas
Estas variables se establecen cuando esta política activa un error. Para obtener más información, consulta Qué debes saber sobre los errores de la política.
| Variables | Donde | Ejemplo |
|---|---|---|
fault.name="fault_name" |
fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. | fault.name Matches "SourceUnavailable" |
jsonattack.policy_name.failed |
policy_name es el nombre especificado por el usuario de la política que generó la falla. | jsonattack.JTP-SecureRequest.failed = true |
Ejemplo de respuesta de error
{
"fault": {
"faultstring": "JSONThreatProtection[JPT-SecureRequest]: Execution failed. reason: JSONThreatProtection[JTP-SecureRequest]: Exceeded object entry name length at line 2",
"detail": {
"errorcode": "steps.jsonthreatprotection.ExecutionFailed"
}
}
}Ejemplo de regla de falla
<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>
Los tipos de políticas JSONThreatProtection definen los siguientes códigos de error:
Política JSONtoXML
En esta sección, se describen los códigos y mensajes de error que se muestran, y las variables de falla que establece Edge cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.
Errores de entorno de ejecución
Estos errores pueden producirse cuando se ejecuta la política.
| Código de falla | Estado de HTTP | Causa | Corregir |
|---|---|---|---|
steps.jsontoxml.ExecutionFailed |
500 | La carga útil de entrada (JSON) está vacía o la entrada (JSON) que se pasó a la política JSON to XML no es válida o presenta errores de formato. | build |
steps.jsontoxml.InCompatibleTypes |
500 | Este error se genera si el tipo de variable definida en el elemento <Source> y el elemento <OutputVariable> no son iguales. Es obligatorio que el tipo de variables incluidas dentro del elemento <Source> y el elemento <OutputVariable> coincidan. Los tipos válidos son message y string. |
build |
steps.jsontoxml.InvalidSourceType |
500 | Este error se genera si el tipo de variable que se usa para definir el elemento <Source> no es válido. Los tipos de variable válidos son message y string. |
build |
steps.jsontoxml.OutputVariableIsNotAvailable |
500 | Este error se produce si la variable especificada en el elemento <Source> de la política JSON a XML es de string de tipo y el elemento <OutputVariable> no está definido.
El elemento <OutputVariable> es obligatorio cuando la variable definida en el elemento <Source> es de tipo de string. |
build |
steps.jsontoxml.SourceUnavailable |
500 |
Este error ocurre si la variable message especificada en el elemento <Source> de la política JSON a XML tiene una de las siguientes características:
|
build |
Errores en la implementación
Ninguno
Variables con fallas
Estas variables se configuran cuando se genera un error de entorno de ejecución. Para obtener más información, consulta Qué debes saber sobre los errores de la política.
| Variables | Donde | Ejemplo |
|---|---|---|
fault.name="fault_name" |
fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. | fault.name Matches "SourceUnavailable" |
jsontoxml.policy_name.failed |
policy_name es el nombre especificado por el usuario de la política que generó la falla. | jsontoxml.JSON-to-XML-1.failed = true |
Ejemplo de respuesta de error
{
"fault": {
"faultstring": "JSONToXML[JSON-to-XML-1]: Source xyz is not available",
"detail": {
"errorcode": "steps.json2xml.SourceUnavailable"
}
}
}Ejemplo de regla de falla
<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>Política de operaciones de mapas de clave-valor
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.keyvaluemapoperations.SetVariableFailed |
500 |
This error occurs if you try to retrieve a value from an encrypted key value map and set
the value to a variable whose name does not have the prefix |
build |
steps.keyvaluemapoperations.UnsupportedOperationException |
500 |
This error occurs if the |
build |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
InvalidIndex |
If the index attribute specified in the <Get> element of Key Value Map Operations policy is
zero or a negative number, then the deployment of the API proxy fails. The index starts from
1, so an index of zero or negative integer is considered as invalid.
|
build |
KeyIsMissing |
This error occurs if the <Key> element is completely missing or <Parameter> element is
missing within <Key> element underneath the <Entry> of the <InitialEntries> element
of the Key Value Map Operations policy.
|
build |
ValueIsMissing |
This error occurs if the <Value> element is missing underneath the <Entry> element of
the <InitialEntries> element of the Key Value Map Operations policy. |
build |
Política de LDAP
Esta política usa los siguientes códigos de error:
| Código de error | Mensajes |
|---|---|
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. |
Política MessageLogging
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. |
build |
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. |
build |
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>Política OASValidation
En esta sección, se describen los códigos y mensajes de error que se muestran y las variables de fallas que establece Edge cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.
Errores de entorno de ejecución
Estos errores pueden producirse cuando se ejecuta la política.
| Código de falla | Estado de HTTP | Causa | |
|---|---|---|---|
steps.oasvalidation.Failed |
500 | El cuerpo del mensaje de solicitud no se puede validar en la especificación de OpenAPI proporcionada. | |
steps.oasvalidation.SourceMessageNotAvailable |
500 |
La variable especificada en el elemento |
|
steps.oasvalidation.NotMessageVariable |
500 |
El elemento |
build |
Errores en la implementación
Estos errores pueden generarse cuando implementas un proxy que contiene esta política.
| Nombre del error | Causa | |
|---|---|---|
ResourceDoesNotExist |
La especificación de OpenAPI a la que se hace referencia en el elemento <OASResource> no existe.
|
|
ResourceCompileFailed |
La especificación de OpenAPI que se incluye en la implementación contiene errores que evitan que se compile. Por lo general, esto indica que la especificación no es una especificación 3.0 de OpenAPI con el formato correcto. | |
BadResourceURL |
No se puede procesar la especificación de OpenAPI a la que se hace referencia en el elemento <OASResource>. Esto puede ocurrir si el archivo no es un archivo JSON o YAML, o si la URL del archivo no se especificó de forma correcta.
|
Variables con fallas
Estas variables se configuran cuando esta política activa un error en el entorno de ejecución. Para obtener más información, consulta Qué debes saber sobre los errores de la política.
| Variables | Donde | Ejemplo |
|---|---|---|
fault.name="fault_name" |
fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. | fault.name Matches "ResourceDoesNotExist" |
oasvalidation.policy_name.failed |
policy_name es el nombre especificado por el usuario de la política que generó la falla. | oasvalidation.myoaspolicy.failed = true |
Política PopulateCache
En esta sección, se describen los códigos y mensajes de error que se muestran, y las variables de falla que establece Edge cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.
Errores de entorno de ejecución
Estos errores pueden producirse cuando se ejecuta la política.
| Código de falla | Estado de HTTP | Ocurre cuando |
|---|---|---|
policies.populatecache.EntryCannotBeCached |
500 | Una entrada no se puede almacenar en caché. El objeto del mensaje que se almacena en caché no es una instancia de una clase que se pueda serializar. |
Errores en la implementación
Estos errores pueden generarse cuando implementas un proxy que contiene esta política.
| Nombre del error | Causa | Corregir |
|---|---|---|
InvalidCacheResourceReference |
Este error se genera si el elemento <CacheResource> en la política PropagateCache se configura como un nombre que no existe en el entorno en el que se implementa el proxy de API. |
build |
CacheNotFound |
No existe la caché especificada en el elemento <CacheResource>. |
build |
Variables con fallas
Estas variables se establecen cuando esta política activa un error. Para obtener más información, consulta Qué debes saber sobre los errores de la política.
| Variables | Donde | Ejemplo |
|---|---|---|
fault.name="fault_name" |
fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. | fault.name = "EntryCannotBeCached" |
populatecache.policy_name.failed |
policy_name es el nombre especificado por el usuario de la política que generó la falla. | populatecache.POP-CACHE-1.failed = true |
Ejemplo de respuesta de error
{ "fault": { "faultstring": "[entry] can not be cached. Only serializable entries are cached.", "detail": { "errorcode": "steps.populatecache.EntryCannotBeCached" } } }
Ejemplo de regla de falla
<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>Política LookupCache
This section describes the error messages and flow variables that are set when this policy triggers an error. This information is important to know if you are developing fault rules for a proxy. To learn more, see What you need to know about policy errors and Handling faults.
Error code prefix
N/A
Runtime errors
This policy does not throw any runtime errors.
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 is set to a
name which does not exist in the environment where the API proxy is being deployed. |
build |
InvalidTimeout |
If the <CacheLookupTimeoutInSeconds> element is set to
a negative number, then the deployment of the API proxy fails. |
build |
CacheNotFound |
This error occurs if the specific cache mentioned in the error message has not been created on a specific Message Processor component. | build |
Fault variables
N/A
Example error response
N/A
Política InvalidateCache
En esta sección, se describen los mensajes de error y las variables de flujo que se configuran cuando esta política activa un error. Esta información es importante si deseas saber si desarrollas reglas de fallas para un proxy. Para obtener más información, consulta Lo que necesitas saber sobre errores de políticas y Controla fallas.
Prefijo del código de error
No disponible
Errores de entorno de ejecución
Esta política no arroja ningún error de entorno de ejecución.
Errores en la implementación
Estos errores pueden generarse cuando implementas un proxy que contiene esta política.
| Nombre del error | Causa | Corregir |
|---|---|---|
InvalidCacheResourceReference |
Este error se genera si el elemento <CacheResource> en la política InvalidateCache está configurado en un nombre que no existe en el entorno en el que se implementa el proxy de API. |
build |
CacheNotFound |
Este error se genera si la caché específica que se menciona en el mensaje de error no se creó en un componente específico del procesador de mensajes. | build |
Variables con fallas
N/A
Ejemplo de respuesta de error
No disponible
Política ResponseCache
This section describes the error messages and flow variables that are set when this policy triggers an error. This information is important to know if you are developing fault rules for a proxy. To learn more, see What you need to know about policy errors and Handling faults.
Error code prefix
N/A
Runtime errors
This policy does not throw any runtime errors.
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
InvalidTimeout |
If the
<CacheLookupTimeoutInSeconds> element of the ResponseCache policy is set to a negative number,
then the deployment of the API proxy fails. |
build |
InvalidCacheResourceReference |
This error occurs if the <CacheResource> element in a ResponseCache policy is set to a
name that does not exist in the environment where the API proxy is being deployed. |
build |
ResponseCacheStepAttachmentNotAllowedReq |
This error occurs if the same ResponseCache policy is attached to multiple request paths within any flows of an API proxy. | build |
ResponseCacheStepAttachmentNotAllowedResp |
This error occurs if the same ResponseCache policy is attached to multiple response paths within any flows of an API proxy. | build |
InvalidMessagePatternForErrorCode |
This error occurs if either the <SkipCacheLookup> or the <SkipCachePopulation>
element in a ResponseCache policy contains an invalid condition. |
build |
CacheNotFound |
This error occurs if the specific cache mentioned in the error message has not been created on a specific Message Processor component. | build |
Fault variables
N/A
Example error response
N/A
Política de OAuthV2
En esta sección, se describen los códigos de falla y los mensajes de error que se muestran, y las variables de falla que establece Edge cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.
Errores de entorno de ejecución
Estos errores pueden producirse cuando se ejecuta la política.
| Código de falla | Estado de HTTP | Causa | Arrojados por operaciones |
|---|---|---|---|
steps.oauth.v2.access_token_expired |
401 | El token de acceso expiró. |
VerifyAccessToken |
steps.oauth.v2.access_token_not_approved |
401 | El token de acceso se revocó. | VerifyAccessToken |
steps.oauth.v2.apiresource_doesnot_exist |
401 | El recurso solicitado no existe en ninguno de los productos de API asociados con el token de acceso. | VerifyAccessToken |
steps.oauth.v2.FailedToResolveAccessToken |
500 | La política esperaba encontrar un token de acceso en una variable especificada en el elemento <AccessToken>, pero no se pudo resolver la variable. |
GenerateAccessToken |
steps.oauth.v2.FailedToResolveAuthorizationCode |
500 | La política esperaba encontrar un código de autorización en una variable especificada en el elemento <Code>, pero no se pudo resolver la variable. |
GenerateAuthorizationCode |
steps.oauth.v2.FailedToResolveClientId |
500 | La política esperaba encontrar el ID de cliente en una variable especificada en el elemento <ClientId>, pero no se pudo resolver la variable. |
GenerateAccessToken GenerateAuthorizationCode GenerateAccessTokenImplicitGrant RefreshAccessToken |
steps.oauth.v2.FailedToResolveRefreshToken |
500 | La política esperaba encontrar un token de actualización en una variable especificada en el elemento <RefreshToken>, pero no se pudo resolver la variable. |
RefreshAccessToken |
steps.oauth.v2.FailedToResolveToken |
500 | La política esperaba encontrar un token en una variable especificada en el elemento <Tokens>, pero no se pudo resolver la variable. |
ValidTokenToken |
steps.oauth.v2.InsufficientScope |
403 | El token de acceso presentado en la solicitud tiene un permiso que no coincide con el permiso especificado en la política de verificación de token de acceso. Para obtener información sobre el alcance, consulta Trabaja con permisos de OAuth2. | VerifyAccessToken |
steps.oauth.v2.invalid_access_token |
401 | No es válido el token de acceso que se envió desde el cliente. | VerifyAccessToken |
steps.oauth.v2.invalid_client |
401 |
Este nombre de error se muestra cuando la propiedad Nota: Se recomienda cambiar las condiciones de la regla de falla existentes para detectar los nombres |
GenerateAccessToken RefreshAccessToken |
steps.oauth.v2.InvalidRequest |
400 | Este nombre de error se usa para varios tipos de errores, por lo general, para parámetros incorrectos o faltantes de la solicitud enviada. Si <GenerateResponse> está configurado como false, usa las variables de falla (descritas a continuación) para recuperar detalles sobre el error, como el nombre y la causa de la falla. |
GenerateAccessToken GenerateAuthorizationCode GenerateAccessTokenImplicitGrant RefreshAccessToken |
steps.oauth.v2.InvalidAccessToken |
401 | El encabezado de autorización no tiene la palabra "Bearer", que es obligatoria. Por ejemplo: Authorization: Bearer your_access_token |
VerifyAccessToken |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 |
El proxy de API no está en el producto asociado con el token de acceso. Sugerencias: Asegúrate de que el producto asociado con el token de acceso esté configurado correctamente. Por ejemplo, si usas comodines en las rutas de acceso a los recursos, asegúrate de que los comodines se usen correctamente. Consulta Crea productos de API para obtener más información. Consulta también esta publicación de la comunidad de Apigee para obtener más información sobre las causas de este error. |
VerifyAccessToken |
steps.oauth.v2.InvalidClientIdentifier |
500 |
Este nombre de error se muestra cuando la propiedad |
GenerateAccessToken |
steps.oauth.v2.InvalidParameter |
500 | La política debe especificar un token de acceso o un código de autorización, pero no ambos. | GenerateAuthorizationCode GenerateAccessTokenImplicitGrant |
steps.oauth.v2.InvalidTokenType |
500 | El elemento <Tokens>/<Token> requiere que especifiques el tipo de token (por ejemplo, refreshtoken). Si el cliente pasa el tipo incorrecto, se genera este error. |
ValidTokenToken InvalidvalidateToken |
steps.oauth.v2.MissingParameter |
500 | El tipo de respuesta es token, pero no se especifican tipos de otorgamiento. |
GenerateAuthorizationCode GenerateAccessTokenImplicitGrant |
steps.oauth.v2.UnSupportedGrantType |
500 |
El cliente especificó un tipo de otorgamiento que no es compatible con la política (no incluido en el elemento <SupportedGrantTypes>). Nota: En la actualidad, hay un error en el que los errores de tipo de otorgamiento no compatibles no se muestran correctamente. Si se produce un error de tipo de otorgamiento no compatible, el proxy no ingresa al flujo de error como se espera. |
GenerateAccessToken GenerateAuthorizationCode GenerateAccessTokenImplicitGrant RefreshAccessToken |
Errores en la implementación
Estos errores pueden generarse cuando implementas un proxy que contiene esta política.
| Nombre del error | Causa |
|---|---|
InvalidValueForExpiresIn |
Para el elemento |
InvalidValueForRefreshTokenExpiresIn |
Para el elemento <RefreshTokenExpiresIn>, los valores válidos son números enteros positivos y -1. |
InvalidGrantType |
Se especifica un tipo de otorgamiento no válido en el elemento <SupportedGrantTypes>. Consulta la referencia de la política para obtener una lista de tipos válidos. |
ExpiresInNotApplicableForOperation |
Asegúrate de que las operaciones especificadas en el elemento <Operations> admitan el vencimiento. Por ejemplo, la operación VerifyToken no lo hace. |
RefreshTokenExpiresInNotApplicableForOperation |
Asegúrate de que las operaciones especificadas en el elemento <Operations> admitan el vencimiento del token. Por ejemplo, la operación VerifyToken no lo hace. |
GrantTypesNotApplicableForOperation |
Asegúrate de que los tipos de otorgamiento especificados en <SupportedGrantTypes> sean compatibles con la operación especificada. |
OperationRequired |
Debes especificar una operación en esta política mediante el elemento Nota: Si falta el elemento |
InvalidOperation |
Debes especificar una operación válida en esta política con el elemento Nota: Si el elemento |
TokenValueRequired |
Debes especificar un valor <Token> del token en el elemento <Tokens>. |
Variables con fallas
Estas variables se configuran cuando esta política activa un error en el entorno de ejecución.
| Variables | Donde | Ejemplo |
|---|---|---|
fault.name="fault_name" |
fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. | fault.name = "InvalidRequest" |
oauthV2.policy_name.failed |
policy_name es el nombre especificado por el usuario de la política que generó la falla. | oauthV2.GenerateAccesstoken.failed = true |
oauthV2.policy_name.fault.name |
policy_name es el nombre especificado por el usuario de la política que generó la falla. | oauthV2.GenerateAccesstoken.fault.name = InvalidRequest
Nota: Para la operación VerifyAccessToken, el nombre de la falla incluye este sufijo: |
oauthV2.policy_name.fault.cause |
policy_name es el nombre especificado por el usuario de la política que generó la falla. | oauthV2.GenerateAccesstoken.cause = Required param : grant_type |
Ejemplo de respuesta de error
Estas respuestas se envían al cliente si el elemento <GenerateResponse> es verdadero.
Si <GenerateResponse> es verdadero, la política muestra errores en este formato para las operaciones que generan tokens y códigos. Para obtener una lista completa, consulta la referencia de respuesta de error de HTTP de OAuth.
{"ErrorCode" : "invalid_client", "Error" :"ClientId is Invalid"}Si <GenerateResponse> es verdadero, la política muestra errores en este formato para verificar y validar operaciones. Para obtener una lista completa, consulta la referencia de respuesta de falla de HTTP de OAuth.
{ { "fault":{ "faultstring":"Invalid Access Token", "detail":{ "errorcode":"keymanagement.service.invalid_access_token" } } }
Ejemplo de regla de falla
<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>Política de GetOAuthV2Info
En esta sección, se describen los códigos y mensajes de error que se muestran, y las variables de error que establece Edge cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.
Errores de entorno de ejecución
Estos errores pueden producirse cuando se ejecuta la política. Los nombres de error que se muestran a continuación son las strings que se asignan a la variable fault.name cuando se produce un error. Consulta la sección Variables de falla a continuación para obtener más información.
| Código de falla | Estado de HTTP | Causa |
|---|---|---|
steps.oauth.v2.access_token_expired |
500 | El token de acceso que se envió a la política venció. |
steps.oauth.v2.authorization_code_expired |
500 | El código de autorización enviado a la política venció. |
steps.oauth.v2.invalid_access_token |
500 | El token de acceso enviado a la política no es válido. |
steps.oauth.v2.invalid_client-invalid_client_id |
500 | El ID de cliente que se envió a la política no es válido. |
steps.oauth.v2.invalid_refresh_token |
500 | El token de actualización que se envió a la política no es válido. |
steps.oauth.v2.invalid_request-authorization_code_invalid |
500 | El código de autorización que se envió a la política no es válido. |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 | Consulta esta publicación de la comunidad de Apigee para obtener información sobre cómo solucionar este error. |
steps.oauth.v2.refresh_token_expired |
500 | El token de actualización que se envió a la política venció. |
Errores en la implementación
Consulta el mensaje reportado en la IU para obtener información sobre los errores de implementación.
Variables con fallas
Estas variables se configuran cuando esta política activa un error en el entorno de ejecución.
| Variables | Donde | Ejemplo |
|---|---|---|
fault.name="fault_name" |
fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. | fault.name Matches "IPDeniedAccess" |
oauthV2.policy_name.failed |
policy_name es el nombre especificado por el usuario de la política que generó la falla. | oauthV2.GetTokenInfo.failed = true |
oauthV2.policy_name.fault.name |
policy_name es el nombre especificado por el usuario de la política que generó la falla. | oauthV2.GetToKenInfo.fault.name = invalid_client-invalid_client_id |
oauthV2.policy_name.fault.cause |
policy_name es el nombre especificado por el usuario de la política que generó la falla. | oauthV2.GetTokenInfo.cause = ClientID is Invalid |
Ejemplo de respuesta de error
{ "fault":{ "faultstring":"ClientId is Invalid", "detail":{ "errorcode":"keymanagement.service.invalid_client-invalid_client_id" } } }
Ejemplo de regla de falla
<FaultRule name="OAuthV2 Faults">
<Step>
<Name>AM-InvalidClientIdResponse</Name>
</Step>
<Condition>(fault.name = "invalid_client-invalid_client_id")</Condition>
</FaultRule>Política SetOAuthV2Info
En esta sección, se describen los códigos de falla y los mensajes de error que se muestran, y las variables de falla que establece Edge cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.
Errores de entorno de ejecución
Estos errores pueden producirse cuando se ejecuta la política.
| Código de falla | Estado de HTTP | Causa |
|---|---|---|
steps.oauth.v2.access_token_expired |
500 | El token de acceso que se envió a la política venció. |
steps.oauth.v2.invalid_access_token |
500 | El token de acceso enviado a la política no es válido. |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 | Consulta esta publicación de la comunidad de Apigee para obtener información sobre cómo solucionar este error. |
Errores en la implementación
Consulta el mensaje reportado en la IU para obtener información sobre los errores de implementación.
Variables con fallas
Estas variables se configuran cuando esta política activa un error en el entorno de ejecución.
| Variables | Donde | Ejemplo |
|---|---|---|
fault.name="fault_name" |
fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. | fault.name = "invalid_access_token" |
oauthV2.policy_name.failed |
policy_name es el nombre especificado por el usuario de la política que generó la falla. | oauthV2.SetTokenInfo.failed = true |
oauthV2.policy_name.fault.name |
policy_name es el nombre especificado por el usuario de la política que generó la falla. | oauthV2.SetTokenInfo.fault.name = invalid_access_token |
oauthv2.policy_name.fault.cause |
policy_name es el nombre especificado por el usuario de la política que generó la falla. | oauthV2.SetTokenInfo.cause = Invalid Access Token |
Ejemplo de respuesta de error
{
"fault": {
"faultstring": "Invalid Access Token",
"detail": {
"errorcode": "keymanagement.service.invalid_access_token"
}
}
}Ejemplo de regla de falla
<FaultRule name=SetOAuthV2Info Faults">
<Step>
<Name>AM-InvalidTokenResponse</Name>
<Condition>(fault.name = "invalid_access_token")</Condition>
</Step>
<Condition>(oauthV2.failed = true) </Condition>
</FaultRule>Política DeleteOAuthV2Info
En esta sección, se describen los códigos y mensajes de error que se muestran, y las variables de falla que establece Edge cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.
Errores de entorno de ejecución
Estos errores pueden producirse cuando se ejecuta la política.
| Código de falla | Estado de HTTP | Causa |
|---|---|---|
steps.oauth.v2.invalid_access_token |
401 | El token de acceso enviado a la política no es válido. |
steps.oauth.v2.invalid_request-authorization_code_invalid |
401 | El código de autorización que se envió a la política no es válido. |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 | Consulta esta publicación de la comunidad de Apigee para obtener información sobre cómo solucionar este error. |
Errores en la implementación
Consulta el mensaje reportado en la IU para obtener información sobre los errores de implementación.
Variables con fallas
Estas variables se configuran cuando esta política activa un error en el entorno de ejecución.
| Variables | Donde | Ejemplo |
|---|---|---|
fault.name="fault_name" |
fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. | fault.name = "invalid_access_token" |
oauthV2.policy_name.failed |
policy_name es el nombre especificado por el usuario de la política que generó la falla. | oauthV2.DeleteTokenInfo.failed = true |
oauthV2.policy_name.fault.name |
policy_name es el nombre especificado por el usuario de la política que generó la falla. | oauthV2.DeleteTokenInfo.fault.name = invalid_access_token |
oauthv2.policy_name.fault.cause |
policy_name es el nombre especificado por el usuario de la política que generó la falla. | oauthV2.DeleteTokenInfo.cause = Invalid Access Token |
Ejemplo de respuesta de error
{
"fault": {
"faultstring": "Invalid Access Token",
"detail": {
"errorcode": "keymanagement.service.invalid_access_token"
}
}
}Ejemplo de regla de falla
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="DeleteOAuthV2Info_Faults">
<Step>
<Name>AM-InvalidTokenResponse</Name>
</Step>
<Condition>(fault.name = "invalid_access_token")</Condition>
</FaultRule>Política de OAuthv1.0a
The OAuthV1 Policy type defines the following error codes.
For OAuth-related HTTP error codes, see OAuth HTTP error response reference.
| Error Code | 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} |
Política de GetOAuthV1Info
No error codes are specified for the Get OAuth v1.0a Info policy.
Política DeleteOAuthV1Info
On success, the policy returns a 200 status.
On failure, the policy returns 404 and output similar to the following (depending on whether you are deleting an access token, request token, or verifier.):
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"}}}
Política PythonScript
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.script.ScriptEvaluationFailed |
500 | The PythonScript policy can throw several different types of ScriptExecutionFailed errors. Commonly seen types of errors include NameError and ZeroDivisionError. | build |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
InvalidResourceUrlFormat |
If the format of the resource URL specified within the <ResourceURL> or
the <IncludeURL> element of the PythonScript policy is invalid, then the deployment of the API proxy fails. |
build |
InvalidResourceUrlReference |
If the <ResourceURL> or the <IncludeURL> elements
refer to a PythonScript file that does not exist, then the deployment of the API proxy fails.
The referenced source file must exist either the API proxy, environment, or organization level. |
build |
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 "ScriptExecutionFailed" |
pythonscript.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | pythonscript.PythonScript-1.failed = true |
Example error response
{ "fault": { "faultstring": "Execution of SetResponse failed with error: Pythonscript runtime error: "ReferenceError: "status" is not defined.\"", "detail": { "errorcode": "steps.script.ScriptExecutionFailed" } } }
Example fault rule
<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>
Política de cuotas
En esta sección, se describen los códigos y mensajes de error que se muestran, y las variables de falla que establece Edge cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.
Errores de entorno de ejecución
Estos errores pueden producirse cuando se ejecuta la política.
| Código de falla | Estado de HTTP | Causa | Corregir |
|---|---|---|---|
policies.ratelimit.FailedToResolveQuotaIntervalReference |
500 | Ocurre si el elemento <Interval> no está definido dentro de la política de cuotas. Este elemento es obligatorio y se usa para especificar el intervalo de tiempo aplicable a la cuota. El intervalo de tiempo pueden ser minutos, horas, días, semanas o meses, según se defina con el elemento <TimeUnit>. |
build |
policies.ratelimit.FailedToResolveQuotaIntervalTimeUnitReference |
500 | Ocurre si el elemento <TimeUnit> no está definido dentro de la política de cuotas. Este elemento es obligatorio y se usa para especificar la unidad de tiempo aplicable a la cuota. El intervalo de tiempo puede ser en minutos, horas, días, semanas o meses. |
build |
policies.ratelimit.InvalidMessageWeight |
500 | Este error se produce si el valor del elemento <MessageWeight> que se especificó a través de una variable de flujo no es válido (un número que no es entero). |
build |
policies.ratelimit.QuotaViolation |
500 | Se superó el límite de la cuota. | N/A |
Errores en la implementación
| Nombre del error | Causa | Corregir |
|---|---|---|
InvalidQuotaInterval |
Si el intervalo de cuota especificado en el elemento <Interval> no es un número entero, fallará la implementación del proxy de la API. Por ejemplo, si el intervalo de cuota especificado es 0.1 en el elemento <Interval>, fallará la implementación del proxy de API.
|
build |
InvalidQuotaTimeUnit |
Si la unidad de tiempo especificada en el elemento <TimeUnit> no es compatible, fallará la implementación del proxy de API. Las unidades de tiempo admitidas son minute, hour, day, week y month.
|
build |
InvalidQuotaType |
Si el tipo de cuota especificado por el atributo type en el elemento <Quota> no es válido, fallará la implementación del proxy de la API. Los tipos de cuota admitidos son default, calendar, flexi y rollingwindow.
|
build |
InvalidStartTime |
Si el formato del tiempo especificado en el elemento <StartTime> no es válido, fallará la implementación del proxy de la API. El formato válido es yyyy-MM-dd HH:mm:ss, que es el formato de fecha y hora ISO 8601. Por ejemplo, si la hora especificada en el elemento <StartTime> es 7-16-2017 12:00:00, fallará la implementación del proxy de API.
|
build |
StartTimeNotSupported |
Si se especifica el elemento <StartTime> cuyo tipo de cuota no es calendar, fallará la implementación del proxy de API. El elemento <StartTime> solo es compatible con el tipo de cuota calendar. Por ejemplo, si el atributo type se establece en flexi o rolling window en el elemento <Quota>, fallará la implementación del proxy de la API.
|
build |
InvalidTimeUnitForDistributedQuota |
Si el elemento <Distributed> se configura como true y el elemento <TimeUnit> se configura como second, fallará la implementación del proxy de la API. La unidad de tiempo second no es válida para una cuota distribuida. |
build |
InvalidSynchronizeIntervalForAsyncConfiguration |
Si el valor especificado para el elemento <SyncIntervalInSeconds> dentro del elemento <AsynchronousConfiguration> en una política de cuota es inferior a cero, fallará la implementación del proxy de la API. |
build |
InvalidAsynchronizeConfigurationForSynchronousQuota |
Si el valor del elemento <AsynchronousConfiguration> se establece en true en una política de cuotas, que también tiene una configuración asíncrona definida con el elemento <AsynchronousConfiguration>, fallará la implementación del proxy de la API. |
build |
Variables con fallas
Estas variables se establecen cuando esta política activa un error. Para obtener más información, consulta Qué debes saber sobre los errores de la política.
| Variables | Donde | Ejemplo |
|---|---|---|
fault.name="fault_name" |
fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. | fault.name Matches "QuotaViolation" |
ratelimit.policy_name.failed |
policy_name es el nombre especificado por el usuario de la política que generó la falla. | ratelimit.QT-QuotaPolicy.failed = true |
Ejemplo de respuesta de error
{ "fault":{ "detail":{ "errorcode":"policies.ratelimit.QuotaViolation" }, "faultstring":"Rate limit quota violation. Quota limit exceeded. Identifier : _default" } }
Ejemplo de regla de falla
<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>Política ResetQuota
En esta sección, se describen los códigos y mensajes de error que se muestran y las variables de fallas que establece Edge cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.
Errores de entorno de ejecución
Estos errores pueden producirse cuando se ejecuta la política.
| Código de falla | Estado de HTTP | Causa | Corregir |
|---|---|---|---|
policies.resetquota.InvalidRLPolicy |
500 | La política de cuotas especificada en el elemento <Quota> de la política de Restablecer cuota no está definida en el proxy de API y, por lo tanto, no está disponible durante el flujo. El elemento <Quota> es obligatorio y, además, identifica la política de cuotas de destino cuyo contador se debe actualizar mediante la política de Restablecer cuota. |
build |
policies.resetquota.FailedToResolveAllowCountRef |
No disponible | La referencia a la variable que contiene el recuento permitido en el elemento <Allow> de la política no se puede resolver en un valor. Este elemento es obligatorio y especifica el importe para reducir el recuento de cuotas. |
build |
policies.resetquota.FailedToResolveRLPolicy |
500 | No se puede resolver la variable a la que hace referencia el atributo ref en el elemento <Quota>. |
build |
Errores en la implementación
Estos errores pueden generarse cuando implementas un proxy que contiene esta política.
| Nombre del error | Causa | Corregir |
|---|---|---|
InvalidCount |
Si el valor de recuento especificado en el elemento <Allow> de la política de restablecimiento de cuotas no es un número entero, la implementación del proxy de API falla.
|
build |
Política RaiseFault
En esta sección, se describen los códigos y mensajes de error que se muestran, así como las variables de falla. que establece Edge cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.
Errores de entorno de ejecución
Estos errores pueden producirse cuando se ejecuta la política.
| Código de falla | Estado de HTTP | Causa |
|---|---|---|
steps.raisefault.RaiseFault |
500 | Consulta la cadena de errores. |
Errores en la implementación
Ninguno
Variables con fallas
Estas variables se configuran cuando se genera un error de entorno de ejecución. Para obtener más información, consulta Qué debes saber sobre los errores de la política.
| Variables | Donde | Ejemplo |
|---|---|---|
fault.name="fault_name" |
fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. | fault.name = "RaiseFault" |
raisefault.policy_name.failed |
policy_name es el nombre de la política que especifica el usuario arrojó la falla. | raisefault.RF-ThrowError.failed = true |
Ejemplo de respuesta de error
{ "fault":{ "detail":{ "errorcode":"steps.raisefault.RaiseFault" }, "faultstring":"Raising fault. Fault name: [name]" } }
Política RegularExpressionProtection
This section describes the error codes and messages returned and fault variables
set by Edge when this policy triggers an error. This information is important to know if
you are developing fault rules to handle faults. If you want to capture an error and raise your own
custom error, set the continueOnError="true" attribute on the policy root element.
To learn more, see
What you need to know about policy errors and Handling
faults.
Errors returned from Edge policies follow a consistent format as described in the Error code reference.
Runtime errors
These errors can occur when the policy executes.
| Error Code | Message |
|---|---|
| ExecutionFailed | Failed to execute the RegularExpressionProtection StepDefinition {0}. Reason: {1} |
| InstantiationFailed | Failed to instantiate the RegularExpressionProtection StepDefinition {0} |
| NonMessageVariable | Variable {0} does not resolve to a Message |
| SourceMessageNotAvailable | {0} message is not available for RegularExpressionProtection StepDefinition {1} |
| ThreatDetected | Regular Expression Threat Detected in {0}: regex: {1} input: {2} |
| VariableResolutionFailed | Failed to resolve variable {0} |
Deployment errors
| Error Code | Message | Fix |
|---|---|---|
| CannotBeConvertedToNodeset | RegularExpressionProtection {0}: Result of xpath {1} cannot be converted to nodeset. Context {2} | build |
| DuplicatePrefix | RegularExpressionProtection {0}: Duplicate prefix {1} | build |
| EmptyJSONPathExpression | RegularExpressionProtection {0}: Empty JSONPath expression | build |
| EmptyXPathExpression | RegularExpressionProtection {0}: Empty XPath expression | build |
| InvalidRegularExpression | RegularExpressionProtection {0}: Invalid Regular Expression {1}, Context {2} | build |
| JSONPathCompilationFailed | RegularExpressionProtection {0}: Failed to compile jsonpath {1}. Context {2} | build |
| NONEmptyPrefixMappedToEmptyURI | RegularExpressionProtection {0}: Non-empty prefix {1} cannot be mapped to empty uri | build |
| NoPatternsToEnforce | RegularExpressionProtection {0}: No patterns to enforce in {1} | build |
| NothingToEnforce | RegularExpressionProtection {0}: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory | build |
| XPathCompilationFailed | RegularExpressionProtection {0}: Failed to compile xpath {1}. Context {2} | build |
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 table above. | fault.name Matches "ThreatDetected" |
regularexpressionprotection.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | regularexpressionprotection.Regular-Expressions-Protection-1.failed = true |
Política SOAPMessageValidation
En esta sección, se describen los códigos y mensajes de error que se muestran y las variables de fallas que establece Edge cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.
Errores de entorno de ejecución
Estos errores pueden producirse cuando se ejecuta la política.
| Código de falla | Estado de HTTP | Causa | Corregir |
|---|---|---|---|
steps.messagevalidation.SourceMessageNotAvailable |
500 |
Este error se produce si una variable especificada en el elemento
|
build |
steps.messagevalidation.NonMessageVariable |
500 |
Este error ocurre si el elemento Las variables del tipo de mensaje representan respuestas y solicitudes HTTP completas. Las variables de flujo de Edge integradas |
build |
steps.messagevalidation.Failed |
500 | Este error se produce si la política SOAPMessageValidation no valida la carga útil del mensaje de entrada en función del esquema XSD o la definición WSDL. También ocurrirá si hay JSON o XML de formato incorrecto en el mensaje de carga útil. | build |
Errores en la implementación
Estos errores pueden generarse cuando implementas un proxy que contiene esta política.
| Nombre del error | Causa | Corregir |
|---|---|---|
InvalidResourceType |
El elemento <ResourceURL> en la política SOAPMessageValidation se establece en un tipo de recurso que no es compatible con la política.
|
build |
ResourceCompileFailed |
La secuencia de comandos de recursos a la que se hace referencia en el elemento <ResourceURL> de la política SOAPMessageValidation contiene un error que impide que se compile.
|
build |
RootElementNameUnspecified |
El elemento <Element> en la política SOAPMessageValidation no contiene el nombre del elemento raíz. |
build |
InvalidRootElementName |
El elemento <Element> en la política SOAPMessageValidation contiene un nombre de elemento raíz que no cumple con las reglas XML para nombrar nombres de elementos válidos. |
build |
Política de SAMLAssertion
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.
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
SourceNotConfigured |
One or more of the following elements of the Validate SAML Assertion
policy is not defined or empty: <Source>, <XPath>,
<Namespaces>, <Namespace>.
|
build |
TrustStoreNotConfigured |
If the <TrustStore> element is empty or not specified in the
ValidateSAMLAssertion policy, then the deployment of the API proxy fails.
A valid Trust Store is required.
|
build |
NullKeyStoreAlias |
If the child element <Alias> is empty or not specified in the <Keystore>
element of Generate SAML Assertion policy, then the deployment of the API
proxy fails. A valid Keystore alias is required.
|
build |
NullKeyStore |
If the child element <Name> is empty or not specified in the <Keystore>
element of GenerateSAMLAssertion policy, then the deployment of the API
proxy fails. A valid Keystore name is required.
|
build |
NullIssuer |
If the <Issuer> element is empty or not specified in the Generate SAML
Assertion policy, then the deployment of the API proxy fails. A
valid <Issuer> value is required.
|
build |
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. The fault name is the last part of the fault code. | fault.name = "InvalidMediaTpe" |
GenerateSAMLAssertion.failed |
For a validate SAML assertion policy configuration, the error prefix is
ValidateSAMLAssertion. |
GenerateSAMLAssertion.failed = true |
Example error response
{ "fault": { "faultstring": "GenerateSAMLAssertion[GenSAMLAssert]: Invalid media type", "detail": { "errorcode": "steps.saml.generate.InvalidMediaTpe" } } }
Example fault rule
<FaultRules>
<FaultRule name="invalid_saml_rule">
<Step>
<Name>invalid-saml</Name>
</Step>
<Condition>(GenerateSAMLAssertion.failed = "true")</Condition>
</FaultRule>
</FaultRules>Política ServiceCallout
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.servicecallout.ExecutionFailed |
500 |
This error can occur when:
|
build |
steps.servicecallout.RequestVariableNotMessageType |
500 | The Request variable specified in the policy is not of type Message. For example, if it's a string or other non-message type, you'll see this error. | build |
steps.servicecallout.RequestVariableNotRequestMessageType |
500 | The Request variable specified in the policy is not of type Request Message. For example, if it's a Response type, you'll see this error. | build |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
URLMissing |
The <URL> element inside <HTTPTargetConnection>
is missing or empty. |
build |
ConnectionInfoMissing |
This error happens if the policy does not have an
<HTTPTargetConnection> or <LocalTargetConnection>
element. |
build |
InvalidTimeoutValue |
This error happens if the <Timeout> value is negative or zero. |
build |
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 = "RequestVariableNotMessageType" |
servicecallout.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | servicecallout.SC-GetUserData.failed = true |
Example error response
{ "fault":{ "detail":{ "errorcode":"steps.servicecallout.RequestVariableNotMessageType" }, "faultstring":"ServiceCallout[ServiceCalloutGetMockResponse]: request variable data_str value is not of type Message" } }
Example fault rule
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="RequestVariableNotMessageType">
<Step>
<Name>AM-RequestVariableNotMessageType</Name>
</Step>
<Condition>(fault.name = "RequestVariableNotMessageType")</Condition>
</FaultRule>Política de SpikeArrest
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.ratelimit.FailedToResolveSpikeArrestRate |
500 |
This error occurs if the reference to the variable containing the rate setting
within the <Rate> element cannot be resolved to a value within the Spike Arrest
policy. This element is mandatory and used to specify the spike arrest rate in
the form of intpm or intps. |
build |
policies.ratelimit.InvalidMessageWeight |
500 |
This error occurs if the value specified for the <MessageWeight> element through
a flow variable is invalid (a non-integer value). |
build |
policies.ratelimit.SpikeArrestViolation |
429 |
The rate limit was exceeded. |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
InvalidAllowedRate |
If the spike arrest rate specified in the <Rate> element of the Spike Arrest
Policy is not an integer or if the rate does not have ps or pm as a suffix,
then the deployment of the API proxy fails. |
build |
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 "SpikeArrestViolation" |
ratelimit.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | ratelimit.SA-SpikeArrestPolicy.failed = true |
Example error response
Shown below is an example error response:
{ "fault":{ "detail":{ "errorcode":"policies.ratelimit.SpikeArrestViolation" }, "faultstring":"Spike arrest violation. Allowed rate : 10ps" } }
Example fault rule
Shown below is an example fault rule to handle a SpikeArrestViolation fault:
<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>Política de StatisticsCollector
This section describes the error messages and flow variables that are set when this policy triggers an error. This information is important to know if you are developing fault rules for a proxy. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
None.
Deployment errors
| Error name | Cause | Fix |
|---|---|---|
UnsupportedDatatype |
If the type of the variable specified by the ref attribute in the <Statistic> element
of the Statistics Collector policy is unsupported, then the deployment of the API proxy
fails. The supported data types are string, integer,
float, long, double, and boolean. |
build |
InvalidName |
If the name used to reference the data collected for the specified variable defined
within the <Statistic> element of the Statistics Collector policy conflicts with a
system-defined variable, then the deployment of the API proxy fails. Some of the known
system-defined variables are organization and environment. |
build |
DatatypeMissing |
If the type of the variable specified by the ref attribute in the <Statistic> element
of the Statistics Collector policy is missing, then the deployment of the API proxy fails. |
build |
Fault variables
None.
Política de VerifyAPIKey
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 |
|---|---|---|
keymanagement.service.CompanyStatusNotActive |
401 | The Company associated with the Developer App that has the API key you are using has an inactive status. When a Company's status is set to inactive, you cannot access the developers or apps associated with that Company. An org admin can change a Company's status using the management API. See Set the Status of a Company. |
keymanagement.service.DeveloperStatusNotActive |
401 |
The developer who created the Developer App that has the API key you are using has an inactive status. When an App Developer's status is set to inactive, any Developer Apps created by that developer are deactivated. An admin user with appropriate permissions (such as Organization Administrator) can change a developer's status in the following ways:
|
keymanagement.service.invalid_client-app_not_approved |
401 | The Developer App associated with the API key is revoked. A revoked app cannot access any API products and cannot invoke any API managed by Apigee Edge. An org admin can change the status of a Developer App using the management API. See Approve or Revoke Developer App. |
oauth.v2.FailedToResolveAPIKey |
401 | The policy expects to find the API key in a variable that is specified in the policy's <APIKey> element. This error arises when the expected variable does not exist (it cannot be resolved). |
oauth.v2.InvalidApiKey |
401 | An API key was received by Edge, but it is invalid. When Edge looks up the key in its database, it must exactly match the on that was sent in the request. If the API worked previously, make sure the key was not regenerated. If the key was regenerated, you will see this error if you try to use the old key. For details, see Register apps and manage API keys. |
oauth.v2.InvalidApiKeyForGivenResource |
401 | An API key was received by Edge, and it is valid; however, it does not match an approved key in the Developer App associated with your API proxy through a Product. |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause |
|---|---|
SpecifyValueOrRefApiKey |
The <APIKey> element does not have a value or key specified. |
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 "FailedToResolveAPIKey" |
oauthV2.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | oauthV2.VK-VerifyAPIKey.failed = true |
Example error responses
{
"fault":{
"faultstring":"Invalid ApiKey",
"detail":{
"errorcode":"oauth.v2.InvalidApiKey"
}
}
}{
"fault":{
"detail":{
"errorcode":"keymanagement.service.DeveloperStatusNotActive"
},
"faultstring":"Developer Status is not Active"
}
}Example fault rule
<FaultRule name="FailedToResolveAPIKey">
<Step>
<Name>AM-FailedToResolveAPIKey</Name>
</Step>
<Condition>(fault.name Matches "FailedToResolveAPIKey") </Condition>
</FaultRule>Política VerifyJWS
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 |
|---|---|---|
steps.jws.AlgorithmInTokenNotPresentInConfiguration |
401 | Occurs when the verification policy has multiple algorithms |
steps.jws.AlgorithmMismatch |
401 | The algorithm specified in the header by the Generate policy did not match the one expected in the Verify policy. The algorithms specified must match. |
steps.jws.ContentIsNotDetached |
401 | <DetachedContent> is specified when the JWS does not contain a
detached content payload. |
steps.jws.FailedToDecode |
401 | The policy was unable to decode the JWS. The JWS is possibly corrupted. |
steps.jws.InsufficientKeyLength |
401 | For a key less than 32 bytes for the HS256 algorithm |
steps.jws.InvalidClaim |
401 | For a missing claim or claim mismatch, or a missing header or header mismatch. |
steps.jws.InvalidCurve |
401 | The curve specified by the key is not valid for the Elliptic Curve algorithm. |
steps.jws.InvalidJsonFormat |
401 | Invalid JSON found in the JWS header. |
steps.jws.InvalidJws |
401 | This error occurs when the JWS signature verification fails. |
steps.jws.InvalidPayload |
401 | The JWS payload is invalid. |
steps.jws.InvalidSignature |
401 | <DetachedContent> is omitted and the JWS has a detached content payload. |
steps.jws.KeyIdMissing |
401 | The Verify policy uses a JWKS as a source for public keys, but the signed JWS does not
include a kid property in the header. |
steps.jws.KeyParsingFailed |
401 | The public key could not be parsed from the given key information. |
steps.jws.MissingPayload |
401 | The JWS payload is missing. |
steps.jws.NoAlgorithmFoundInHeader |
401 | Occurs when the JWS omits the algorithm header. |
steps.jws.NoMatchingPublicKey |
401 | The Verify policy uses a JWKS as a source for public keys, but the kid
in the signed JWS is not listed in the JWKS. |
steps.jws.UnhandledCriticalHeader |
401 | A header found by the Verify JWS policy in the crit header is not
listed in KnownHeaders. |
steps.jws.UnknownException |
401 | An unknown exception occurred. |
steps.jws.WrongKeyType |
401 | Wrong type of key specified. For example, if you specify an RSA key for an Elliptic Curve algorithm, or a curve key for an RSA algorithm. |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Occurs when |
|---|---|
InvalidAlgorithm |
The only valid values are: RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512, HS256, HS384, HS512. |
|
|
Other possible deployment errors. |
Variables con fallas
Estas variables se configuran cuando se genera un error de entorno de ejecución. Para obtener más información, consulta Qué debes saber sobre los errores de la política.
| Variables | Donde | Ejemplo |
|---|---|---|
fault.name="fault_name" |
fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. | fault.name Matches "TokenExpired" |
JWS.failed |
Todas las políticas de JWS establecen la misma variable en caso de falla. | jws.JWS-Policy.failed = true |
Ejemplo de respuesta de error
Para controlar errores, se recomienda capturar la parte errorcode de la respuesta de error. No dependas del texto en la faultstring, ya que podría cambiar.
Ejemplo de regla de falla
<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>Política de VerifyJWT
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 |
|---|---|---|
steps.jwt.AlgorithmInTokenNotPresentInConfiguration |
401 | Occurs when the verification policy has multiple algorithms. |
steps.jwt.AlgorithmMismatch |
401 | The algorithm specified in the Generate policy did not match the one expected in the Verify policy. The algorithms specified must match. |
steps.jwt.FailedToDecode |
401 | The policy was unable to decode the JWT. The JWT is possibly corrupted. |
steps.jwt.GenerationFailed |
401 | The policy was unable to generate the JWT. |
steps.jwt.InsufficientKeyLength |
401 | For a key less than 32 bytes for the HS256 algorithm, less than 48 bytes for the HS386 algortithm, and less than 64 bytes for the HS512 algorithm. |
steps.jwt.InvalidClaim |
401 | For a missing claim or claim mismatch, or a missing header or header mismatch. |
steps.jwt.InvalidCurve |
401 | The curve specified by the key is not valid for the Elliptic Curve algorithm. |
steps.jwt.InvalidJsonFormat |
401 | Invalid JSON found in the header or payload. |
steps.jwt.InvalidToken |
401 | This error occurs when the JWT signature verification fails. |
steps.jwt.JwtAudienceMismatch |
401 | The audience claim failed on token verification. |
steps.jwt.JwtIssuerMismatch |
401 | The issuer claim failed on token verification. |
steps.jwt.JwtSubjectMismatch |
401 | The subject claim failed on token verification. |
steps.jwt.KeyIdMissing |
401 | The Verify policy uses a JWKS as a source for public keys, but the signed JWT does not
include a kid property in the header. |
steps.jwt.KeyParsingFailed |
401 | The public key could not be parsed from the given key information. |
steps.jwt.NoAlgorithmFoundInHeader |
401 | Occurs when the JWT contains no algorithm header. |
steps.jwt.NoMatchingPublicKey |
401 | The Verify policy uses a JWKS as a source for public keys, but the kid
in the signed JWT is not listed in the JWKS. |
steps.jwt.SigningFailed |
401 | In GenerateJWT, for a key less than the minimum size for the HS384 or HS512 algorithms |
steps.jwt.TokenExpired |
401 | The policy attempts to verify an expired token. |
steps.jwt.TokenNotYetValid |
401 | The token is not yet valid. |
steps.jwt.UnhandledCriticalHeader |
401 | A header found by the Verify JWT policy in the crit header is not
listed in KnownHeaders. |
steps.jwt.UnknownException |
401 | An unknown exception occurred. |
steps.jwt.WrongKeyType |
401 | Wrong type of key specified. For example, if you specify an RSA key for an Elliptic Curve algorithm, or a curve key for an RSA algorithm. |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
InvalidNameForAdditionalClaim |
The deployment will fail if the claim used in the child element <Claim>
of the <AdditionalClaims> element is one of the following registered names:
kid, iss, sub, aud, iat,
exp, nbf, or jti.
|
build |
InvalidTypeForAdditionalClaim |
If the claim used in the child element <Claim>
of the <AdditionalClaims> element is not of type string, number,
boolean, or map, the deployment will fail.
|
build |
MissingNameForAdditionalClaim |
If the name of the claim is not specified in the child element <Claim>
of the <AdditionalClaims> element, the deployment will fail.
|
build |
InvalidNameForAdditionalHeader |
This error ccurs when the name of the claim used in the child element <Claim>
of the <AdditionalClaims> element is either alg or typ.
|
build |
InvalidTypeForAdditionalHeader |
If the type of claim used in the child element <Claim>
of the <AdditionalClaims> element is not of type string, number,
boolean, or map, the deployment will fail.
|
build |
InvalidValueOfArrayAttribute |
This error occurs when the value of the array attribute in the child element <Claim>
of the <AdditionalClaims> element is not set to true or false.
|
build |
InvalidValueForElement |
If the value specified in the <Algorithm> element is not a supported value,
the deployment will fail.
|
build |
MissingConfigurationElement |
This error will occur if the <PrivateKey> element is not used with
RSA family algorithms or the <SecretKey> element is not used with HS Family
algorithms.
|
build |
InvalidKeyConfiguration |
If the child element <Value> is not defined in the <PrivateKey>
or <SecretKey> elements, the deployment will fail.
|
build |
EmptyElementForKeyConfiguration |
If the ref attribute of the child element <Value> of the <PrivateKey>
or <SecretKey> elements is empty or unspecified, the deployment will fail.
|
build |
InvalidConfigurationForVerify |
This error occurs if the <Id> element is defined within the
<SecretKey> element.
|
build |
InvalidEmptyElement |
This error occurs if the <Source> element of the Verify JWT policy
is empty. If present, it must be defined with an Edge flow variable name.
|
build |
InvalidPublicKeyValue |
If the value used in the child element <JWKS> of the <PublicKey> element
does not use a valid format as specified in RFC 7517,
the deployment will fail.
|
build |
InvalidConfigurationForActionAndAlgorithm |
If the <PrivateKey> element is used with HS Family algorithms or
the <SecretKey> element is used with RSA Family algorithms, the
deployment will fail.
|
build |
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 "TokenExpired" |
JWT.failed |
All JWT policies set the same variable in the case of a failure. | JWT.failed = true |
Example error response
For error handling, the best practice is to trap the errorcode part of the error
response. Do not rely on the text in the faultstring, because it could change.
Example fault rule
<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>
Política XMLThreatProtection
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.xmlthreatprotection.ExecutionFailed |
500 | The XMLThreatProtection policy can throw many different types of ExecutionFailed errors. Most of these errors occur when a specific threshold set in the policy is exceeded. These types of errors include: element name length, child count, node depth, attribute count, attribute name length, and many others. You can see the complete list in the XMLThreatProtection policy runtime error troubleshooting topic. | build |
steps.xmlthreatprotection.InvalidXMLPayload |
500 |
This error occurs if the input message payload specified by the XMLThreatProtection policy's <Source> element is not a valid XML Document.
|
build |
steps.xmlthreatprotection.SourceUnavailable |
500 |
This error occurs if the message
variable specified in the <Source> element is either:
|
build |
steps.xmlthreatprotection.NonMessageVariable |
500 |
This error occurs if the <Source> element is set to a variable which
is not of type
message.
|
build |
Notes:
- The error name ExecutionFailed is the default error name and will be returned regardless of the type of error detected; however, this default can be changed by setting an organization-level property. When this property is set, the error name will reflect the actual error. For example, "TextExceeded" or "AttrValueExceeded". See Usage Notes for details.
- The 500 HTTP status is the default; however, the HTTP Status can be changed to 400 for request flow faults by setting an organization-level property. See Usage Notes for details.
Deployment errors
None.
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 "SourceUnavailable" |
xmlattack.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | xmlattack.XPT-SecureRequest.failed = true |
Example error response
{ "fault": { "faultstring": "XMLThreatProtection[XPT-SecureRequest]: Execution failed. reason: XMLThreatProtection[XTP-SecureRequest]: Exceeded object entry name length at line 2", "detail": { "errorcode": "steps.xmlthreatprotection.ExecutionFailed" } } }
Example fault rule
<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>Política XMLtoJSON
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.xmltojson.ExecutionFailed |
500 | This error occurs when the input payload (XML) is empty or the input XML is invalid or malformed. | build |
steps.xmltojson.InCompatibleType |
500 | This error occurs if the type of the variable defined in the <Source> element and the
<OutputVariable> element are not the same. It is mandatory that the type of the variables
contained within the <Source> element and the <OutputVariable> element matches.
|
build |
steps.xmltojson.InvalidSourceType |
500 | This error occurs if the type of the variable used to define the <Source> element is
invalid.The valid types of variable are message and string. |
build |
steps.xmltojson.OutputVariableIsNotAvailable |
500 | This error occurs if the variable specified in the <Source> element of the XML to
JSON policy is of type string and the <OutputVariable> element is not defined.
The <OutputVariable> element is mandatory when the variable defined in the <Source>
element is of type string. |
build |
steps.xmltojson.SourceUnavailable |
500 |
This error occurs if the message
variable specified in the <Source> element of the XML to JSON policy is either:
|
build |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
EitherOptionOrFormat |
If one of the elements <Options> or <Format> is not
declared in the XML to JSON Policy, then the deployment of the API proxy fails.
|
build |
UnknownFormat |
If the <Format> element within the XML to JSON policy has an unknown
format defined, then the deployment of the API proxy fails. Predefined formats include:
xml.com, yahoo, google, and badgerFish.
|
build |
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 = "SourceUnavailable" |
xmltojson.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | xmltojson.XMLtoJSON-1.failed = true |
Example error response
{ "fault": { "faultstring": "XMLToJSON[XMLtoJSON-1]: Source xyz is not available", "detail": { "errorcode": "steps.xml2json.SourceUnavailable" } } }
Example fault rule
<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>
Política XSLTransform
Errores de entorno de ejecución
Estos errores pueden producirse cuando se ejecuta la política.
| Código de falla | Estado de HTTP | Causa | Corregir |
|---|---|---|---|
steps.xsl.XSLSourceMessageNotAvailable |
500 |
Este error se produce si el mensaje o la variable de string especificada en el elemento <Source> de la política de transformación XSL está fuera del alcance (no está disponible en el flujo específico en el que se ejecuta la política) o no se puede resolver (no está definido).
|
build |
steps.xsl.XSLEvaluationFailed |
500 | Este error se produce si la carga útil del archivo XML de entrada no está disponible o tiene una forma incorrecta o si la política XSLTransform falla o no puede transformar el archivo XML de entrada según las reglas de transformación proporcionadas en el archivo XSL. Puede haber muchas causas diferentes por las cuales la política XSLTransform puede fallar. El motivo de la falla en el mensaje de error proporcionará más información sobre la causa. | build |
Errores en la implementación
Estos errores pueden generarse cuando implementas un proxy que contiene esta política.
| Nombre del error | Causa | Corregir |
|---|---|---|
XSLEmptyResourceUrl |
Si el elemento <ResourceURL> en la política de transformación de XSL está vacío, la implementación del proxy de API falla. |
build |
XSLInvalidResourceType |
Si el tipo de recurso especificado en el elemento <ResourceURL> de la política de transformación XSL no es del tipo xsl, la implementación del proxy de la API fallará. |
build |