Você está visualizando a documentação do Apigee Edge.
Acesse a
documentação da
Apigee X. info
Política AccessControl
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 |
|---|---|---|---|
accesscontrol.IPDeniedAccess |
403 | The client IP address, or an IP address passed
in the API request, matches an IP address specified in the <SourceAddress> element within
the <MatchRule> element of the Access Control Policy, and the action attribute of the
<MatchRule> element is set to DENY. |
build |
Fault variables
These variables are set when a runtime error occurs. For more information, see Variables specific to 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 "IPDeniedAccess" |
acl.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | acl.AC-AllowAccess.failed = true |
Example fault response
{
"fault":{
"faultstring":"Access Denied for client ip : 52.211.243.3"
"detail":{
"errorcode":"accesscontrol.IPDeniedAccess"
}
}
}Example fault rule
<FaultRule name="IPDeniedAccess">
<Step>
<Name>AM-IPDeniedAccess</Name>
<Condition>(fault.name Matches "IPDeniedAccess") </Condition>
</Step>
<Condition>(acl.failed = true) </Condition>
</FaultRule>Política de 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 BasicAuthentication
Nesta seção, descrevemos os códigos e as mensagens de erro retornados e as variáveis de falha definidas pelo Edge quando a política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com erros. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa | Correção |
|---|---|---|---|
steps.basicauthentication.InvalidBasicAuthenticationSource |
500 | Em uma decodificação, quando a string codificada de Base64 recebida não contém um valor válido ou o cabeçalho é malformado (por exemplo, não começa com "Basic"). | build |
steps.basicauthentication.UnresolvedVariable |
500 | As variáveis de origem necessárias para decodificar ou codificar não estão presentes. Este erro só
poderá ocorrer se IgnoreUnresolvedVariables for falso. |
build |
Erros na implantação
Esses erros podem ocorrer quando você implanta um proxy que contém esta política.
| Erro de nome | Ocorre quando | Correção |
|---|---|---|
UserNameRequired |
O elemento <User> precisa estar presente na operação nomeada. |
build |
PasswordRequired |
O elemento <Password> precisa estar presente na operação nomeada. |
build |
AssignToRequired |
O elemento <AssignTo> precisa estar presente na operação nomeada. |
build |
SourceRequired |
O elemento <Source> precisa estar presente na operação nomeada. |
build |
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "UnresolvedVariable" |
BasicAuthentication.policy_name.failed |
policy_name é o nome especificado pelo usuário da política que causou a falha. | BasicAuthentication.BA-Authenticate.failed = true |
Exemplo de resposta de erro
{ "fault":{ "detail":{ "errorcode":"steps.basicauthentication.UnresolvedVariable" }, "faultstring":"Unresolved variable : request.queryparam.password" } }
Exemplo de regra de falha
<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 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. |
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "TokenExpired" |
JWS.failed |
Todas as políticas de JWS definem a mesma variável em caso de falha. | jws.JWS-Policy.failed = true |
Exemplo de resposta de erro
Para gerenciar erros, a prática recomendada é interceptar a parte errorcode da resposta de erro. Não confie no texto em faultstring, porque ele pode mudar.
Exemplo de regra de falha
<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 chamada de retorno
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 |
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "TokenExpired" |
JWT.failed |
Todas as políticas do JWT definem a mesma variável em caso de falha. | JWT.failed = true |
Exemplo de resposta de erro
Para gerenciar erros, a prática recomendada é interceptar a parte errorcode da resposta de erro. Não confie no texto em faultstring, porque ele pode mudar.
Exemplo de regra de falha
<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
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.GenerationFailed |
401 | The policy was unable to generate the JWS. |
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.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.SigningFailed |
401 | In GenerateJWS, for a key less than the minimum size for the HS384 or HS512 algorithms |
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. |
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "TokenExpired" |
JWS.failed |
Todas as políticas de JWS definem a mesma variável em caso de falha. | jws.JWS-Policy.failed = true |
Exemplo de resposta de erro
Para gerenciar erros, a prática recomendada é interceptar a parte errorcode da resposta de erro. Não confie no texto em faultstring, porque ele pode mudar.
Exemplo de regra de falha
<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 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 |
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "TokenExpired" |
JWT.failed |
Todas as políticas do JWT definem a mesma variável em caso de falha. | JWT.failed = true |
Exemplo de resposta de erro
Para gerenciar erros, a prática recomendada é interceptar a parte errorcode da resposta de erro. Não confie no texto em faultstring, porque ele pode mudar.
Exemplo de regra de falha
<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 de destaque de Java
Nesta seção, descrevemos os códigos e as mensagens de erro retornados e as variáveis de falha definidas pelo Edge quando a política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa | Correção |
|---|---|---|---|
steps.javacallout.ExecutionError |
500 | Ocorre quando o código Java gera uma exceção ou retorna nulo durante a execução de uma política JavaCallout. | build |
Erros de implantação
Esses erros podem ocorrer quando o proxy que contém a política é implantado.
| Nome do erro | String de falha | Status HTTP | Ocorre quando |
|---|---|---|---|
ResourceDoesNotExist |
Resource with name
[name] and type [type] does not exist |
N/D | O arquivo especificado no elemento <ResourceURL> não existe. |
JavaCalloutInstantiationFailed |
Failed to instantiate the JavaCallout Class [classname] |
N/D | O arquivo de classe especificado no elemento <ClassName> não está no jar. |
IncompatibleJavaVersion |
Failed to load java class [classname] definition due to - [reason] |
N/A | Consulte string de falha. Consulte também Software e versões compatíveis. |
JavaClassNotFoundInJavaResource |
Failed to find the ClassName in java resource [jar_name] -
[class_name] |
N/D | Consulte string de falha. |
JavaClassDefinitionNotFound |
Failed to load java class [class_name] definition due to - [reason] |
N/D | Consulte string de falha. |
NoAppropriateConstructor |
No appropriate constructor found in JavaCallout class [class_name] |
N/D | Consulte string de falha. |
NoResourceForURL |
Could not locate a resource with URL [string] |
N/D | Consulte string de falha. |
Variáveis de falha
Essas variáveis são definidas quando esta política aciona um erro. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "ExecutionError" |
javacallout.policy_name.failed |
policy_name é o nome especificado pelo usuário da política que causou a falha. | javacallout.JC-GetUserData.failed = true |
Exemplo de resposta de erro
{ "fault":{ "faultstring":"Failed to execute JavaCallout. [policy_name]", "detail":{ "errorcode":"javacallout.ExecutionError" } } }
Exemplo de regra de falha
<FaultRule name="JavaCalloutFailed"> <Step> <Name>AM-JavaCalloutError</Name> </Step> <Condition>(fault.name Matches "ExecutionError") </Condition> </FaultRule>
Política de JavaScript
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.javascript.ScriptExecutionFailed |
500 | The JavaScript policy can throw many different types of ScriptExecutionFailed errors. Commonly seen types of errors include RangeError, ReferenceError, SyntaxError, TypeError, and URIError. | build |
steps.javascript.ScriptExecutionFailedLineNumber |
500 | An error occurred in the JavaScript code. See the fault string for details. | N/A |
steps.javascript.ScriptSecurityError |
500 | A security error occurred when the JavaScript executed. See the fault string for details. | N/A |
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 JavaScript policy is invalid, then the deployment of the API proxy fails. |
build |
InvalidResourceUrlReference |
If the <ResourceURL> or the <IncludeURL> elements
refer to a JavaScript 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 |
WrongResourceType |
This error occurs during deployment if the <ResourceURL> or the <IncludeURL>
elements of the JavaScript policy refer to any resource type other than jsc (JavaScript file). |
build |
NoResourceURLOrSource |
The deployment of the JavaScript policy can fail with this error if the <ResourceURL>
element is not declared or if the resource URL is not defined within this element.
<ResourceURL> element is a mandatory element. Or, The <IncludeURL> element is declared
but the resource URL is not defined within this element. The <IncludeURL> element is optional
but if declared, the resource URL must be specified within the <IncludeURL> element. |
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" |
javascript.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | javascript.JavaScript-1.failed = true |
Example error response
{ "fault": { "faultstring": "Execution of SetResponse failed with error: Javascript runtime error: "ReferenceError: "status" is not defined. (setresponse.js:6)\"", "detail": { "errorcode": "steps.javascript.ScriptExecutionFailed" } } }
Example fault rule
<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
Nesta seção, descrevemos os códigos e as mensagens de erro retornados e as variáveis de falha definidas pelo Edge quando a política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa | Correção |
|---|---|---|---|
steps.jsonthreatprotection.ExecutionFailed |
500 | A política JSONThreatProtection pode gerar muitos tipos diferentes de erros ExecutionFailed. A maioria desses erros ocorre quando um limite específico definido na política é excedido. Esses tipos de erros incluem: tamanho do nome de entrada do objeto, contagem de entradas de objetos, contagem de elementos da matriz, profundidade do contêiner e tamanho do valor da string. Esse erro também ocorre quando o payload contém um objeto JSON inválido. | build |
steps.jsonthreatprotection.SourceUnavailable |
500 | Esse erro ocorrerá se a variável message especificada no elemento <Source> for:
|
build |
steps.jsonthreatprotection.NonMessageVariable |
500 | Esse erro ocorrerá se o elemento <Source> estiver definido como uma variável que não é do tipo message. |
build |
Erros na implantação
Nenhum.
Variáveis de falha
Essas variáveis são definidas quando esta política aciona um erro. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "SourceUnavailable" |
jsonattack.policy_name.failed |
policy_name é o nome especificado pelo usuário da política que causou a falha. | jsonattack.JTP-SecureRequest.failed = true |
Exemplo de resposta de erro
{
"fault": {
"faultstring": "JSONThreatProtection[JPT-SecureRequest]: Execution failed. reason: JSONThreatProtection[JTP-SecureRequest]: Exceeded object entry name length at line 2",
"detail": {
"errorcode": "steps.jsonthreatprotection.ExecutionFailed"
}
}
}Exemplo de regra de falha
<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>
Os tipos de políticas JSONThreatProtection definem os seguintes códigos de erro:
Política JSONtoXML
Nesta seção, descrevemos os códigos e as mensagens de erro retornados e as variáveis de falha definidas pelo Edge quando a política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa | Correção |
|---|---|---|---|
steps.jsontoxml.ExecutionFailed |
500 | O payload de entrada (JSON) está vazio ou a entrada (JSON) transmitida para a política JSON para XML é inválida ou está malformada. | build |
steps.jsontoxml.InCompatibleTypes |
500 | Esse erro ocorrerá se o tipo da variável definido no elemento <Source> e o
elemento <OutputVariable> não forem os mesmos. É obrigatório que o tipo das
variáveis contidas no elemento <Source> e no elemento <OutputVariable> seja
igual. Os tipos válidos são message e string. |
build |
steps.jsontoxml.InvalidSourceType |
500 | Este erro ocorrerá se o tipo da variável usado para definir o elemento <Source>
for inválido. Os tipos válidos de variável são message e string. |
build |
steps.jsontoxml.OutputVariableIsNotAvailable |
500 | Esse erro ocorrerá se a variável especificada no elemento <Source> da política JSON para
XML for do tipo string e o elemento <OutputVariable> não for definido.
O elemento <OutputVariable> é obrigatório quando a variável definida no elemento <Source>
é do tipo string. |
build |
steps.jsontoxml.SourceUnavailable |
500 |
Esse erro ocorrerá se a variável message
especificada no elemento <Source> da política JSON para XML se enquadrar em uma destas situações:
|
build |
Erros de implantação
Nenhum.
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "SourceUnavailable" |
jsontoxml.policy_name.failed |
policy_name é o nome especificado pelo usuário da política que causou a falha. | jsontoxml.JSON-to-XML-1.failed = true |
Exemplo de resposta de erro
{
"fault": {
"faultstring": "JSONToXML[JSON-to-XML-1]: Source xyz is not available",
"detail": {
"errorcode": "steps.json2xml.SourceUnavailable"
}
}
}Exemplo de regra de falha
<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 KeyValueMapOperations
Nesta seção, descrevemos os códigos e as mensagens de erro retornados, além das variáveis de falha definidas pelo Edge quando esta política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa | Corrigir |
|---|---|---|---|
steps.keyvaluemapoperations.SetVariableFailed |
500 |
Este erro ocorre se você tentar recuperar um valor de um mapa de valores de chave criptografado e definir
o valor como uma variável que não tenha o prefixo |
build |
steps.keyvaluemapoperations.UnsupportedOperationException |
500 |
Esse erro ocorrerá se o atributo |
build |
Erros de implantação
Esses erros podem ocorrer quando você implanta um proxy que contém essa política.
| Erro de nome | Causa | Correção |
|---|---|---|
InvalidIndex |
Se o atributo index especificado no elemento <Get> da política de operações do mapa de chave-valor for
zero ou um número negativo, a implantação do proxy de API falhará. O índice começa em
1, portanto, um índice de zero ou inteiro negativo é considerado inválido.
|
build |
KeyIsMissing |
Esse erro vai ocorrer se o elemento <Key> estiver completamente ausente ou o elemento <Parameter> estiver ausente no elemento <Key> abaixo do <Entry> do elemento <InitialEntries> da política de operações do mapa de chave-valor.
|
build |
ValueIsMissing |
Esse erro ocorrerá se o elemento <Value> estiver ausente abaixo do elemento <Entry> do
elemento <InitialEntries> da política de operações do mapa de chave-valor. |
build |
Política LDAP
Esta política usa os seguintes códigos de erro:
| Código do erro | A mensagem |
|---|---|
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
Nesta seção, descrevemos os códigos e as mensagens de erro retornados e as variáveis de falha definidas pelo Edge quando a política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa |
|---|---|---|
steps.messagelogging.StepDefinitionExecutionFailed |
500 | Consulte string de falha. |
Erros de implantação
Esses erros podem ocorrer quando você implanta um proxy que contém essa política.
| Erro de nome | Causa | Correção |
|---|---|---|
InvalidProtocol |
A implantação da política MessageLogging poderá falhar com esse erro se o protocolo
especificado no elemento <Protocol> não for válido. Os protocolos válidos são TCP e UDP.
Para enviar mensagens syslog por TLS/SSL, apenas TCP é aceito. |
build |
InvalidPort |
A implantação da política MessageLogging poderá falhar com esse erro se o número da porta
não for especificado no elemento <Port> ou se não for válido. O número da porta precisa ser
um número inteiro maior que zero. |
build |
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "StepDefinitionExecutionFailed" |
messagelogging.policy_name.failed |
policy_name é o nome especificado pelo usuário da política que causou a falha. | messagelogging.ML-LogMessages.failed = true |
Exemplo de resposta de erro
{
"fault":{
"detail":{
"errorcode":"steps.messagelogging.StepDefinitionExecutionFailed"
},
"faultstring":"Execution failed"
}
}Exemplo de regra de falha
<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
Nesta seção, descrevemos os códigos e as mensagens de erro retornados, além das variáveis de falha definidas pelo Edge quando esta política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa | |
|---|---|---|---|
steps.oasvalidation.Failed |
500 | O corpo da mensagem da solicitação não pode ser validado de acordo com a especificação OpenAPI fornecida. | |
steps.oasvalidation.SourceMessageNotAvailable |
500 |
A variável especificada no elemento |
|
steps.oasvalidation.NotMessageVariable |
500 |
O elemento |
build |
Erros na implantação
Esses erros podem ocorrer quando você implanta um proxy que contém esta política.
| Nome do erro | Causa | |
|---|---|---|
ResourceDoesNotExist |
A especificação OpenAPI mencionada no elemento <OASResource> não existe.
|
|
ResourceCompileFailed |
A especificação OpenAPI incluída na implantação contém erros que impedem que ela seja compilada. Geralmente, isso indica que a especificação não é uma Especificação OpenAPI 3.0 bem formada. | |
BadResourceURL |
A especificação OpenAPI referenciada no elemento <OASResource> não pode ser processada. Isso poderá ocorrer se o arquivo não for JSON ou YAML ou se o
URL do arquivo não estiver especificado corretamente.
|
Variáveis de falha
Essas variáveis são definidas quando essa política aciona um erro no ambiente de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "ResourceDoesNotExist" |
oasvalidation.policy_name.failed |
policy_name é o nome da política especificada pelo usuário que gerou a falha. | oasvalidation.myoaspolicy.failed = true |
Política PopulateCache
Nesta seção, descrevemos os códigos e as mensagens de erro retornados e as variáveis de falha definidas pelo Edge quando a política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status do HTTP | Ocorre quando |
|---|---|---|
policies.populatecache.EntryCannotBeCached |
500 | Uma entrada não pode ser armazenada em cache. O objeto de mensagem em cache não é uma instância de uma classe que é serializável. |
Erros de implantação
Esses erros podem ocorrer quando você implanta um proxy que contém essa política.
| Erro de nome | Causa | Correção |
|---|---|---|
InvalidCacheResourceReference |
Esse erro ocorrerá se o elemento <CacheResource> na política PopulateCache estiver definido como um nome que não exista no ambiente em que o proxy de API está sendo implantado. |
build |
CacheNotFound |
O cache especificado no elemento <CacheResource> não existe. |
build |
Variáveis de falha
Essas variáveis são definidas quando esta política aciona um erro. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name = "EntryCannotBeCached" |
populatecache.policy_name.failed |
policy_name é o nome especificado pelo usuário da política que causou a falha. | populatecache.POP-CACHE-1.failed = true |
Exemplo de resposta de erro
{ "fault": { "faultstring": "[entry] can not be cached. Only serializable entries are cached.", "detail": { "errorcode": "steps.populatecache.EntryCannotBeCached" } } }
Exemplo de regra de falha
<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
Nesta seção, descrevemos as mensagens de erro e as variáveis de fluxo que são definidas quando essa política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para um proxy. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Prefixo do código de erro
N/A
Erros de execução
Essa política não gera erros de ambiente de execução.
Erros de implantação
Esses erros podem ocorrer quando você implanta um proxy que contém essa política.
| Erro de nome | Causa | Corrigir |
|---|---|---|
InvalidCacheResourceReference |
Esse erro ocorrerá se o elemento <CacheResource> estiver definido como um
nome que não existe no ambiente em que o proxy de API está sendo implantado. |
build |
InvalidTimeout |
Se o elemento <CacheLookupTimeoutInSeconds> estiver definido como
um número negativo, a implantação do proxy de API falhará. |
build |
CacheNotFound |
Esse erro ocorre quando o cache específico mencionado na mensagem de erro não tiver sido criado em um componente de processador de mensagens específico. | build |
Variáveis de falha
N/A
Exemplo de resposta de erro
N/A
Política InvalidateCache
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 in the InvalidateCache policy is set
to a name that does not exist in the environment where the API proxy is being deployed. |
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 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 do OAuthV2
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 | Thrown by operations |
|---|---|---|---|
steps.oauth.v2.access_token_expired |
401 | The access token is expired. |
VerifyAccessToken |
steps.oauth.v2.access_token_not_approved |
401 | The access token was revoked. | VerifyAccessToken |
steps.oauth.v2.apiresource_doesnot_exist |
401 | The requested resource does not exist any of the API products associated with the access token. | VerifyAccessToken |
steps.oauth.v2.FailedToResolveAccessToken |
500 | The policy expected to find an access token in a variable specified in the
<AccessToken> element, but the variable could not be resolved. |
GenerateAccessToken |
steps.oauth.v2.FailedToResolveAuthorizationCode |
500 | The policy expected to find an authorization code in a variable specified in the
<Code> element, but the variable could not be resolved. |
GenerateAuthorizationCode |
steps.oauth.v2.FailedToResolveClientId |
500 | The policy expected to find the Client ID in a variable specified in the
<ClientId> element, but the variable could not be resolved. |
GenerateAccessToken GenerateAuthorizationCode GenerateAccessTokenImplicitGrant RefreshAccessToken |
steps.oauth.v2.FailedToResolveRefreshToken |
500 | The policy expected to find a refresh token in a variable specified in the
<RefreshToken> element, but the variable could not be resolved. |
RefreshAccessToken |
steps.oauth.v2.FailedToResolveToken |
500 | The policy expected to find a token in a variable specified in the
<Tokens> element, but the variable could not be resolved. |
ValidateToken |
steps.oauth.v2.InsufficientScope |
403 | The access token presented in the request has a scope that does not match the scope specified in the verify access token policy. To learn about scope, see Working with OAuth2 scopes. | VerifyAccessToken |
steps.oauth.v2.invalid_access_token |
401 | The access token sent from the client is invalid. | VerifyAccessToken |
steps.oauth.v2.invalid_client |
401 |
This error name is returned when the Note: It is recommended that you change existing fault rule
conditions to catch both the |
GenerateAccessToken RefreshAccessToken |
steps.oauth.v2.InvalidRequest |
400 | This error name is used for multiple different kinds of errors, typically for missing
or incorrect parameters sent in the request. If <GenerateResponse> is
set to false, use fault variables (described below) to retrieve details about
the error, such as the fault name and cause. |
GenerateAccessToken GenerateAuthorizationCode GenerateAccessTokenImplicitGrant RefreshAccessToken |
steps.oauth.v2.InvalidAccessToken |
401 | The authorization header does not have the word "Bearer", which is required. For
example: Authorization: Bearer your_access_token |
VerifyAccessToken |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 |
The API proxy is not in the Product associated with the access token. Tips: Be sure that the product associated with the access token is configured correctly. For example, if you use wildcards in resource paths, be sure the wildcards are being used correctly. See Create API products for details. See also this Apigee Community post for more guidance on causes for this error. |
VerifyAccessToken |
steps.oauth.v2.InvalidClientIdentifier |
500 |
This error name is returned when the |
GenerateAccessToken |
steps.oauth.v2.InvalidParameter |
500 | The policy must specify either an access token or an authorization code, but not both. | GenerateAuthorizationCode GenerateAccessTokenImplicitGrant |
steps.oauth.v2.InvalidTokenType |
500 | The <Tokens>/<Token> element requires you to specify the token
type (for example, refreshtoken). If the client passes the wrong type, this
error is thrown. |
ValidateToken InvalidateToken |
steps.oauth.v2.MissingParameter |
500 | The response type is token, but no grant types are specified. |
GenerateAuthorizationCode GenerateAccessTokenImplicitGrant |
steps.oauth.v2.UnSupportedGrantType |
500 |
The client specified a grant type that is unsupported by the policy (not listed in the <SupportedGrantTypes> element). Note: There is currently a bug where unsupported grant type errors are not thrown correctly. If an unsupported grant type error occurs, the proxy does not enter the Error Flow, as expected. |
GenerateAccessToken GenerateAuthorizationCode GenerateAccessTokenImplicitGrant RefreshAccessToken |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause |
|---|---|
InvalidValueForExpiresIn |
For the |
InvalidValueForRefreshTokenExpiresIn |
For the <RefreshTokenExpiresIn> element, valid values are positive
integers and -1. |
InvalidGrantType |
An invalid grant type is specified in the <SupportedGrantTypes>
element. See the policy reference for a list of valid types. |
ExpiresInNotApplicableForOperation |
Be sure that the operations specified in the <Operations> element support expiration. For example, the VerifyToken operation does not. |
RefreshTokenExpiresInNotApplicableForOperation |
Be sure that the operations specified in the <Operations> element support refresh token expiration. For example, the VerifyToken operation does not. |
GrantTypesNotApplicableForOperation |
Be sure that the grant types specified in <SupportedGrantTypes> are supported for the specified operation. |
OperationRequired |
You must specify an operation in this policy using the Note: If the |
InvalidOperation |
You must specify a valid operation in this policy using the
Note: If the |
TokenValueRequired |
You must specify a token <Token> value in the
<Tokens> element. |
Fault variables
These variables are set when this policy triggers an error at runtime.
| 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 = "InvalidRequest" |
oauthV2.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | oauthV2.GenerateAccesstoken.failed = true |
oauthV2.policy_name.fault.name |
policy_name is the user-specified name of the policy that threw the fault. | oauthV2.GenerateAccesstoken.fault.name = InvalidRequest
Note: For the VerifyAccessToken operation, the fault name includes this suffix: |
oauthV2.policy_name.fault.cause |
policy_name is the user-specified name of the policy that threw the fault. | oauthV2.GenerateAccesstoken.cause = Required param : grant_type |
Example error response
These responses are sent back to the client if the <GenerateResponse>
element is true.
If <GenerateResponse> is true, the policy returns errors
in this format for operations that generate tokens and codes. For a complete list, see see
OAuth HTTP error
response reference.
{"ErrorCode" : "invalid_client", "Error" :"ClientId is Invalid"}If <GenerateResponse> is true, the policy returns errors
in this format for verify and validate operations. For a complete list, see see OAuth HTTP error
response reference.
{ { "fault":{ "faultstring":"Invalid Access Token", "detail":{ "errorcode":"keymanagement.service.invalid_access_token" } } }
Example fault rule
<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 GetOAuthV2Info
Nesta seção, descrevemos os códigos e as mensagens de erro retornados e as variáveis de falha definidas pelo Edge quando a política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada. Os nomes de erro mostrados abaixo são as strings atribuídas à variável fault.name quando ocorre um erro. Consulte a seção "Variáveis de falha" abaixo para mais detalhes.
| Código de falha | Status HTTP | Causa |
|---|---|---|
steps.oauth.v2.access_token_expired |
500 | O token de acesso enviado para a política expirou. |
steps.oauth.v2.authorization_code_expired |
500 | O código de autorização enviado para a política expirou. |
steps.oauth.v2.invalid_access_token |
500 | O token de acesso enviado para a política é inválido. |
steps.oauth.v2.invalid_client-invalid_client_id |
500 | O ID do cliente enviado para a política é inválido. |
steps.oauth.v2.invalid_refresh_token |
500 | O token de atualização enviado para a política é inválido. |
steps.oauth.v2.invalid_request-authorization_code_invalid |
500 | O código de autorização enviado para a política é inválido. |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 | Consulte esta postagem da comunidade da Apigee para informações sobre como solucionar esse erro. |
steps.oauth.v2.refresh_token_expired |
500 | O token de atualização enviado para a política expirou. |
Erros de implantação
Consulte a mensagem relatada na IU para informações sobre erros de implantação.
Variáveis de falha
Essas variáveis são definidas quando essa política aciona um erro no ambiente de execução.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "IPDeniedAccess" |
oauthV2.policy_name.failed |
policy_name é o nome da política especificada pelo usuário que gerou a falha. | oauthV2.GetTokenInfo.failed = true |
oauthV2.policy_name.fault.name |
policy_name é o nome da política especificada pelo usuário que gerou a falha. | oauthV2.GetToKenInfo.fault.name = invalid_client-invalid_client_id |
oauthV2.policy_name.fault.cause |
policy_name é o nome da política especificada pelo usuário que gerou a falha. | oauthV2.GetTokenInfo.cause = ClientID is Invalid |
Exemplo de resposta de erro
{ "fault":{ "faultstring":"ClientId is Invalid", "detail":{ "errorcode":"keymanagement.service.invalid_client-invalid_client_id" } } }
Exemplo de regra de falha
<FaultRule name="OAuthV2 Faults">
<Step>
<Name>AM-InvalidClientIdResponse</Name>
</Step>
<Condition>(fault.name = "invalid_client-invalid_client_id")</Condition>
</FaultRule>Política SetOAuthV2Info
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.oauth.v2.access_token_expired |
500 | The access token sent to the policy is expired. |
steps.oauth.v2.invalid_access_token |
500 | The access token sent to the policy is invalid. |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 | Please see this Apigee Community post for information about troubleshooting this error. |
Deployment errors
Refer to the message reported in the UI for information about deployment errors.
Fault variables
These variables are set when this policy triggers an error at runtime.
| 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 = "invalid_access_token" |
oauthV2.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | oauthV2.SetTokenInfo.failed = true |
oauthV2.policy_name.fault.name |
policy_name is the user-specified name of the policy that threw the fault. | oauthV2.SetTokenInfo.fault.name = invalid_access_token |
oauthv2.policy_name.fault.cause |
policy_name is the user-specified name of the policy that threw the fault. | oauthV2.SetTokenInfo.cause = Invalid Access Token |
Example error response
{
"fault": {
"faultstring": "Invalid Access Token",
"detail": {
"errorcode": "keymanagement.service.invalid_access_token"
}
}
}Example fault rule
<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
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.oauth.v2.invalid_access_token |
401 | The access token sent to the policy is invalid. |
steps.oauth.v2.invalid_request-authorization_code_invalid |
401 | The authorization code sent to the policy is invalid. |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 | Please see this Apigee Community post for information about troubleshooting this error. |
Deployment errors
Refer to the message reported in the UI for information about deployment errors.
Fault variables
These variables are set when this policy triggers an error at runtime.
| 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 = "invalid_access_token" |
oauthV2.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | oauthV2.DeleteTokenInfo.failed = true |
oauthV2.policy_name.fault.name |
policy_name is the user-specified name of the policy that threw the fault. | oauthV2.DeleteTokenInfo.fault.name = invalid_access_token |
oauthv2.policy_name.fault.cause |
policy_name is the user-specified name of the policy that threw the fault. | oauthV2.DeleteTokenInfo.cause = Invalid Access Token |
Example error response
{
"fault": {
"faultstring": "Invalid Access Token",
"detail": {
"errorcode": "keymanagement.service.invalid_access_token"
}
}
}Example fault rule
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="DeleteOAuthV2Info_Faults">
<Step>
<Name>AM-InvalidTokenResponse</Name>
</Step>
<Condition>(fault.name = "invalid_access_token")</Condition>
</FaultRule>Política do 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 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
Esta seção descreve os códigos e mensagens de erro retornados e as variáveis de falha que são definidos pelo Edge quando esta política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa | Correção |
|---|---|---|---|
steps.script.ScriptEvaluationFailed |
500 | A política PythonScript pode gerar vários tipos diferentes de erros ScriptExecutionFailed. Alguns dos tipos de erros mais comuns são NameError e ZeroDivisionError. | build |
Erros na implantação
Esses erros podem ocorrer quando você implanta um proxy que contém essa política.
| Nome do erro | Causa | Correção |
|---|---|---|
InvalidResourceUrlFormat |
Se o formato do URL do recurso especificado no <ResourceURL> ou
no elemento <IncludeURL> da política PythonScript for inválido, a implantação do proxy da API falhará. |
build |
InvalidResourceUrlReference |
Se os elementos <ResourceURL> ou <IncludeURL>
fizerem referência a um arquivo PythonScript que não existe, a implantação do proxy da API falhará.
O arquivo de origem referenciado precisa existir no proxy, no ambiente ou no nível da organização da API. |
build |
Variáveis de falha
Essas variáveis são definidas quando essa política aciona um erro no ambiente de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "ScriptExecutionFailed" |
pythonscript.policy_name.failed |
policy_name é o nome especificado pelo usuário da política que causou a falha. | pythonscript.PythonScript-1.failed = true |
Exemplo de resposta de erro
{ "fault": { "faultstring": "Execution of SetResponse failed with error: Pythonscript runtime error: "ReferenceError: "status" is not defined.\"", "detail": { "errorcode": "steps.script.ScriptExecutionFailed" } } }
Exemplo de regra de falha
<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 cotas
Nesta seção, descrevemos os códigos e as mensagens de erro retornados e as variáveis de falha definidas pelo Edge quando a política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa | Correção |
|---|---|---|---|
policies.ratelimit.FailedToResolveQuotaIntervalReference |
500 | Ocorre se o elemento <Interval> não estiver definido na política de cotas. Esse elemento
é obrigatório e usado para especificar o intervalo de tempo aplicável à cota. O intervalo de tempo
pode ser minutos, horas, dias, semanas ou meses, conforme definido com o elemento <TimeUnit>. |
build |
policies.ratelimit.FailedToResolveQuotaIntervalTimeUnitReference |
500 | Ocorre se o elemento <TimeUnit> não estiver definido na política de cotas. Esse elemento
é obrigatório e é usado para especificar a unidade de tempo aplicável à cota. O intervalo de tempo
pode ser de minutos, horas, dias, semanas ou meses. |
build |
policies.ratelimit.InvalidMessageWeight |
500 | Ocorre se o valor do elemento <MessageWeight> especificado por meio de uma variável de fluxo for
inválido (um valor não inteiro). |
build |
policies.ratelimit.QuotaViolation |
500 | O limite de cota foi excedido. | N/A |
Erros de implantação
| Nome do erro | Causa | Correção |
|---|---|---|
InvalidQuotaInterval |
Se o intervalo de cota especificado no elemento <Interval> não
for um número inteiro, a implantação do proxy de API falhará. Por exemplo, se o intervalo de cota
especificado for 0.1 no elemento <Interval>, a implantação do
proxy de API falhará.
|
build |
InvalidQuotaTimeUnit |
Se a unidade de tempo especificada no elemento <TimeUnit> não for compatível,
a implantação do proxy de API falhará. As unidades de tempo compatíveis são minute,
hour, day, week e month.
|
build |
InvalidQuotaType |
Se o tipo de cota especificado pelo atributo type no elemento <Quota>
for inválido, a implantação do proxy da API falhará. Os
tipos de cota compatíveis são default, calendar, flexi e rollingwindow.
|
build |
InvalidStartTime |
Se o formato do tempo especificado no elemento <StartTime> for
inválido, a implantação do proxy de API falhará. O formato válido é yyyy-MM-dd HH:mm:ss,
que é o formato de data e hora ISO 8601. Por
exemplo, se o tempo especificado no elemento <StartTime> for
7-16-2017 12:00:00, a implantação do proxy da API falhará.
|
build |
StartTimeNotSupported |
Se o elemento <StartTime> for especificado e tem um tipo de cota que não é
calendar, a implantação do proxy da API falhará. O elemento <StartTime> é
compatível apenas com o tipo de cota calendar. Por exemplo, se o atributo type estiver definido
como flexi ou rolling window no elemento <Quota>, a
implantação do proxy da API falhará.
|
build |
InvalidTimeUnitForDistributedQuota |
Se o elemento <Distributed> estiver definido como true e o elemento <TimeUnit> estiver definido como
second, a implantação do proxy de API falhará. A unidade de tempo second é inválida para
uma cota distribuída. |
build |
InvalidSynchronizeIntervalForAsyncConfiguration |
Se o valor especificado para o elemento <SyncIntervalInSeconds> dentro do elemento
<AsynchronousConfiguration> em uma política de cota menor que zero, a
implantação do proxy da API falhará. |
build |
InvalidAsynchronizeConfigurationForSynchronousQuota |
Se o valor do elemento <AsynchronousConfiguration> estiver definido como true em uma política de cota, que também
tem configuração assíncrona definida usando o elemento <AsynchronousConfiguration>, a
implantação do proxy de API falhará. |
build |
Variáveis de falha
Essas variáveis são definidas quando esta política aciona um erro. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "QuotaViolation" |
ratelimit.policy_name.failed |
policy_name é o nome especificado pelo usuário da política que causou a falha. | ratelimit.QT-QuotaPolicy.failed = true |
Exemplo de resposta de erro
{ "fault":{ "detail":{ "errorcode":"policies.ratelimit.QuotaViolation" }, "faultstring":"Rate limit quota violation. Quota limit exceeded. Identifier : _default" } }
Exemplo de regra de falha
<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
This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
| Fault code | HTTP status | Cause | Fix |
|---|---|---|---|
policies.resetquota.InvalidRLPolicy |
500 | The Quota policy specified in the <Quota> element of the Reset Quota policy
is not defined in the API proxy and thus is not available during the flow. The <Quota>
element is mandatory and identifies the target Quota policy whose counter should be updated
through the Reset Quota policy. |
build |
policies.resetquota.FailedToResolveAllowCountRef |
N/A | The reference to the variable containing the allow count in the <Allow> element
of the policy cannot be resolved to a value. This element is mandatory and specifies the amount
to decrease the quota counter. |
build |
policies.resetquota.FailedToResolveRLPolicy |
500 | The variable referenced by the ref attribute in the <Quota> element
cannot be resolved. |
build |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
InvalidCount |
If the count value specified in the <Allow> element of the Reset Quota Policy is not an integer,
then the deployment of the API proxy fails.
|
build |
Política RaiseFault
Esta seção descreve os códigos e mensagens de erro retornados e as variáveis de falha que são definidos pelo Edge quando esta política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa |
|---|---|---|
steps.raisefault.RaiseFault |
500 | Consulte string de falha. |
Erros de implantação
Nenhum.
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name = "RaiseFault" |
raisefault.policy_name.failed |
policy_name é o nome especificado pelo usuário da política que isso causou um erro. | raisefault.RF-ThrowError.failed = true |
Exemplo de resposta de erro
{ "fault":{ "detail":{ "errorcode":"steps.raisefault.RaiseFault" }, "faultstring":"Raising fault. Fault name: [name]" } }
Política RegularExpressionProtection
Nesta seção, descrevemos os códigos e as mensagens de erro retornados e as variáveis de falha
definidas pelo Edge quando esta política aciona um erro. Essas informações são importantes para saber se
você está desenvolvendo regras de falha para lidar com falhas. Se você quiser capturar um erro e criar seu próprio
erro personalizado, defina o atributo continueOnError="true" no elemento raiz da política.
Para mais informações, consulte
O que você precisa saber sobre erros de política e Como lidar
com falhas.
Os erros retornados das políticas do Edge seguem um formato consistente, conforme descrito na Referência do código de erro.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código do erro | Mensagem |
|---|---|
| ExecutionFailed | Falha ao executar a StepDefinition de RegularExpressionProtection {0}. Motivo: {1} |
| InstantiationFailed | Falha ao instanciar CommonExpressionProtection StepDefinition {0} |
| NonMessageVariable | A variável {0} não resulta em uma mensagem |
| SourceMessageNotAvailable | {0} mensagem não está disponível para a StepDefinition da RegularExpressionProtection {1} |
| ThreatDetected | Ameaça de expressão regular detectada em {0}: regex: {1} entrada: {2} |
| VariableResolutionFailed | Falha ao resolver a variável {0} |
Erros de implantação
| Código do erro | Mensagem | Correção |
|---|---|---|
| CannotBeConvertedToNodeset | RegularExpressionProtection: {0} o resultado de xpath {1} não pode ser convertido em nodeset. Contexto {2} | build |
| DuplicatePrefix | RegularExpressionProtection {0}: prefixo duplicado {1} | build |
| EmptyJSONPathExpression | RegularExpressionProtection {0}: expressão JSONPath vazia | build |
| EmptyXPathExpression | RegularExpressionProtection {0}: expressão XPath vazia | build |
| InvalidRegularExpression | RegularExpressionProtection {0}: expressão regular inválida {1}, contexto {2} | build |
| JSONPathCompilationFailed | RegularExpressionProtection {0}: falha ao compilar jsonpath {1}. Contexto {2} | build |
| NONEmptyPrefixMappedToEmptyURI | RegularExpressionProtection {0}: o prefixo não vazio {1} não pode ser mapeado para o URI vazio | build |
| NoPatternsToEnforce | RegularExpressionProtection: {0} não há padrões a serem aplicados em {1} | build |
| NothingToEnforce | RegularExpressionProtection {0}: pelo menos um dos URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload é obrigatório. | build |
| XPathCompilationFailed | RegularExpressionProtection {0}: falha ao compilar o xpath {1}. Contexto {2} | build |
Variáveis de falha
Essas variáveis são definidas quando esta política aciona um erro. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela acima. | fault.name Matches "ThreatDetected" |
regularexpressionprotection.policy_name.failed |
policy_name é o nome da política especificada pelo usuário que gerou a falha. | regularexpressionprotection.Regular-Expressions-Protection-1.failed = true |
Política SOAPMessageValidation
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.messagevalidation.SourceMessageNotAvailable |
500 |
This error occurs if a variable specified in the
|
build |
steps.messagevalidation.NonMessageVariable |
500 |
This error occurs if the Message type variables represent entire HTTP requests and responses. The built-in Edge
flow variables |
build |
steps.messagevalidation.Failed |
500 | This error occurs if the SOAPMessageValidation policy fails to validate the input message payload against the XSD schema or WSDL definition. It will also occur if there is malformed JSON or XML in the payload message. | build |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
InvalidResourceType |
The <ResourceURL> element in the SOAPMessageValidation policy is set to a resource type
not supported by the policy.
|
build |
ResourceCompileFailed |
The resource script referenced in the <ResourceURL> element of the SOAPMessageValidation
policy contains an error that prevents it from compiling.
|
build |
RootElementNameUnspecified |
The <Element> element in the SOAPMessageValidation policy does not contain the root
element's name. |
build |
InvalidRootElementName |
The <Element> element in the SOAPMessageValidation policy contains a root element name
that does not adhere to XML rules for valid element naming. |
build |
Política 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 Detenção de pico
Esta seção descreve os códigos e mensagens de erro retornados e as variáveis de falha que são definidos pelo Edge quando esta política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa | Corrigir |
|---|---|---|---|
policies.ratelimit.FailedToResolveSpikeArrestRate |
500 |
Esse erro ocorrerá se a referência à variável que contém a configuração de taxa
no elemento <Rate> não puder ser resolvida como um valor na política Spike
Arrest. Esse elemento é obrigatório e usado para especificar a taxa de parada de pico na
forma de intpm ou intps. |
build |
policies.ratelimit.InvalidMessageWeight |
500 |
Esse erro ocorrerá se o valor especificado para o elemento <MessageWeight> por meio
de uma variável de fluxo for inválido (um valor não inteiro). |
build |
policies.ratelimit.SpikeArrestViolation |
429 |
O limite de taxa foi excedido. |
Erros de implantação
Esses erros podem ocorrer quando você implanta um proxy que contém esta política.
| Nome do erro | Causa | Corrigir |
|---|---|---|
InvalidAllowedRate |
Se a taxa de detenção de pico especificada no elemento <Rate> da Política
do Spike Arrest não é um número inteiro ou se a taxa não tem ps ou pm como um sufixo,
a implantação do proxy da API falhará. |
build |
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "SpikeArrestViolation" |
ratelimit.policy_name.failed |
policy_name é o nome da política especificada pelo usuário que gerou a falha. | ratelimit.SA-SpikeArrestPolicy.failed = true |
Exemplo de resposta de erro
Veja abaixo um exemplo de resposta de erro:
{ "fault":{ "detail":{ "errorcode":"policies.ratelimit.SpikeArrestViolation" }, "faultstring":"Spike arrest violation. Allowed rate : 10ps" } }
Exemplo de regra de falha
Veja abaixo um exemplo de regra de falha para lidar com uma falha SpikeArrestViolation:
<FaultRules>
<FaultRule name="Spike Arrest Errors">
<Step>
<Name>JavaScript-1</Name>
<Condition>(fault.name Matches "SpikeArrestViolation") </Condition>
</Step>
<Condition>ratelimit.Spike-Arrest-1.failed=true</Condition>
</FaultRule>
</FaultRules>Política StatisticsCollector
Nesta seção, descrevemos as mensagens de erro e as variáveis de fluxo que são definidas quando essa política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para um proxy. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Nenhum.
Erros de implantação
| Nome do erro | Causa | Corrigir |
|---|---|---|
UnsupportedDatatype |
Se o tipo da variável especificado pelo atributo ref no elemento <Statistic>
da política do Coletor de estatísticas não for compatível, a implantação do proxy da API
falhará. Os tipos de dados compatíveis são string, integer,
float, long, double e boolean. |
build |
InvalidName |
Se o nome usado para referenciar os dados coletados para a variável especificada definida
no elemento <Statistic> da política do Coletor de estatísticas estiver em conflito com uma
variável definida pelo sistema, a implantação do proxy da API falhará. Algumas das variáveis conhecidas
definidas pelo sistema são organization e environment. |
build |
DatatypeMissing |
Se o tipo da variável especificado pelo atributo ref no elemento <Statistic>
da política do coletor de estatísticas estiver ausente, a implantação do proxy da API falhará. |
build |
Variáveis de falha
Nenhum.
Política VerifyAPIKey
Esta seção descreve os códigos de falha e as mensagens de erro que são retornadas e as variáveis de falha definidas pelo Edge quando essa política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa |
|---|---|---|
keymanagement.service.CompanyStatusNotActive |
401 | A empresa associada ao app Developer que tem a chave de API que você está usando tem um status inativo. Quando o status de uma Empresa é definido como inativo, você não pode acessar os desenvolvedores ou apps associados a ela. Um administrador da organização pode mudar o status de uma empresa usando a API de gerenciamento. Consulte Definir o status de uma empresa. |
keymanagement.service.DeveloperStatusNotActive |
401 |
O desenvolvedor que criou o app Developer que tem a chave de API que você está usando tem um status inativo. Quando o status de um desenvolvedor de apps é definido como inativo, todos os apps Developer criados por ele são desativados. Um usuário administrador com as devidas permissões, como administrador da organização, pode alterar o status do desenvolvedor das seguintes maneiras:
|
keymanagement.service.invalid_client-app_not_approved |
401 | O app Developer associado à chave de API foi revogado. Um app revogado não pode acessar nenhum produto de API e não pode invocar qualquer API gerenciada pelo Apigee Edge. Um administrador da organização pode mudar o status de um app Developer usando a API de gerenciamento. Consulte Aprovar ou revogar o app Developer. |
oauth.v2.FailedToResolveAPIKey |
401 | A política espera encontrar a chave de API em uma variável especificada no elemento <APIKey> da política. Esse erro ocorre quando a variável esperada não existe (ela não pode ser resolvida). |
oauth.v2.InvalidApiKey |
401 | Uma chave de API foi recebida pelo Edge, mas é inválida. Quando o Edge procura a chave no banco de dados, ela precisa corresponder exatamente àquela que foi enviada na solicitação. Se a API já funcionou antes, verifique se a chave não foi gerada novamente. Se a chave tiver sido gerada novamente, você verá este erro se tentar usar a chave antiga. Para mais detalhes, consulte Registrar apps e gerenciar chaves de API. |
oauth.v2.InvalidApiKeyForGivenResource |
401 | Uma chave de API foi recebida pelo Edge e é válida; no entanto, ela não corresponde a uma chave aprovada no app Developer associado ao seu proxy de API por meio de um produto. |
Erros de implantação
Esses erros podem ocorrer quando você implanta um proxy que contém esta política.
| Nome do erro | Causa |
|---|---|
SpecifyValueOrRefApiKey |
O elemento <APIKey> não tem um valor ou uma chave especificada. |
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "FailedToResolveAPIKey" |
oauthV2.policy_name.failed |
policy_name é o nome da política especificada pelo usuário que gerou a falha. | oauthV2.VK-VerifyAPIKey.failed = true |
Exemplos de respostas de erros
{
"fault":{
"faultstring":"Invalid ApiKey",
"detail":{
"errorcode":"oauth.v2.InvalidApiKey"
}
}
}{
"fault":{
"detail":{
"errorcode":"keymanagement.service.DeveloperStatusNotActive"
},
"faultstring":"Developer Status is not Active"
}
}Exemplo de regra de falha
<FaultRule name="FailedToResolveAPIKey">
<Step>
<Name>AM-FailedToResolveAPIKey</Name>
</Step>
<Condition>(fault.name Matches "FailedToResolveAPIKey") </Condition>
</FaultRule>Política VerifyJWS
Nesta seção, descrevemos os códigos e as mensagens de erro retornados, além das variáveis de falha definidas pelo Edge quando esta política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Ocorre quando |
|---|---|---|
steps.jws.AlgorithmInTokenNotPresentInConfiguration |
401 | Ocorre quando a política de verificação tem vários algoritmos |
steps.jws.AlgorithmMismatch |
401 | O algoritmo especificado no cabeçalho pela política de geração não corresponde ao esperado na política de verificação. Os algoritmos especificados precisam corresponder. |
steps.jws.ContentIsNotDetached |
401 | <DetachedContent> é especificado quando o JWS não contém um
payload de conteúdo separado. |
steps.jws.FailedToDecode |
401 | A política não conseguiu decodificar o JWS. A JWS está possivelmente corrompida. |
steps.jws.InsufficientKeyLength |
401 | Para uma chave menor que 32 bytes para o algoritmo HS256 |
steps.jws.InvalidClaim |
401 | Para uma reivindicação ausente ou incompatibilidade de reivindicação ou um cabeçalho ou cabeçalho ausente. |
steps.jws.InvalidCurve |
401 | A curva especificada pela chave não é válida para o algoritmo de curva elíptica. |
steps.jws.InvalidJsonFormat |
401 | JSON inválido encontrado no cabeçalho JWS. |
steps.jws.InvalidJws |
401 | Esse erro ocorre quando a verificação de assinatura do JWS falha. |
steps.jws.InvalidPayload |
401 | O payload do JWS é inválido. |
steps.jws.InvalidSignature |
401 | <DetachedContent> é omitido e o JWS tem um payload de conteúdo separado. |
steps.jws.KeyIdMissing |
401 | A política "Verificar" usa um JWKS como uma fonte para chaves públicas, mas o JWS assinado não
inclui uma propriedade kid no cabeçalho. |
steps.jws.KeyParsingFailed |
401 | Não foi possível analisar a chave pública com base nas informações de chave fornecidas. |
steps.jws.MissingPayload |
401 | O payload do JWS está ausente. |
steps.jws.NoAlgorithmFoundInHeader |
401 | Ocorre quando a JWS omite o cabeçalho do algoritmo. |
steps.jws.NoMatchingPublicKey |
401 | A política de verificação usa um JWKS como fonte para chaves públicas, mas o kid
no JWS assinado não está listado no JWKS. |
steps.jws.UnhandledCriticalHeader |
401 | Um cabeçalho encontrado pela política Verify JWS no cabeçalho crit não
está listado em KnownHeaders. |
steps.jws.UnknownException |
401 | Ocorreu uma exceção desconhecida. |
steps.jws.WrongKeyType |
401 | Tipo incorreto de chave especificado. Por exemplo, se você especificar uma chave RSA para um algoritmo de curva elíptica ou uma chave de curva para um algoritmo RSA. |
Erros de implantação
Esses erros podem ocorrer quando você implanta um proxy que contém esta política.
| Erro de nome | Ocorre quando |
|---|---|
InvalidAlgorithm |
Os únicos valores válidos são RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512, HS256, HS384, HS512. |
|
|
Outros erros de implantação possíveis. |
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "TokenExpired" |
JWS.failed |
Todas as políticas de JWS definem a mesma variável em caso de falha. | jws.JWS-Policy.failed = true |
Exemplo de resposta de erro
Para gerenciar erros, a prática recomendada é interceptar a parte errorcode da resposta de erro. Não confie no texto em faultstring, porque ele pode mudar.
Exemplo de regra de falha
<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 VerifyJWT
Nesta seção, descrevemos os códigos e as mensagens de erro retornados, além das variáveis de falha definidas pelo Edge quando esta política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falhas para lidar com elas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Ocorre quando |
|---|---|---|
steps.jwt.AlgorithmInTokenNotPresentInConfiguration |
401 | Ocorre quando a política de verificação tem vários algoritmos. |
steps.jwt.AlgorithmMismatch |
401 | O algoritmo especificado na política de geração não corresponde ao esperado na política de verificação. Os algoritmos especificados precisam corresponder. |
steps.jwt.FailedToDecode |
401 | A política não conseguiu decodificar o JWT. É possível que o JWT esteja corrompido. |
steps.jwt.GenerationFailed |
401 | A política não pôde gerar o JWT. |
steps.jwt.InsufficientKeyLength |
401 | Para uma chave com menos de 32 bytes para o algoritmo HS256, menos de 48 bytes para o algoritmo HS386 e menos de 64 bytes para o algoritmo HS512. |
steps.jwt.InvalidClaim |
401 | Para uma reivindicação ausente ou incompatibilidade de reivindicação ou um cabeçalho ou cabeçalho ausente. |
steps.jwt.InvalidCurve |
401 | A curva especificada pela chave não é válida para o algoritmo de curva elíptica. |
steps.jwt.InvalidJsonFormat |
401 | JSON inválido encontrado no cabeçalho ou payload. |
steps.jwt.InvalidToken |
401 | Esse erro ocorre quando a verificação de assinatura do JWT falha. |
steps.jwt.JwtAudienceMismatch |
401 | A declaração de público falhou na verificação do token. |
steps.jwt.JwtIssuerMismatch |
401 | A declaração do emissor falhou na verificação do token. |
steps.jwt.JwtSubjectMismatch |
401 | A declaração do assunto falhou na verificação do token. |
steps.jwt.KeyIdMissing |
401 | A política "Verificar" usa um JWKS como uma origem para chaves públicas, mas o JWT assinado não
inclui uma propriedade kid no cabeçalho. |
steps.jwt.KeyParsingFailed |
401 | Não foi possível analisar a chave pública com base nas informações de chave fornecidas. |
steps.jwt.NoAlgorithmFoundInHeader |
401 | Ocorre quando o JWT não contém cabeçalho de algoritmo. |
steps.jwt.NoMatchingPublicKey |
401 | A política de verificação usa uma JWKS como fonte para chaves públicas, mas o kid no JWT assinado não está listado na JWKS. |
steps.jwt.SigningFailed |
401 | Em GenerateJWT, para uma chave menor que o tamanho mínimo para os algoritmos HS384 ou HS512 |
steps.jwt.TokenExpired |
401 | A política tenta verificar um token expirado. |
steps.jwt.TokenNotYetValid |
401 | O token ainda não é válido. |
steps.jwt.UnhandledCriticalHeader |
401 | Um cabeçalho encontrado pela política de verificação de JWT no cabeçalho crit não está listado em KnownHeaders. |
steps.jwt.UnknownException |
401 | Ocorreu uma exceção desconhecida. |
steps.jwt.WrongKeyType |
401 | Tipo incorreto de chave especificado. Por exemplo, se você especificar uma chave RSA para um algoritmo de curva elíptica ou uma chave de curva para um algoritmo RSA. |
Erros de implantação
Esses erros podem ocorrer quando você implanta um proxy que contém essa política.
| Nome do erro | Causa | Corrigir |
|---|---|---|
InvalidNameForAdditionalClaim |
A implantação falhará se a declaração usada no elemento filho <Claim> do elemento <AdditionalClaims> for um dos seguintes nomes registrados: kid, iss, sub, aud, iat, exp, nbf ou jti.
|
build |
InvalidTypeForAdditionalClaim |
Se a declaração usada no elemento filho <Claim> do elemento <AdditionalClaims> não for do tipo string, number, boolean ou map, a implantação falhará.
|
build |
MissingNameForAdditionalClaim |
Se o nome da declaração não for especificado no elemento filho <Claim> do elemento <AdditionalClaims>, a implantação falhará.
|
build |
InvalidNameForAdditionalHeader |
Esse erro ocorre quando o nome da declaração usada no elemento filho <Claim> do elemento <AdditionalClaims> é alg ou typ.
|
build |
InvalidTypeForAdditionalHeader |
Se o tipo de declaração usado no elemento filho <Claim> do elemento <AdditionalClaims> não for do tipo string, number, boolean ou map, a implantação falhará.
|
build |
InvalidValueOfArrayAttribute |
Esse erro ocorre quando o valor do atributo de matriz no elemento filho <Claim> do elemento <AdditionalClaims> não está definido como true ou false.
|
build |
InvalidValueForElement |
Se o valor especificado no elemento <Algorithm> não for compatível, a implantação falhará.
|
build |
MissingConfigurationElement |
Esse erro ocorrerá se o elemento <PrivateKey> não for usado com algoritmos da família RSA ou se o elemento <SecretKey> não for usado com algoritmos da família HS.
|
build |
InvalidKeyConfiguration |
Se o elemento filho <Value> não estiver definido nos elementos <PrivateKey> ou <SecretKey>, a implantação falhará.
|
build |
EmptyElementForKeyConfiguration |
Se o atributo de referência do elemento filho <Value> dos elementos <PrivateKey> ou <SecretKey> estiver vazio ou não especificado, a implantação falhará.
|
build |
InvalidConfigurationForVerify |
Esse erro ocorrerá se o elemento <Id> for definido no elemento <SecretKey>.
|
build |
InvalidEmptyElement |
Este erro ocorre se o elemento <Source> da política de verificação JWT
estiver vazio. Se presente, precisa ser definido com um nome de variável de fluxo do Edge.
|
build |
InvalidPublicKeyValue |
Se o valor usado no elemento filho <JWKS> do elemento <PublicKey> não usar um formato válido, conforme especificado no RFC 7517, a implantação falhará.
|
build |
InvalidConfigurationForActionAndAlgorithm |
Se o elemento <PrivateKey> for usado com algoritmos da família HS ou
o elemento <SecretKey> for usado com algoritmos da família RSA, a
implantação falhará.
|
build |
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "TokenExpired" |
JWT.failed |
Todas as políticas do JWT definem a mesma variável em caso de falha. | JWT.failed = true |
Exemplo de resposta de erro
Para gerenciar erros, a prática recomendada é interceptar a parte errorcode da resposta de erro. Não confie no texto em faultstring, porque ele pode mudar.
Exemplo de regra de falha
<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
Nesta seção, descrevemos os códigos e as mensagens de erro retornados e as variáveis de falha definidas pelo Edge quando a política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa | Correção |
|---|---|---|---|
steps.xmltojson.ExecutionFailed |
500 | Este erro ocorre quando o payload de entrada (XML) está vazio ou o XML de entrada é inválido ou está malformado. | build |
steps.xmltojson.InCompatibleType |
500 | Esse erro ocorrerá se o tipo da variável definido no elemento <Source> e o elemento
<OutputVariable> não forem os mesmos. É obrigatório que o tipo das variáveis
contidas no elemento <Source> e no elemento <OutputVariable> sejam iguais.
|
build |
steps.xmltojson.InvalidSourceType |
500 | Esse erro ocorre se o tipo da variável usada para definir o elemento <Source> é
inválida. Os tipos válidos de variável são mensagem e string. |
build |
steps.xmltojson.OutputVariableIsNotAvailable |
500 | Esse erro ocorre se a variável especificada no elemento <Source> da política XML para
JSON é do tipo string e o elemento <OutputVariable> não é definido.
O elemento <OutputVariable> é obrigatório quando a variável definida no elemento <Source>
é do tipo string. |
build |
steps.xmltojson.SourceUnavailable |
500 |
Esse erro ocorre se a variável message
especificada no elemento <Source> da política XML para JSON for:
|
build |
Erros de implantação
Esses erros podem ocorrer quando você implanta um proxy que contém essa política.
| Erro de nome | Causa | Correção |
|---|---|---|
EitherOptionOrFormat |
Se um dos elementos <Options> ou <Format> não for
declarado na política XML para JSON, a implantação do proxy da API falhará.
|
build |
UnknownFormat |
Se o elemento <Format> na política XML para JSON tiver um formato desconhecido
definido, a implantação do proxy de API falhará. Os formatos predefinidos incluem:
xml.com, yahoo, google e badgerFish.
|
build |
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name = "SourceUnavailable" |
xmltojson.policy_name.failed |
policy_name é o nome especificado pelo usuário da política que causou a falha. | xmltojson.XMLtoJSON-1.failed = true |
Exemplo de resposta de erro
{ "fault": { "faultstring": "XMLToJSON[XMLtoJSON-1]: Source xyz is not available", "detail": { "errorcode": "steps.xml2json.SourceUnavailable" } } }
Exemplo de regra de falha
<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 de XSLTransform
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa | Corrigir |
|---|---|---|---|
steps.xsl.XSLSourceMessageNotAvailable |
500 |
Esse erro vai ocorrer se a mensagem ou a variável de string especificada no elemento <Source> da política de transformação XSL estiver fora do escopo (indisponível no fluxo específico em que a política está sendo executada) ou não puder ser resolvida (não está definida).
|
build |
steps.xsl.XSLEvaluationFailed |
500 | Esse erro ocorrerá se o payload XML de entrada estiver indisponível/malformado ou se a política XSLTransform falhar/não puder transformar o arquivo XML de entrada com base nas regras de transformação fornecidas no arquivo XSL. Pode haver muitas causas diferentes para a falha da política XSLTransform. O motivo da falha na mensagem de erro fornecerá mais informações sobre a causa. | build |
Erros na implantação
Esses erros podem ocorrer quando você implanta um proxy que contém essa política.
| Nome do erro | Causa | Corrigir |
|---|---|---|
XSLEmptyResourceUrl |
Se o elemento <ResourceURL> na política de transformação XSL estiver vazio, a implantação do proxy da API falhará. |
build |
XSLInvalidResourceType |
Se o tipo de recurso especificado no elemento <ResourceURL> da política de transformação XSL não for do tipo xsl, a implantação do proxy de API falhará. |
build |