Referencia de error de política

Esta página se aplica a Apigee y Apigee Hybrid.

Consulta la documentación de Apigee Edge.

Política AccessControl

This section describes the fault codes and error messages that are returned and fault variables that are set by Apigee 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.
accesscontrol.InvalidIPAddressInVariable 500 The flow variable in <ClientIPVariable> contains an invalid IP address.

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":"steps.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 AccessEntity

Para obtener información relacionada, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.

Errores de entorno de ejecución

Ninguno

Errores en la implementación

Nombre del error String de error Estado de HTTP Ocurre cuando
InvalidEntityType Invalid type [entity_type] in ACCESSENTITYStepDefinition [policy_name] N/A El tipo de entidad que se use debe ser uno de los tipos compatibles.

Política AssignMessage

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

Runtime errors

These errors can occur when the policy executes.

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

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

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

steps.assignmessage.UnresolvedVariable 500

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

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

Deployment errors

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

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

Fault variables

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

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

Example error response

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

Example fault rule

<FaultRule name="Assign Message Faults">
    <Step>
        <Name>AM-CustomNonMessageTypeErrorResponse</Name>
        <Condition>(fault.name Matches "VariableOfNonMsgType") </Condition>
    </Step>
    <Step>
        <Name>AM-CustomSetVariableErrorResponse</Name>
        <Condition>(fault.name = "SetVariableFailed")</Condition>
    </Step>
    <Condition>(assignmessage.failed = true) </Condition>
</FaultRule>

Política BasicAuthentication

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

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP status Cause Fix
steps.basicauthentication.InvalidBasicAuthenticationSource 500 On a decode when the incoming Base64 encoded string does not contain a valid value or the header is malformed (for example, does not start with Basic).
steps.basicauthentication.UnresolvedVariable 500 The required source variables for the decode or encode are not present. This error can only occur if IgnoreUnresolvedVariables is false.

Deployment errors

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

Error name Occurs when Fix
UserNameRequired The <User> element must be present for the named operation.
PasswordRequired The <Password> element must be present for the named operation.
AssignToRequired The <AssignTo> element must be present for the named operation.
SourceRequired The <Source> element must be present for the named operation.

Fault variables

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

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

Example error response

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

Example fault rule

<FaultRule name="Basic Authentication Faults">
    <Step>
        <Name>AM-UnresolvedVariable</Name>
        <Condition>(fault.name Matches "UnresolvedVariable") </Condition>
    </Step>
    <Step>
        <Name>AM-AuthFailedResponse</Name>
        <Condition>(fault.name = "InvalidBasicAuthenticationSource")</Condition>
    </Step>
    <Condition>(BasicAuthentication.BA-Authentication.failed = true) </Condition>
</FaultRule>

Política DecodeJWS

En esta sección, se describen los códigos de falla y los mensajes de error que se muestran, y las variables de falla que establece Apigee cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.

Errores de entorno de ejecución

Estos errores pueden producirse cuando se ejecuta la política.

Código de falla Estado de HTTP Ocurre cuando
steps.jws.FailedToDecode 401 La política no pudo decodificar el JWS Es posible que el JWS esté dañado.
steps.jws.FailedToResolveVariable 401 Ocurre cuando la variable de flujo especificada en el elemento <Source> de la política no existe.
steps.jws.InvalidClaim 401 Para una reclamación faltante o una falta de coincidencia de una reclamación, o bien un encabezado faltante o una falta de coincidencia de un encabezado.
steps.jws.InvalidJsonFormat 401 Se encontró un archivo JSON que no es válido en el encabezado JWS.
steps.jws.InvalidJws 401 Este error ocurre cuando falla la verificación de la firma del JWS.
steps.jws.InvalidPayload 401 La carga útil JWS no es válida.
steps.jws.InvalidSignature 401 <DetachedContent> se omite y la JWS tiene una carga útil de contenido desconectada.
steps.jws.MissingPayload 401 Falta la carga útil JWS.
steps.jws.NoAlgorithmFoundInHeader 401 Ocurre cuando el JWS omite el encabezado del algoritmo.
steps.jws.UnknownException 401 Se produjo una excepción desconocida.

Errores en la implementación

Estos errores pueden generarse cuando implementas un proxy que contiene esta política.

Nombre del error Ocurre cuando
InvalidAlgorithm Los únicos valores válidos son RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512, HS256, HS384, HS512.

EmptyElementForKeyConfiguration

FailedToResolveVariable

InvalidConfigurationForActionAndAlgorithmFamily

InvalidConfigurationForVerify

InvalidEmptyElement

InvalidFamiliesForAlgorithm

InvalidKeyConfiguration

InvalidNameForAdditionalClaim

InvalidNameForAdditionalHeader

InvalidPublicKeyId

InvalidPublicKeyValue

InvalidSecretInConfig

InvalidTypeForAdditionalClaim

InvalidTypeForAdditionalHeader

InvalidValueForElement

InvalidValueOfArrayAttribute

InvalidVariableNameForSecret

MissingConfigurationElement

MissingElementForKeyConfiguration

MissingNameForAdditionalClaim

MissingNameForAdditionalHeader

Otros errores de implementación posibles.

Variables con fallas

Estas variables se configuran cuando se genera un error de entorno de ejecución. Para obtener más información, consulta Qué debes saber sobre los errores de la política.

Variables Donde Ejemplo
fault.name="fault_name" fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. fault.name Matches "TokenExpired"
JWS.failed Todas las políticas de JWS establecen la misma variable en caso de falla. jws.JWS-Policy.failed = true

Ejemplo de respuesta de error

Para controlar errores, se recomienda capturar la parte errorcode de la respuesta de error. No dependas del texto en la faultstring, ya que podría cambiar.

Ejemplo de regla de falla

<FaultRules>
    <FaultRule name="JWS Policy Errors">
        <Step>
            <Name>JavaScript-1</Name>
            <Condition>(fault.name Matches "TokenExpired")</Condition>
        </Step>
        <Condition>JWS.failed=true</Condition>
    </FaultRule>
</FaultRules>

Política de DecodeJWT

En esta sección, se describen los códigos de falla y los mensajes de error que se muestran, y las variables de falla que establece Apigee cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.

Errores de entorno de ejecución

Estos errores pueden producirse cuando se ejecuta la política.

Código de falla Estado de HTTP Causa Corregir
steps.jwt.FailedToDecode 401 Ocurre cuando la política no puede decodificar el JWT. El JWT puede tener errores de formato, no es válido o no se puede decodificar.
steps.jwt.FailedToResolveVariable 401 Ocurre cuando la variable de flujo especificada en el elemento <Source> de la política no existe.
steps.jwt.InvalidToken 401 Ocurre cuando la variable de flujo especificada en el elemento <Source> de la política está fuera de alcance o no se puede resolver.

Errores en la implementación

Estos errores pueden generarse cuando implementas un proxy que contiene esta política.

Nombre del error Causa Corregir
InvalidEmptyElement Ocurre cuando la variable de flujo que contiene el JWT que se decodificará no se especifica en el elemento <Source> de la política.

Variables con fallas

Estas variables se configuran cuando se genera un error de entorno de ejecución. Para obtener más información, consulta Qué debes saber sobre los errores de la política.

Variables Donde Ejemplo
fault.name="fault_name" fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. fault.name Matches "InvalidToken"
JWT.failed Todas las políticas de JWT establecen la misma variable en caso de falla. JWT.failed = true

Ejemplo de respuesta de error

Códigos de error de políticas de JWT

Para controlar errores, se recomienda capturar la parte errorcode de la respuesta de error. No dependas del texto en la faultstring, ya que podría cambiar.

Ejemplo de regla de falla

    <FaultRules>
        <FaultRule name="JWT Policy Errors">
            <Step>
                <Name>JavaScript-1</Name>
                <Condition>(fault.name Matches "InvalidToken")</Condition>
            </Step>
            <Condition>JWT.failed=true</Condition>
        </FaultRule>
    </FaultRules>
    

Política de ExtractVariables

En esta sección, se describen los códigos de falla y los mensajes de error que se muestran, y las variables de falla que establece Apigee cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.

Errores de entorno de ejecución

Estos errores pueden producirse cuando se ejecuta la política.

Código de falla Estado de HTTP Causa Corregir
steps.extractvariables.ExecutionFailed 500

Este error ocurre en los siguientes casos:

  • La carga útil de entrada (JSON, XML) está vacía.
  • La entrada (JSON, XML, etc.) pasada a la política no es válida o presenta errores de formato.
steps.extractvariables.ImmutableVariable 500 Una variable utilizada en la política es inmutable. La política no pudo establecer esta variable. N/A
steps.extractvariables.InvalidJSONPath 500 Este error se produce si se usa una ruta de acceso JSON no válida en el elemento JSONPath de la política. Por ejemplo, si una carga útil de JSON no tiene el objeto Name, pero especificas Name como la ruta de acceso en la política, se produce este error.
steps.extractvariables.JsonPathParsingFailure 500 Este error se produce cuando la política no puede analizar una ruta JSON ni extraer datos de la variable de flujo especificada en el elemento Source. Por lo general, esto sucede si la variable de flujo especificada en el elemento Source no existe en el flujo actual.
steps.extractvariables.SetVariableFailed 500 Este error se produce si la política no pudo establecer el valor en una variable. Esto ocurre si intentas asignar valores a múltiples variables cuyos nombres comienzan con las mismas palabras en un formato separado por puntos y comas.
steps.extractvariables.SourceMessageNotAvailable 500 Este error se produce si la variable mensaje especificada en el elemento Source de la política JSONThreatProtection es una de las siguientes opciones:
  • Fuera del alcance (no disponible en el flujo específico en el que se ejecuta la política)
  • No se puede resolver (no está definida)
steps.extractvariables.UnableToCast 500 Este error se produce si la política no pudo convertir el valor extraído en una variable. Por lo general, esto sucede si intentas establecer el valor de un tipo de datos como una variable de otro tipo de datos.

Errores en la implementación

Estos errores pueden generarse cuando implementas un proxy que contiene esta política.

Nombre del error Causa Corregir
NothingToExtract Si la política no tiene ninguno de los elementos URIPath, QueryParam, Header, FormParam, XMLPayload o JSONPayload, la implementación del proxy de la API falla, no hay nada que extraer.
NONEmptyPrefixMappedToEmptyURI Este error se produce si la política tiene un prefijo definido en el elemento Namespace debajo del elemento XMLPayload, pero no se define un URI.
DuplicatePrefix Este error se produce si la política tiene el mismo prefijo definido más de una vez en el elemento Namespace debajo del elemento XMLPayload.
NoXPathsToEvaluate Si la política no tiene el elemento XPath dentro del elemento XMLPayload, entonces la implementación del proxy de API falla con este error.
EmptyXPathExpression Si la política tiene una expresión XPath vacía dentro del elemento XMLPayload, fallará la implementación del proxy de API.
NoJSONPathsToEvaluate Si la política no tiene el elemento JSONPath dentro del elemento JSONPayload, entonces la implementación del proxy de API falla con este error.
EmptyJSONPathExpression Si la política tiene una expresión XPath vacía dentro del elemento XMLPayload, fallará la implementación del proxy de API.
MissingName Si la política no tiene el atributo name en ninguno de los elementos de la política, como QueryParam, Header, FormParam o Variable, cuando sea necesario, la implementación del proxy de API falla.
PatternWithoutVariable Si la política no tiene una variable especificada en el elemento Pattern, la implementación del proxy de API fallará. El elemento Pattern requiere el nombre de la variable en la que se almacenarán los datos extraídos.
CannotBeConvertedToNodeset Si la política tiene una expresión XPath en la que el tipo Variable se define como nodeset, pero la expresión no se puede convertir en el conjunto de nodos, la implementación de la API de proxy falla.
JSONPathCompilationFailed La política no pudo compilar una ruta JSON especificada. N/A
InstantiationFailed No se pudo crear la instancia de la política. N/A
XPathCompilationFailed Si el prefijo o el valor usado en el elemento XPath no forma parte de los espacios de nombres declarados en la política, la implementación del proxy de API falla.
InvalidPattern Si la definición del elemento Pattern no es válida en ninguno de los elementos, como URIPath, QueryParam, Header, FormParam, XMLPayload o JSONPayload, dentro de la política, fallará la implementación del proxy de API.

Variables con fallas

Estas variables se configuran cuando esta política activa un error en el entorno de ejecución. Para obtener más información, consulta Qué debes saber sobre los errores de la política.

Variables Donde Ejemplo
fault.name="fault_name" fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. fault.name = "SourceMessageNotAvailable"
extractvariables.policy_name.failed policy_name es el nombre especificado por el usuario de la política que generó la falla. extractvariables.EV-ParseJsonResponse.failed = true

Ejemplo de respuesta de error

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

Ejemplo de regla de falla

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

EmptyElementForKeyConfiguration

FailedToResolveVariable

InvalidConfigurationForActionAndAlgorithmFamily

InvalidConfigurationForVerify

InvalidEmptyElement

InvalidFamiliesForAlgorithm

InvalidKeyConfiguration

InvalidNameForAdditionalClaim

InvalidNameForAdditionalHeader

InvalidPublicKeyId

InvalidPublicKeyValue

InvalidSecretInConfig

InvalidTypeForAdditionalClaim

InvalidTypeForAdditionalHeader

InvalidValueForElement

InvalidValueOfArrayAttribute

InvalidVariableNameForSecret

MissingConfigurationElement

MissingElementForKeyConfiguration

MissingNameForAdditionalClaim

MissingNameForAdditionalHeader

Other possible deployment errors.

Variables con fallas

Estas variables se configuran cuando se genera un error de entorno de ejecución. Para obtener más información, consulta Qué debes saber sobre los errores de la política.

Variables Donde Ejemplo
fault.name="fault_name" fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. fault.name Matches "TokenExpired"
JWS.failed Todas las políticas de JWS establecen la misma variable en caso de falla. jws.JWS-Policy.failed = true

Ejemplo de respuesta de error

Para controlar errores, se recomienda capturar la parte errorcode de la respuesta de error. No dependas del texto en la faultstring, ya que podría cambiar.

Ejemplo de regla de falla

<FaultRules>
    <FaultRule name="JWS Policy Errors">
        <Step>
            <Name>JavaScript-1</Name>
            <Condition>(fault.name Matches "TokenExpired")</Condition>
        </Step>
        <Condition>JWS.failed=true</Condition>
    </FaultRule>
</FaultRules>

Genera GenerateJWT

En esta sección, se describen los códigos de falla y los mensajes de error que se muestran, y las variables de falla que establece Apigee cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.

Errores de entorno de ejecución

Estos errores pueden producirse cuando se ejecuta la política.

Código de falla Estado de HTTP Ocurre cuando
steps.jwt.AlgorithmInTokenNotPresentInConfiguration 401 Se produce cuando la política de verificación tiene varios algoritmos.
steps.jwt.AlgorithmMismatch 401 El algoritmo especificado en la política de generación no coincide con el esperado en la política de verificación. Los algoritmos especificados deben coincidir.
steps.jwt.EncryptionFailed 401 No se pudo crear un JWT encriptado por un motivo no específico
steps.jwt.FailedToDecode 401 La política no pudo decodificar el JWT. Es posible que el JWT esté dañado.
steps.jwt.GenerationFailed 401 La política no pudo generar el JWT.
steps.jwt.InsufficientKeyLength 401 En el caso de las claves inferiores a 32 bytes para el algoritmo HS256, menos de 48 bytes para el algoritmo HS386 y menos de 64 bytes para el algoritmo HS512.
steps.jwt.InvalidClaim 401 Para una reclamación faltante o una falta de coincidencia de una reclamación, o bien un encabezado faltante o una falta de coincidencia de un encabezado.
steps.jwt.InvalidConfiguration 401 Los elementos <Algorithm> y <Algorithms> están presentes.
steps.jwt.InvalidCurve 401 La curva especificada por la clave no es válida para el algoritmo de curva elíptica.
steps.jwt.InvalidJsonFormat 401 Se encontró un archivo JSON que no es válido en el encabezado o la carga útil.
steps.jwt.InvalidPasswordKey 401 La clave especificada no cumplió con los requisitos.
steps.jwt.InvalidPrivateKey 401 La clave especificada no cumplió con los requisitos.
steps.jwt.InvalidPublicKey 401 La clave especificada no cumplió con los requisitos.
steps.jwt.InvalidSecretKey 401 La clave especificada no cumplió con los requisitos.
steps.jwt.InvalidToken 401 Este error ocurre cuando falla la verificación de la firma del JWT.
steps.jwt.JwtAudienceMismatch 401 La reclamación del público falló en la verificación del token.
steps.jwt.JwtIssuerMismatch 401 La reclamación de la entidad emisora falló durante la verificación del token.
steps.jwt.JwtSubjectMismatch 401 La reclamación de la entidad falló durante la verificación del token.
steps.jwt.KeyIdMissing 401 La política de verificación usa un JWKS como fuente para las claves públicas, pero el JWT firmado no incluye una propiedad kid en el encabezado.
steps.jwt.KeyParsingFailed 401 No se pudo analizar la clave pública a partir de la información de claves determinada.
steps.jwt.NoAlgorithmFoundInHeader 401 Ocurre cuando el JWT no contiene un encabezado de algoritmo.
steps.jwt.NoMatchingPublicKey 401 La política de verificación usa un JWKS como fuente para claves públicas, pero la propiedad kid en el JWT firmado no aparece en el JWKS.
steps.jwt.SigningFailed 401 En GenerateJWT, ocurre en el caso de una clave que es menor que el tamaño mínimo para los algoritmos HS384 o HS512.
steps.jwt.TokenExpired 401 La política intenta verificar un token vencido.
steps.jwt.TokenNotYetValid 401 El token aún no es válido.
steps.jwt.UnhandledCriticalHeader 401 Un encabezado que encontró la política de verificación de JWT en el encabezado crit no aparece en KnownHeaders.
steps.jwt.UnknownException 401 Se produjo una excepción desconocida.
steps.jwt.WrongKeyType 401 El tipo de clave especificado es incorrecto. Por ejemplo, si especificas una clave RSA para un algoritmo de curva elíptica o una clave de curva para un algoritmo de RSA.

Errores en la implementación

Estos errores pueden generarse cuando implementas un proxy que contiene esta política.

Nombre del error Causa Corregir
InvalidNameForAdditionalClaim La implementación fallará si la reclamación que se usa en el elemento secundario <Claim> del elemento <AdditionalClaims> es uno de los siguientes nombres registrados: kid, iss, sub, aud, iat, exp, nbf o jti.
InvalidTypeForAdditionalClaim Si la reclamación usada en el elemento secundario <Claim> del elemento <AdditionalClaims> no es del tipo string, number, boolean ni map, la implementación fallará.
MissingNameForAdditionalClaim Si no se especifica el nombre de la reclamación en el elemento secundario <Claim> del elemento <AdditionalClaims>, fallará la implementación.
InvalidNameForAdditionalHeader Este error ocurre cuando el nombre de la reclamación que se usó en el elemento secundario <Claim> del elemento <AdditionalClaims> es alg o typ.
InvalidTypeForAdditionalHeader Si el tipo de reclamación usado en el elemento secundario <Claim> del elemento <AdditionalClaims> no es del tipo string, number, boolean ni map, la implementación fallará.
InvalidValueOfArrayAttribute Este error ocurre cuando el valor del atributo de arreglo en el elemento secundario <Claim> del elemento <AdditionalClaims> no está configurado como true ni false.
InvalidConfigurationForActionAndAlgorithm Si el elemento <PrivateKey> se usa con algoritmos de la familia HS o el elemento <SecretKey> se usa con algoritmos de la familia RSA, la implementación fallará.
InvalidValueForElement Si el valor especificado en el elemento <Algorithm> no es un valor admitido, la implementación fallará.
MissingConfigurationElement Este error se producirá si el elemento <PrivateKey> no se usa con algoritmos de la familia RSA o si el elemento <SecretKey> no se usa con algoritmos de la familia HS.
InvalidKeyConfiguration Si el elemento secundario <Value> no está definido en los elementos <PrivateKey> ni <SecretKey>, la implementación fallará.
EmptyElementForKeyConfiguration Si el atributo de referencia del elemento secundario <Value> de los elementos <PrivateKey> o <SecretKey> está vacío o no se especifica, la implementación fallará.
InvalidVariableNameForSecret Este error se produce si el nombre de la variable del flujo especificado en el atributo de referencia del elemento secundario <Value> de los elementos <PrivateKey> o <SecretKey> no contiene el prefijo privado (private.).
InvalidSecretInConfig Este error se produce si el elemento secundario <Value> de los elementos <PrivateKey> o <SecretKey> no contiene el prefijo privado (private.).
InvalidTimeFormat Si el valor especificado en el elemento <NotBefore> no usa un formato admitido, la implementación fallará.

Variables con fallas

Estas variables se configuran cuando se genera un error de entorno de ejecución. Para obtener más información, consulta Qué debes saber sobre los errores de la política.

Variables Donde Ejemplo
fault.name="fault_name" fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. fault.name Matches "InvalidToken"
JWT.failed Todas las políticas de JWT establecen la misma variable en caso de falla. JWT.failed = true

Ejemplo de respuesta de error

Códigos de error de políticas de JWT

Para controlar errores, se recomienda capturar la parte errorcode de la respuesta de error. No dependas del texto en la faultstring, ya que podría cambiar.

Ejemplo de regla de falla

    <FaultRules>
        <FaultRule name="JWT Policy Errors">
            <Step>
                <Name>JavaScript-1</Name>
                <Condition>(fault.name Matches "InvalidToken")</Condition>
            </Step>
            <Condition>JWT.failed=true</Condition>
        </FaultRule>
    </FaultRules>
    

Política JavaCallout

En esta sección, se describen los códigos de falla y los mensajes de error que se muestran, y las variables de falla que establece Apigee cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.

Errores de entorno de ejecución

Estos errores pueden producirse cuando se ejecuta la política.

Código de falla Estado de HTTP Causa Corregir
steps.javacallout.ExecutionError 500 Ocurre cuando el código Java muestra una excepción o un valor nulo durante la ejecución de un JavaCallout policy.

Errores en la implementación

Estos errores se pueden generar cuando se implementa el proxy que contiene la política.

Nombre del error String de error Estado de HTTP Ocurre cuando
ResourceDoesNotExist Resource with name [name] and type [type] does not exist N/A No existe el archivo especificado en el elemento <ResourceURL>.
JavaCalloutInstantiationFailed Failed to instantiate the JavaCallout Class [classname] N/A El archivo de clase especificado en el elemento <ClassName> no está en el archivo jar.
IncompatibleJavaVersion Failed to load java class [classname] definition due to - [reason] N/A Consulta la cadena de errores. Las versiones de Java compatibles incluyen Oracle JDK 7/8 y OpenJDK 7/8.
JavaClassNotFoundInJavaResource Failed to find the ClassName in java resource [jar_name] - [class_name] N/A Consulta la cadena de errores.
JavaClassDefinitionNotFound Failed to load java class [class_name] definition due to - [reason] N/A Consulta la cadena de errores.
NoAppropriateConstructor No appropriate constructor found in JavaCallout class [class_name] N/A Consulta la cadena de errores.
NoResourceForURL Could not locate a resource with URL [string] N/A Consulta la cadena de errores.

Variables con fallas

Estas variables se establecen cuando esta política activa un error. Para obtener más información, consulta Qué debes saber sobre los errores de la política.

Variables Donde Ejemplo
fault.name="fault_name" fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. fault.name Matches "ExecutionError"
javacallout.policy_name.failed policy_name es el nombre especificado por el usuario de la política que generó la falla. javacallout.JC-GetUserData.failed = true

Ejemplo de respuesta de error

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

Ejemplo de regla de falla

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

Política de JavaScript

This section describes the fault codes and error messages that are returned and fault variables that are set by Apigee 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.
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.
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.
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).
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.

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

En esta sección, se describen los códigos de falla y los mensajes de error que se muestran, y las variables de falla que establece Apigee cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Soluciona fallas.

Errores de entorno de ejecución

Estos errores pueden producirse cuando se ejecuta la política.

Código de falla Estado de HTTP Causa Corregir
steps.jsonthreatprotection.ExecutionFailed 500 La política JSONThreatProtection puede generar muchos tipos de errores ExecutionFailed. La mayoría de estos errores se generan cuando se supera un límite específico establecido en la política. Estos tipos de errores incluyen la longitud del nombre de entrada del objeto, el recuento de entradas de objetos, el recuento de elementos del array, la profundidad del contenedor, longitud del valor de strings de la string. Este error también ocurre cuando la carga útil contiene un objeto JSON no válido.
steps.jsonthreatprotection.SourceUnavailable 500 Este error se genera si la variable mensaje especificada en el elemento <Source>:
  • Está fuera del alcance (no está disponible en el flujo específico en el que se ejecuta la política) o
  • No es uno de los valores válidos request, response o message.
steps.jsonthreatprotection.NonMessageVariable 500 Este error se genera si el elemento <Source> se configura como una variable que no es del tipo mensaje.

Errores en la implementación

Ninguno

Variables con fallas

Estas variables se establecen cuando esta política activa un error. Para obtener más información, consulta Qué debes saber sobre los errores de la política.

Variables Donde Ejemplo
fault.name="fault_name" fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. fault.name Matches "SourceUnavailable"
jsonattack.policy_name.failed policy_name es el nombre especificado por el usuario de la política que generó la falla. jsonattack.JTP-SecureRequest.failed = true

Ejemplo de respuesta de error

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

Ejemplo de regla de falla

<FaultRule name="JSONThreatProtection Policy Faults">
    <Step>
        <Name>AM-CustomErrorResponse</Name>
        <Condition>(fault.name Matches "ExecutionFailed") </Condition>
    </Step>
    <Condition>(jsonattack.JPT-SecureRequest.failed = true) </Condition>
</FaultRule>

Los tipos de políticas JSONThreatProtection definen los siguientes códigos de error:

Política JSONtoXML

This section describes the fault codes and error messages that are returned and fault variables that are set by Apigee 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.jsontoxml.ExecutionFailed 500 The input payload (JSON) is empty or the input (JSON) passed to JSON to XML policy is invalid or malformed.
steps.jsontoxml.InCompatibleTypes 500 This error occurs if the type of the variable defined in the <Source> element and the <OutputVariable> element are not the same. It is mandatory that the type of the variables contained within the <Source> element and the <OutputVariable> element matches. The valid types are message and string.
steps.jsontoxml.InvalidSourceType 500 This error occurs if the type of the variable used to define the <Source> element is invalid. The valid types of variable are message and string.
steps.jsontoxml.OutputVariableIsNotAvailable 500 This error occurs if the variable specified in the <Source> element of the JSON to XML Policy is of type string and the <OutputVariable> element is not defined. The <OutputVariable> element is mandatory when the variable defined in the <Source> element is of type string.
steps.jsontoxml.SourceUnavailable 500 This error occurs if the message variable specified in the <Source> element of the JSON to XML policy is either:
  • Out of scope (not available in the specific flow where the policy is being executed) or
  • Can't be resolved (is not defined)

Deployment errors

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"
jsontoxml.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. jsontoxml.JSON-to-XML-1.failed = true

Example error response

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

Example fault rule

<FaultRule name="JSON To XML Faults">
    <Step>
        <Name>AM-SourceUnavailableMessage</Name>
        <Condition>(fault.name Matches "SourceUnavailable") </Condition>
    </Step>
    <Step>
        <Name>AM-BadJSON</Name>
        <Condition>(fault.name = "ExecutionFailed")</Condition>
    </Step>
    <Condition>(jsontoxml.JSON-to-XML-1.failed = true) </Condition>
</FaultRule>

Política de operaciones de mapas de clave-valor

En esta sección, se describen los códigos de falla y los mensajes de error que se muestran, y las variables de falla que establece Apigee cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Soluciona fallas.

Errores de entorno de ejecución

Estos errores pueden producirse cuando se ejecuta la política.

Código de falla Estado de HTTP Causa Corregir
steps.keyvaluemapoperations.UnsupportedOperationException 500

Este error se produce si el atributo mapIdentifier se configuró como una string vacía en la política KeyValueMapOperations.

Errores en la implementación

Estos errores pueden generarse cuando implementas un proxy que contiene esta política.

Nombre del error Causa Corregir
InvalidIndex Si el atributo index especificado en el elemento <Get> de la política KeyValueMapOperations es cero o un número negativo, entonces, la implementación del proxy de API falla. El índice comienza desde 1, por lo que un índice de cero o un número entero negativo se considera no válido.
KeyIsMissing Este error ocurre si falta el elemento <Key> o falta el elemento <Parameter> dentro del elemento <Key> debajo del <Entry> del elemento <InitialEntries> de la política KeyValueMapOperations.
ValueIsMissing Este error ocurre si el elemento <Value> falta debajo del elemento <Entry> del elemento <InitialEntries> de la política KeyValueMapOperations.

Política MessageLogging

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

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP status Cause
steps.messagelogging.StepDefinitionExecutionFailed 500 See fault string.
steps.messagelogging.InvalidGoogleCloudLogName 500 This error is thrown when the LogName does not evaluate to the valid format of projects/{project}/logs/{logid}.
steps.messagelogging.InvalidJsonMessage 500 This error is thrown when the contentType attributes value has been chosen as application/json but the actual message value is not a valid JSON string,
steps.messagelogging.TooManyPendingLoggingRequest 500 This error is thrown when there are more than 2500 pending requests that are yet to be written to Cloud Logging. The 2500 limit is for each Apigee runtime pod. For example, if the traffic is distributed over two instances of Apigee runtime pods, the effective limit is 5000 requests.
-

Deployment errors

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

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

Fault variables

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

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

Example error response

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

Example fault rule

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

Política OASValidation

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

Runtime errors

These errors can occur when the policy executes.

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

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

steps.oasvalidation.NonMessageVariable 500

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

Deployment errors

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

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

Fault variables

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

Variable Description Example
fault.category The category of the fault. When the policy rejects a request, this will always hold Step. fault.category = "Step"
fault.name The name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. fault.name Matches "ResourceDoesNotExist"
fault.reason The reason for the fault. It is a human-readable string explaining the reason for the fault. OASValidation OAS-1 with resource "oas://my-spec1.yaml": failed with reason: "[ERROR - POST operation not allowed on path '/persons/13'.: []]"
fault.subcategory The subcategory of the fault. When the policy rejects a request, this will always hold OASValidationFailure. fault.subcategory = "OASValidationFailure"
OASValidation.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. OASValidation.myoaspolicy.failed = true

Política PopulateCache

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

Runtime errors

These errors can occur when the policy executes.

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

Deployment errors

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

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

Fault variables

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

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

Example error response

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

Example fault rule

<FaultRule name="Populate Cache Fault">
    <Step>
        <Name>AM-EntryCannotBeCached</Name>
        <Condition>(fault.name Matches "EntryCannotBeCached") </Condition>
    </Step>
    <Condition>(populatecache.POP-CACHE-1.failed = true) </Condition>
</FaultRule>

Política LookupCache

En esta sección, se describen los mensajes de error y las variables de flujo que se configuran cuando esta política activa un error. Esta información es importante si deseas saber si desarrollas reglas de fallas para un proxy. Para obtener más información, consulta Lo que necesitas saber sobre errores de políticas y Controla fallas.

Prefijo del código de error

N/A

Errores de entorno de ejecución

Esta política no arroja ningún error de entorno de ejecución.

Errores en la implementación

Estos errores pueden generarse cuando implementas un proxy que contiene esta política.

Nombre del error Causa Corregir
InvalidCacheResourceReference Este error ocurre si el elemento <CacheResource> se configuró en un nombre que no existe en el entorno en el que se implementa el proxy de API.
InvalidTimeout Si el elemento <CacheLookupTimeoutInSeconds> se configuró como un número negativo, la implementación del proxy de API falla.
CacheNotFound Este error se genera si la caché específica que se menciona en el mensaje de error no se creó en un componente específico del procesador de mensajes.

Variables con fallas

N/A

Ejemplo de respuesta de error

N/A

Política InvalidateCache

En esta sección, se describen los mensajes de error y las variables de flujo que se configuran cuando esta política activa un error. Esta información es importante si deseas saber si desarrollas reglas de fallas para un proxy. Para obtener más información, consulta Lo que necesitas saber sobre errores de políticas y Controla fallas.

Prefijo del código de error

N/A

Errores de entorno de ejecución

Esta política no arroja ningún error de entorno de ejecución.

Errores en la implementación

Estos errores pueden generarse cuando implementas un proxy que contiene esta política.

Nombre del error Causa Corregir
InvalidCacheResourceReference Este error se genera si el elemento <CacheResource> en la política InvalidateCache se configura como un nombre que no existe en el entorno en el que se implementa el proxy de API.
CacheNotFound Este error se genera si la caché específica que se menciona en el mensaje de error no se creó en un componente específico del procesador de mensajes.

Variables con fallas

N/A

Ejemplo de respuesta de error

N/A

Política ResponseCache

En esta sección, se describen los mensajes de error y las variables de flujo que se configuran cuando esta política activa un error. Esta información es importante si deseas saber si desarrollas reglas de fallas para un proxy. Para obtener más información, consulta Lo que necesitas saber sobre errores de políticas y Controla fallas.

Prefijo del código de error

N/A

Errores de entorno de ejecución

Esta política no arroja ningún error de entorno de ejecución.

Errores en la implementación

Estos errores pueden generarse cuando implementas un proxy que contiene esta política.

Nombre del error Causa Corregir
InvalidTimeout Si el elemento <CacheLookupTimeoutInSeconds> de una política ResponseCache está configurado como un número negativo, la implementación del proxy de API falla.
InvalidCacheResourceReference Este error se genera si el elemento <CacheResource> en la política ResponseCache se configura como un nombre que no existe en el entorno en el que se implementa el proxy de API.
ResponseCacheStepAttachmentNotAllowedReq Este error se produce si la misma política ResponseCache se vincula con varias rutas de solicitud dentro de cualquier flujo de un proxy de API.
ResponseCacheStepAttachmentNotAllowedResp Este error se produce si la misma política ResponseCache se adjunta a varias rutas de respuesta dentro de cualquier flujo de un proxy de API.
InvalidMessagePatternForErrorCode Este error se produce si el elemento <SkipCacheLookup> o <SkipCachePopulation> en una política ResponseCache contiene una condición no válida.
CacheNotFound Este error se genera si la caché específica que se menciona en el mensaje de error no se creó en un componente específico del procesador de mensajes.

Variables con fallas

N/A

Ejemplo de respuesta de error

N/A

Política de OAuthV2

En esta sección, se describen los códigos de falla y los mensajes de error que se muestran, y las variables de falla que establece Apigee cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.

Errores de entorno de ejecución

Estos errores pueden producirse cuando se ejecuta la política.

Código de falla Estado de HTTP Causa Arrojados por operaciones
steps.oauth.v2.access_token_expired 401 El token de acceso expiró.

VerifyAccessToken
InvalidateToken

steps.oauth.v2.access_token_not_approved 401 El token de acceso se revocó. VerifyAccessToken
steps.oauth.v2.apiresource_doesnot_exist 401 El recurso solicitado no existe en ninguno de los productos de API asociados con el token de acceso. VerifyAccessToken
steps.oauth.v2.FailedToResolveAccessToken 500 La política esperaba encontrar un token de acceso en una variable especificada en el elemento <AccessToken>, pero no se pudo resolver la variable. GenerateAccessToken
steps.oauth.v2.FailedToResolveAuthorizationCode 500 La política esperaba encontrar un código de autorización en una variable especificada en el elemento <Code>, pero no se pudo resolver la variable. GenerateAuthorizationCode
steps.oauth.v2.FailedToResolveClientId 500 La política esperaba encontrar el ID de cliente en una variable especificada en el elemento <ClientId>, pero no se pudo resolver la variable. GenerateAccessToken
GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
RefreshAccessToken
steps.oauth.v2.FailedToResolveRefreshToken 500 La política esperaba encontrar un token de actualización en una variable especificada en el elemento <RefreshToken>, pero no se pudo resolver la variable. RefreshAccessToken
steps.oauth.v2.FailedToResolveToken 500 La política esperaba encontrar un token en una variable especificada en el elemento <Tokens>, pero no se pudo resolver la variable.

ValidateToken
InvalidateToken

steps.oauth.v2.InsufficientScope 403 El token de acceso que se presenta en la solicitud tiene un alcance que no coincide con el permiso especificado en la política de verificación de token de acceso. Para obtener información sobre el alcance, consulta Trabaja con permisos de OAuth2. VerifyAccessToken
steps.oauth.v2.invalid_access_token 401 No es válido el token de acceso que se envió desde el cliente. VerifyAccessToken
steps.oauth.v2.invalid_client 401

Este nombre de error se muestra cuando la propiedad <GenerateResponse> de la política se establece como verdadero y el ID de cliente enviado en la solicitud no es válido. Asegúrate de usar la clave de cliente y los valores secretos correctos para la app de desarrollador asociada con tu proxy. Por lo general, estos valores se envían como un encabezado de autorización básica codificado en Base64.

GenerateAccessToken
RefreshAccessToken
steps.oauth.v2.invalid_request 400 Este nombre de error se usa para varios tipos diferentes de errores, por lo general, para parámetros faltantes o incorrectos enviados en la solicitud. Si <GenerateResponse> está configurado en false, usa variables de falla (descritas a continuación) para recuperar detalles sobre el error, como el nombre y la causa de la falla. GenerateAccessToken
GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
RefreshAccessToken
steps.oauth.v2.InvalidAccessToken 401 El encabezado de autorización no tiene la palabra Bearer, que es obligatoria. Por ejemplo: Authorization: Bearer your_access_token VerifyAccessToken
steps.oauth.v2.InvalidAPICallAsNo\
ApiProductMatchFound
401

La operación o el proxy de API que se encuentra en ejecución no está en el producto asociado con el token de acceso.

Sugerencias: Asegúrate de que el producto asociado con el token de acceso esté configurado correctamente. Por ejemplo, si usas comodines en las rutas de recursos, asegúrate de que los comodines se usen de forma correcta. Consulta Administrar productos de API para obtener más detalles.

Consulta también la Verificación del token de acceso de Oauth2.0 muestra el error “Llamada a la API no válida porque no se encontró ninguna coincidencia de apiproduct” para obtener más instrucciones sobre las causas de este error.

VerifyAccessToken
steps.oauth.v2.InvalidClientIdentifier 500

Este nombre de error se muestra cuando la propiedad <GenerateResponse> de la política se establece en falso y el ID de cliente enviado en la solicitud no es válido. Asegúrate de usar la clave de cliente y los valores secretos correctos para la app de desarrollador asociada con tu proxy. Por lo general, estos valores se envían como un encabezado de autorización básica codificado en Base64.

GenerateAccessToken
RefreshAccessToken

steps.oauth.v2.InvalidParameter 500 La política debe especificar un token de acceso o un código de autorización, pero no ambos. GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
steps.oauth.v2.InvalidTokenType 500 El elemento <Tokens>/<Token> requiere que especifiques el tipo de token (por ejemplo, refreshtoken). Si el cliente pasa el tipo incorrecto, se produce este error. ValidateToken
InvalidateToken
steps.oauth.v2.MissingParameter 500 El tipo de respuesta es token, pero no se especifican tipos de otorgamiento. GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
steps.oauth.v2.UnSupportedGrantType 500

El cliente especificó un tipo de otorgamiento que no es compatible con la política (no incluido en el elemento <SupportedGrantTypes>).

GenerateAccessToken
GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
RefreshAccessToken

Errores específicos de entorno de ejecución del token JWT

Los códigos de error del entorno de ejecución y las descripciones de los flujos de token de autenticación de JWT dependen del contexto del flujo de OAuth2:

Códigos de error para la generación de tokens JWT y los flujos de actualización

Para los flujos de OAuth2 que generan o actualizan tokens JWT, las respuestas de error se adhieren a las respuestas de error especificadas en RFC6749. Para obtener más detalles, consulta la sección Respuesta de error de la sección 5.2.

Códigos de error para el flujo de verificación de tokens

Los códigos de error que se enumeran en la siguiente tabla se aplican solo a la operación VerifyAccessToken.

Código de falla Estado de HTTP Causa Arrojados por operaciones
oauth.v2.JWTSigningFailed 401 La política no pudo firmar el JWT.

GenerateJWTAccessToken

oauth.v2.InvalidValueForJWTAlgorithm 401 Esto ocurre cuando el algoritmo no está presente en el token de acceso JWT o cuando el valor no es compatible.

GenerateJWTAccessToken
VerifyJWTAccessToken

oauth.v2.InsufficientKeyLength 401 En generación de JWT, para una clave menor que el tamaño mínimo de los algoritmos HS384 o HS512

GenerateJWTAccessToken
VerifyJWTAccessToken

oauth.v2.JWTAlgorithmMismatch 401 El algoritmo especificado en la política de generación no coincide con el esperado en la política de verificación. Los algoritmos especificados deben coincidir.

VerifyJWTAccessToken

oauth.v2.JWTDecodingFailed 401 La política no pudo decodificar el JWT. Es posible que el JWT esté dañado.

VerifyJWTAccessToken

oauth.v2.MissingMandatoryClaimsInJWT 401 Ocurre cuando las reclamaciones obligatorias no están presentes en el token de acceso de JWT.

VerifyJWTAccessToken

oauth.v2.InvalidJWTSignature 401 Esto ocurre cuando no se pudo verificar la firma del token de acceso de JWT o cuando la firma no es válida.

VerifyJWTAccessToken

oauth.v2.InvalidTypeInJWTHeader 401 Ocurre cuando el tipo de JWT no es at+Jwt.

VerifyJWTAccessToken

Errores en la implementación

Estos errores pueden generarse cuando implementas un proxy que contiene esta política.

Nombre del error Causa
InvalidValueForExpiresIn

Para el elemento <ExpiresIn>, los valores válidos son números enteros positivos y -1.

InvalidValueForRefreshTokenExpiresIn Para el elemento <RefreshTokenExpiresIn>, los valores válidos son números enteros positivos y -1.
InvalidGrantType Se especifica un tipo de otorgamiento no válido en el elemento <SupportedGrantTypes>. Consulta la referencia de la política para obtener una lista de tipos válidos.
ExpiresInNotApplicableForOperation Asegúrate de que las operaciones especificadas en el elemento <Operations> admitan el vencimiento. Por ejemplo, la operación VerifyToken no lo hace.
RefreshTokenExpiresInNotApplicableForOperation Asegúrate de que las operaciones especificadas en el elemento <Operations> admitan el vencimiento del token. Por ejemplo, la operación VerifyToken no.
GrantTypesNotApplicableForOperation Asegúrate de que los tipos de otorgamiento especificados en <SupportedGrantTypes> sean compatibles con la operación especificada.
OperationRequired

Debes especificar una operación en esta política mediante el elemento <Operation>.

InvalidOperation

Debes especificar una operación válida en esta política mediante el elemento <Operation>.

TokenValueRequired Debes especificar un valor <Token> de token en el elemento <Tokens>.

Errores específicos de implementación del token JWT

Estos errores de implementación son específicos de las políticas que usan operaciones de token JWT.

Nombre del error Causa
InvalidValueForAlgorithm El algoritmo especificado en el elemento <Algorithm> no está entre la lista de algoritmos disponibles o no está presente.
MissingKeyConfiguration Faltan los elementos <SecretKey>, <PrivateKey> o <PublicKey> obligatorios, según el algoritmo que se use.
EmptyValueElementForKeyConfiguration El elemento secundario requerido <Value> no está definido en los elementos <PrivateKey>, <PublicKey> ni <SecretKey>.
InvalidKeyConfiguration El elemento <PrivateKey> no se usa con algoritmos de la familia RSA o el elemento <SecretKey> no se usa con algoritmos de la familia HS.
EmptyRefAttributeForKeyconfiguration El atributo ref del elemento secundario <Value> de los elementos <PrivateKey>, <PublicKey> o <SecretKey> está vacío.
InvalidVariableNameForKey El nombre de la variable de flujo especificado en el atributo ref del elemento secundario <Value> de los elementos <PrivateKey>, <PublicKey> o <SecretKey> no contiene el private.

Variables con fallas

Estas variables se configuran cuando esta política activa un error en el entorno de ejecución.

Variables Donde Ejemplo
fault.name="fault_name" fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. fault.name = "invalid_request"
oauthV2.policy_name.failed policy_name es el nombre especificado por el usuario de la política que generó la falla. oauthV2.GenerateAccesstoken.failed = true
oauthV2.policy_name.fault.name policy_name es el nombre especificado por el usuario de la política que generó la falla. oauthV2.GenerateAccesstoken.fault.name = invalid_request
oauthV2.policy_name.fault.cause policy_name es el nombre especificado por el usuario de la política que generó la falla. oauthV2.GenerateAccesstoken.cause = Required param : grant_type

Ejemplo de respuesta de error

Estas respuestas se envían al cliente si el elemento <GenerateResponse> es verdadero.

Si <GenerateResponse> es verdadero, la política muestra errores en este formato para las operaciones que generan tokens y códigos. Para obtener una lista completa, consulta la referencia de respuesta de error de HTTP de OAuth.

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

Si <GenerateResponse> es verdadero, la política muestra errores en este formato para verificar y validar operaciones. Para obtener una lista completa, consulta la referencia de respuesta de falla de HTTP de OAuth.

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

Ejemplo de regla de falla

<FaultRule name=OAuthV2 Faults">
    <Step>
        <Name>AM-InvalidClientResponse</Name>
        <Condition>(fault.name = "invalid_client") OR (fault.name = "InvalidClientIdentifier")</Condition>
    </Step>
    <Step>
        <Name>AM-InvalidTokenResponse</Name>
        <Condition>(fault.name = "invalid_access_token")</Condition>
    </Step>
    <Condition>(oauthV2.failed = true) </Condition>
</FaultRule>

Política de GetOAuthV2Info

This section describes the fault codes and error messages that are returned and fault variables that are set by Apigee 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. The error names shown below are the strings that are assigned to the fault.name variable when an error occurs. See the Fault variables section below for more details.

Fault code HTTP status Cause
steps.oauth.v2.access_token_expired 500 The access token sent to the policy is expired.
steps.oauth.v2.authorization_code_expired 500 The authorization code 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.invalid_client-invalid_client_id 500 The client ID sent to the policy is invalid.
steps.oauth.v2.invalid_refresh_token 500 The refresh token sent to the policy is invalid.
steps.oauth.v2.invalid_request-authorization_code_invalid 500 The authorization code sent to the policy is invalid.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 Please see Oauth2.0 Access Token Verification throws "Invalid API call as no apiproduct match found" error for information about troubleshooting this error.
steps.oauth.v2.refresh_token_expired 500 The refresh token sent to the policy is expired.

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 Matches "IPDeniedAccess"
oauthV2.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. oauthV2.GetTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name is the user-specified name of the policy that threw the fault. oauthV2.GetToKenInfo.fault.name = invalid_client-invalid_client_id
oauthV2.policy_name.fault.cause policy_name is the user-specified name of the policy that threw the fault. oauthV2.GetTokenInfo.cause = ClientID is Invalid

Example error response

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

Example fault rule

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

Política SetOAuthV2Info

En esta sección, se describen los códigos de falla y los mensajes de error que se muestran, y las variables de falla que establece Apigee cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.

Errores de entorno de ejecución

Estos errores pueden producirse cuando se ejecuta la política.

Código de falla Estado de HTTP Causa
steps.oauth.v2.access_token_expired 500 El token de acceso que se envió a la política venció.
steps.oauth.v2.invalid_access_token 500 El token de acceso enviado a la política no es válido.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 Consulta La verificación del token de acceso de Oauth2.0 muestra el error “Se produjo una llamada a la API no válida, ya que no se encontró ninguna coincidencia de apiproduct” para obtener información sobre la solución de este error.

Errores en la implementación

Consulta el mensaje reportado en la IU para obtener información sobre los errores de implementación.

Variables con fallas

Estas variables se configuran cuando esta política activa un error en el entorno de ejecución.

Variables Donde Ejemplo
fault.name="fault_name" fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. fault.name = "invalid_access_token"
oauthV2.policy_name.failed policy_name es el nombre especificado por el usuario de la política que generó la falla. oauthV2.SetTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name es el nombre especificado por el usuario de la política que generó la falla. oauthV2.SetTokenInfo.fault.name = invalid_access_token
oauthv2.policy_name.fault.cause policy_name es el nombre especificado por el usuario de la política que generó la falla. oauthV2.SetTokenInfo.cause = Invalid Access Token

Ejemplo de respuesta de error

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

Ejemplo de regla de falla

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

Política DeleteOAuthV2Info

En esta sección, se describen los códigos de falla y los mensajes de error que se muestran, y las variables de falla que establece Apigee cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.

Errores de entorno de ejecución

Estos errores pueden producirse cuando se ejecuta la política.

Código de falla Estado de HTTP Causa
steps.oauth.v2.invalid_access_token 401 El token de acceso enviado a la política no es válido.
steps.oauth.v2.invalid_request-authorization_code_invalid 401 El código de autorización enviado a la política no es válido.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 Consulta La verificación del token de acceso de Oauth2.0 muestra el error “Se produjo una llamada a la API no válida, ya que no se encontró ninguna coincidencia de apiproduct” para obtener información sobre la solución de este error.

Errores en la implementación

Consulta el mensaje reportado en la IU para obtener información sobre los errores de implementación.

Variables con fallas

Estas variables se configuran cuando esta política activa un error en el entorno de ejecución.

Variables Donde Ejemplo
fault.name="fault_name" fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. fault.name = "invalid_access_token"
oauthV2.policy_name.failed policy_name es el nombre especificado por el usuario de la política que generó la falla. oauthV2.DeleteTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name es el nombre especificado por el usuario de la política que generó la falla. oauthV2.DeleteTokenInfo.fault.name = invalid_access_token
oauthv2.policy_name.fault.cause policy_name es el nombre especificado por el usuario de la política que generó la falla. oauthV2.DeleteTokenInfo.cause = Invalid Access Token

Ejemplo de respuesta de error

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

Ejemplo de regla de falla

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

Política PythonScript

En esta sección, se describen los códigos de falla y los mensajes de error que se muestran, y las variables de falla que establece Apigee cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Lo que necesitas saber sobre errores de políticas y Controla fallas.

Errores de entorno de ejecución

Estos errores pueden producirse cuando se ejecuta la política.

Código de falla Estado de HTTP Causa Corregir
steps.script.ScriptEvaluationFailed 500 La política de PythonScript puede arrojar varios tipos diferentes de errores de ScriptExecutionFailed. Los tipos de errores más comunes que aparecen son NameError y ZeroDivisionError.

Errores en la implementación

Estos errores pueden generarse cuando implementas un proxy que contiene esta política.

Nombre del error Causa Corregir
InvalidResourceUrlFormat Si el formato de la URL del recurso especificado en elemento <ResourceURL> o <IncludeURL> de la política de PythonScript no es válida, la implementación del proxy de la API falla.
InvalidResourceUrlReference Si los elementos <ResourceURL> o <IncludeURL> hacen referencia a un archivo de PythonScript que no existe, la implementación del proxy de API falla. El archivo de origen al que se hace referencia debe existir a nivel de proxy de API, entorno u organización.

Variables con fallas

Estas variables se configuran cuando esta política activa un error en el entorno de ejecución. Para obtener más información, consulta Qué debes saber sobre los errores de la política.

Variables Donde Ejemplo
fault.name="fault_name" fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. fault.name Matches "ScriptExecutionFailed"
pythonscript.policy_name.failed policy_name es el nombre especificado por el usuario de la política que generó la falla. pythonscript.PythonScript-1.failed = true

Ejemplo de respuesta de error

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

Ejemplo de regla de falla

<FaultRule name="PythonScript Policy Faults">
    <Step>
        <Name>AM-CustomErrorResponse</Name>
        <Condition>(fault.name Matches "ScriptExecutionFailed") </Condition>
    </Step>
    <Condition>(pythonscript.PythonScript-1.failed = true) </Condition>
</FaultRule>

Política de cuotas

En esta sección, se describen los códigos de falla y los mensajes de error que se muestran, y las variables de falla que establece Apigee cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.

Errores de entorno de ejecución

Estos errores pueden producirse cuando se ejecuta la política.

Código de falla Estado de HTTP Causa Corregir
policies.ratelimit.FailedToResolveQuotaIntervalReference 500 Ocurre si el elemento <Interval> no está definido dentro de la política Quota. Este elemento es obligatorio y se usa para especificar el intervalo de tiempo aplicable a la cuota. El intervalo de tiempo puede ser de minutos, horas, días, semanas o meses, según se defina con el elemento <TimeUnit>.
policies.ratelimit.FailedToResolveQuotaIntervalTimeUnitReference 500 Ocurre si el elemento <TimeUnit> no está definido dentro de la política Quota. Este elemento es obligatorio y se usa para especificar la unidad de tiempo aplicable a la cuota. El intervalo de tiempo puede ser en minutos, horas, días, semanas o meses.
policies.ratelimit.InvalidMessageWeight 500 Este error se produce si el valor del elemento <MessageWeight> que se especificó a través de una variable de flujo no es válido (un número que no es entero).
policies.ratelimit.QuotaViolation 500 Se superó el límite de la cuota. N/A

Errores en la implementación

Nombre del error Causa Corregir
InvalidQuotaInterval Si el intervalo de cuota especificado en el elemento <Interval> no es un número entero, fallará la implementación del proxy de la API. Por ejemplo, si el intervalo de cuota especificado es 0.1 en el elemento <Interval>, fallará la implementación del proxy de API.
InvalidQuotaTimeUnit Si la unidad de tiempo especificada en el elemento <TimeUnit> no es compatible, fallará la implementación del proxy de API. Las unidades de tiempo admitidas son minute, hour, day, week y month.
InvalidQuotaType Si el tipo de cuota especificado por el atributo type en el elemento <Quota> no es válido, fallará la implementación del proxy de la API. Los tipos de cuota admitidos son default, calendar, flexi y rollingwindow.
InvalidStartTime Si el formato del tiempo especificado en el elemento <StartTime> no es válido, fallará la implementación del proxy de la API. El formato válido es yyyy-MM-dd HH:mm:ss, que es el formato de fecha y hora ISO 8601. Por ejemplo, si la hora especificada en el elemento <StartTime> es 7-16-2017 12:00:00, fallará la implementación del proxy de API.
StartTimeNotSupported Si se especifica el elemento <StartTime> cuyo tipo de cuota no es calendar, fallará la implementación del proxy de API. El elemento <StartTime> solo es compatible con el tipo de cuota calendar. Por ejemplo, si el atributo type se establece en flexi o rolling window en el elemento <Quota>, fallará la implementación del proxy de la API.
InvalidTimeUnitForDistributedQuota Si el elemento <Distributed> se configura como true y el elemento <TimeUnit> se configura como second, fallará la implementación del proxy de la API. La unidad de tiempo second no es válida para una cuota distribuida.
InvalidSynchronizeIntervalForAsyncConfiguration Si el valor especificado para el elemento <SyncIntervalInSeconds> dentro del elemento <AsynchronousConfiguration> en una política de Quota es inferior a cero, fallará la implementación del proxy de la API.
InvalidAsynchronizeConfigurationForSynchronousQuota Si el valor del elemento <AsynchronousConfiguration> se establece en true en una política Quota, que también tiene una configuración asíncrona definida con el elemento <AsynchronousConfiguration>, la implementación del proxy de la API falla.

Variables con fallas

Estas variables se establecen cuando esta política activa un error. Para obtener más información, consulta Qué debes saber sobre los errores de la política.

Variables Donde Ejemplo
fault.name="fault_name" fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. fault.name Matches "QuotaViolation"
ratelimit.policy_name.failed policy_name es el nombre especificado por el usuario de la política que generó la falla. ratelimit.QT-QuotaPolicy.failed = true

Ejemplo de respuesta de error

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

Ejemplo de regla de falla

<FaultRules>
    <FaultRule name="Quota Errors">
        <Step>
            <Name>JavaScript-1</Name>
            <Condition>(fault.name Matches "QuotaViolation") </Condition>
        </Step>
        <Condition>ratelimit.Quota-1.failed=true</Condition>
    </FaultRule>
</FaultRules>

Política ResetQuota

This section describes the fault codes and error messages that are returned and fault variables that are set by Apigee 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 ResetQuota 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 ResetQuota policy.
policies.resetquota.FailedToResolveAllowCountRef N/A The reference to the variable containing the allow count in the <Allow> element of the policy cannot be resolved to a value. This element is mandatory and specifies the amount to decrease the quota counter.
policies.resetquota.FailedToResolveRLPolicy 500 The variable referenced by the ref attribute in the <Quota> element cannot be resolved.

Deployment errors

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

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

Política de RaiseFault

This section describes the fault codes and error messages that are returned and fault variables that are set by Apigee 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.raisefault.RaiseFault 500 See fault string.

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 = "RaiseFault"
raisefault.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. raisefault.RF-ThrowError.failed = true

Example error response

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

Política de RegularExpressionProtection

En esta sección, se describen los códigos de error y los mensajes que se muestran, y las variables de falla que establece Apigee cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Si quieres capturar un error y generar tu propio error personalizado, establece el atributo continueOnError="true" en el elemento raíz de la política. Para obtener más información, consulta Lo que necesitas saber sobre los errores de políticas y Controla fallas.

Errores de entorno de ejecución

Estos errores pueden producirse cuando se ejecuta la política.

Código de error Mensaje
ExecutionFailed Failed to execute the RegularExpressionProtection StepDefinition {0}. Reason: {1}
InstantiationFailed Failed to instantiate the RegularExpressionProtection StepDefinition {0}
NonMessageVariable Variable {0} does not resolve to a Message
SourceMessageNotAvailable {0} message is not available for RegularExpressionProtection StepDefinition {1}
ThreatDetected Regular Expression Threat Detected in {0}: regex: {1} input: {2}
VariableResolutionFailed Failed to resolve variable {0}

Errores en la implementación

Código de error Mensaje Corregir
CannotBeConvertedToNodeset RegularExpressionProtection {0}: Result of xpath {1} cannot be converted to nodeset. Context {2}
DuplicatePrefix RegularExpressionProtection {0}: Duplicate prefix {1}
EmptyJSONPathExpression RegularExpressionProtection {0}: Empty JSONPath expression
EmptyXPathExpression RegularExpressionProtection {0}: Empty XPath expression
InvalidRegularExpression RegularExpressionProtection {0}: Invalid Regular Expression {1}, Context {2}
JSONPathCompilationFailed RegularExpressionProtection {0}: Failed to compile jsonpath {1}. Context {2}
NONEmptyPrefixMappedToEmptyURI RegularExpressionProtection {0}: Non-empty prefix {1} cannot be mapped to empty uri
NoPatternsToEnforce RegularExpressionProtection {0}: No patterns to enforce in {1}
NothingToEnforce RegularExpressionProtection {0}: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory
XPathCompilationFailed RegularExpressionProtection {0}: Failed to compile xpath {1}. Context {2}

Variables con fallas

Estas variables se establecen cuando esta política activa un error. Para obtener más información, consulta Qué debes saber sobre los errores de la política.

Variables Donde Ejemplo
fault.name="fault_name" fault_name es el nombre de la falla, como se indica en la tabla anterior. fault.name Matches "ThreatDetected"
regularexpressionprotection.policy_name.failed policy_name es el nombre especificado por el usuario de la política que generó la falla. regularexpressionprotection.Regular-Expressions-Protection-1.failed = true

Política de SAMLAssertion

This section describes the fault codes and error messages that are returned and fault variables that are set by Apigee 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 ValidateSAMLAssertion policy is not defined or empty: <Source>, <XPath>, <Namespaces>, <Namespace>.
TrustStoreNotConfigured If the <TrustStore> element is empty or not specified in the ValidateSAMLAssertion policy, then the deployment of the API proxy fails. A valid truststore is required.
NullKeyStoreAlias If the child element <Alias> is empty or not specified in the <Keystore> element of GenerateSAMLAssertion policy, then the deployment of the API proxy fails. A valid keystore alias is required.
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.
NullIssuer If the <Issuer> element is empty or not specified in the GenerateSAMLAssertion policy, then the deployment of the API proxy fails. A valid <Issuer> value is required.

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

  • The policy is asked to handle input that is malformed or otherwise invalid.
  • The backend target service returns an error status (by default, 4xx or 5xx).
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.
steps.servicecallout.RequestVariableNotRequestMessageType 500 The Request variable specified in the policy is not of type RequestMessage. For example, if it's a Response type, you'll see this error.
googletoken.EmptyIDTokenAudience 500

<GoogleIDToken> is enabled but useTargetUrl is set to false and no value is provided to <Audience> either directly or through reference at the time of error.

messaging.adaptors.http.filter.GoogleTokenGenerationFailure 500 This error can happen if the API proxy is configured with the <Authentication> element. Possible causes include:
  • The service account deployed with the proxy:
    • does not exist in your project
    • has been disabled
    • (Apigee hybrid only) has not granted the roles/iam.serviceAccountTokenCreator role on the apigee-runtime service account.
  • The IAMCredentials API is disabled in the source project of the apigee-runtime service account.
  • The <GoogleAccessToken> element is used and one or more invalid scopes are provided. For example, look for typos or empty scopes.
  • For Apigee hybrid only, check the runtime container's log and search for GoogleTokenGenerationFailure to find more detailed error messages that may help with debugging the problem.

    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.
    ConnectionInfoMissing This error happens if the policy does not have an <HTTPTargetConnection> or <LocalTargetConnection> element.
    InvalidTimeoutValue This error happens if the <Timeout> value is negative or zero.
    FAILED_PRECONDITION This error happens if the service account is missing when the proxy is configured with the <Authentication> tag.

    For example:

    Deployment of \"organizations/foo/apis/apiproxy/revisions/1\" requires a service
              account identity, but one was not provided with the request.
    PERMISSION_DENIED This error happens if there is a permission problem with the service account if the proxy is configured with the <Authentication> tag. Possible causes:
    • The service account does not exist.
    • The service account was not created in the same Google Cloud project as the Apigee organization.
    • The deployer does have iam.serviceAccounts.actAs permission on the service account. For details, see About service account permissions.

    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 SOAPMessageValidation

    En esta sección, se describen los códigos de falla y los mensajes de error que se muestran, y las variables de falla que establece Apigee cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.

    Errores de entorno de ejecución

    Estos errores pueden producirse cuando se ejecuta la política.

    Código de falla Estado de HTTP Causa Corregir
    steps.messagevalidation.SourceMessageNotAvailable 500

    Este error se produce si una variable especificada en el elemento <Source> de la política:

    • Está fuera del alcance (no está disponible en el flujo específico en el que se ejecuta la política)
    • o
    • no se puede resolver (no está definido)
    steps.messagevalidation.NonMessageVariable 500

    Este error ocurre si el elemento <Source> en la política SOAPMessageValidation está configurado en una variable que no es del tipo mensaje.

    Las variables del tipo de mensaje representan respuestas y solicitudes HTTP completas. Las variables de flujo integradas de Apigee request, response y message son de tipo de mensaje. Para obtener más información acerca de las variables de mensaje, consulta la Referencia de las variables.

    steps.messagevalidation.Failed 500 Este error se produce si la política SOAPMessageValidation no valida la carga útil del mensaje de entrada en función del esquema XSD o la definición WSDL. También ocurrirá si hay JSON o XML de formato incorrecto en el mensaje de carga útil.

    Errores en la implementación

    Estos errores pueden generarse cuando implementas un proxy que contiene esta política.

    Nombre del error Causa Corregir
    InvalidResourceType El elemento <ResourceURL> en la política SOAPMessageValidation se establece en un tipo de recurso que no es compatible con la política.
    ResourceCompileFailed La secuencia de comandos de recursos a la que se hace referencia en el elemento <ResourceURL> de la política SOAPMessageValidation contiene un error que impide que se compile.
    RootElementNameUnspecified El elemento <Element> en la política SOAPMessageValidation no contiene el nombre del elemento raíz.
    InvalidRootElementName El elemento <Element> en la política SOAPMessageValidation contiene un nombre de elemento raíz que no cumple con las reglas XML para nombrar nombres de elementos válidos.

    Política de SpikeArrest

    En esta sección, se describen los códigos de falla y los mensajes de error que se muestran, y las variables de falla que establece Apigee cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.

    Errores de entorno de ejecución

    Estos errores pueden producirse cuando se ejecuta la política.

    Código de falla Estado de HTTP Causa Corregir
    policies.ratelimit.FailedToResolveSpikeArrestRate 500 Este error se produce si la referencia a la variable que contiene la configuración de tarifa dentro del elemento <Rate> no se puede resolver en un valor dentro de la política SpikeArrest. Este elemento es obligatorio y se usa para especificar el índice de protección contra aumentos de tráfico en el formato de intpm o intps.
    policies.ratelimit.InvalidMessageWeight 500 Este error se produce si el valor especificado para el elemento <MessageWeight> a través de una variable de flujo no es válido (un número no entero).
    policies.ratelimit.SpikeArrestViolation 429 Se superó el límite de frecuencia.

    Errores en la implementación

    Estos errores pueden generarse cuando implementas un proxy que contiene esta política.

    Nombre del error Causa Corregir
    InvalidAllowedRate Si la tasa de interrupción de aumento de tráfico especificada en el elemento <Rate> de la política SpikeArrest no es un número entero o si la tasa no tiene ps o pm como sufijo, la implementación del proxy de API falla.

    Variables con fallas

    Estas variables se configuran cuando se genera un error de entorno de ejecución. Para obtener más información, consulta Qué debes saber sobre los errores de la política.

    Variables Donde Ejemplo
    fault.name="fault_name" fault_name es el nombre de la falla, como se indica en la tabla Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. fault.name Matches "SpikeArrestViolation"
    ratelimit.policy_name.failed policy_name es el nombre especificado por el usuario de la política que generó la falla. ratelimit.SA-SpikeArrestPolicy.failed = true

    Ejemplo de respuesta de error

    A continuación, se muestra un ejemplo de respuesta de error:

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

    Ejemplo de regla de falla

    A continuación, se muestra un ejemplo de regla de falla para manejar una falla de 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 de VerifyAPIKey

    En esta sección, se describen los códigos de falla y los mensajes de error que se muestran, y las variables de falla que establece Apigee cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.

    Errores de entorno de ejecución

    Estos errores pueden producirse cuando se ejecuta la política.

    Código de falla Estado de HTTP Causa
    keymanagement.service.consumer_key_missing_api_product_association 400

    A la credencial de la aplicación le falta una asociación de producto de API. Asocia la aplicación de la clave a un producto de API. Ten en cuenta que esto se aplica a todos los tipos de aplicación, como las apps para desarrolladores y las apps de AppGroups.

    keymanagement.service.DeveloperStatusNotActive 401

    El desarrollador que creó la app de desarrollador que tiene la clave de API que usas tiene un estado inactivo. Cuando el estado del desarrollador de una app se establece como inactivo, se desactivan todas las apps para desarrolladores que creó ese desarrollador. Un usuario administrador con los permisos adecuados (como administrador de la organización) puede cambiar el estado de un desarrollador de las siguientes maneras:

    keymanagement.service.invalid_client-app_not_approved 401 Se revoca la app de desarrollador asociada con la clave de API. Una app revocada no puede acceder a ningún producto de API ni invocar APIs administradas por Apigee. Un administrador de la organización puede cambiar el estado de una app para desarrolladores con la API de Apigee. Consulta Genera pares de claves o actualizar el estado de las apps para desarrolladores.
    oauth.v2.FailedToResolveAPIKey 401 La política espera encontrar la clave de API en una variable que se especifica en el elemento <APIKey> de la política. Este error surge cuando la variable esperada no existe (no se puede resolver).
    oauth.v2.InvalidApiKey 401 Apigee recibió una clave de API, pero no es válida. Cuando Apigee busca la clave en su base de datos, debe coincidir de forma exacta con la que se envió en la solicitud. Si la API funcionó antes, asegúrate de que no se haya vuelto a generar la clave. Si se volvió a generar la clave, verás este error si intentas usar la clave antigua. Para obtener más información, consulta Controla el acceso a tus APIs mediante el registro de apps.
    oauth.v2.InvalidApiKeyForGivenResource 401 Apigee recibió una clave de API y es válida, pero no coincide con una clave aprobada en la app para desarrolladores asociada con el proxy de API a través de un producto.

    Errores en la implementación

    Estos errores pueden generarse cuando implementas un proxy que contiene esta política.

    Nombre del error Causa
    SpecifyValueOrRefApiKey El elemento <APIKey> no tiene un valor ni una clave especificados.

    Variables con fallas

    Estas variables se configuran cuando se genera un error de entorno de ejecución. Para obtener más información, consulta Qué debes saber sobre los errores de la política.

    Variables Donde Ejemplo
    fault.name="fault_name" fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. fault.name Matches "FailedToResolveAPIKey"
    oauthV2.policy_name.failed policy_name es el nombre especificado por el usuario de la política que generó la falla. oauthV2.VK-VerifyAPIKey.failed = true

    Ejemplos de respuesta de errores

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

    Ejemplo de regla de falla

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

    Política VerifyJWS

    En esta sección, se describen los códigos de falla y los mensajes de error que se muestran, y las variables de falla que establece Apigee cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.

    Errores de entorno de ejecución

    Estos errores pueden producirse cuando se ejecuta la política.

    Código de falla Estado de HTTP Ocurre cuando
    steps.jws.AlgorithmInTokenNotPresentInConfiguration 401 Se produce cuando la política de verificación tiene varios algoritmos.
    steps.jws.AlgorithmMismatch 401 El algoritmo especificado en el encabezado de la política Generate no coincide con el esperado en la política Verify. Los algoritmos especificados deben coincidir.
    steps.jws.ContentIsNotDetached 401 <DetachedContent> se especifica cuando el JWS no contiene una carga útil de contenido desconectado.
    steps.jws.FailedToDecode 401 La política no pudo decodificar el JWS. Es posible que el JWS esté dañado.
    steps.jws.InsufficientKeyLength 401 En el caso de una clave de menos de 32 bytes para el algoritmo HS256
    steps.jws.InvalidClaim 401 Para una reclamación faltante o una falta de coincidencia de una reclamación, o bien un encabezado faltante o una falta de coincidencia de un encabezado.
    steps.jws.InvalidCurve 401 La curva especificada por la clave no es válida para el algoritmo de curva elíptica.
    steps.jws.InvalidJsonFormat 401 Se encontró un archivo JSON que no es válido en el encabezado JWS.
    steps.jws.InvalidJws 401 Este error ocurre cuando falla la verificación de la firma del JWS.
    steps.jws.InvalidPayload 401 La carga útil JWS no es válida.
    steps.jws.InvalidSignature 401 <DetachedContent> se omite y la JWS tiene una carga útil de contenido desconectada.
    steps.jws.KeyIdMissing 401 La política Verify usa un JWKS como fuente para las claves públicas, pero el JWT firmado no incluye una propiedad kid en el encabezado.
    steps.jws.KeyParsingFailed 401 No se pudo analizar la clave pública a partir de la información de claves determinada.
    steps.jws.MissingPayload 401 Falta la carga útil JWS.
    steps.jws.NoAlgorithmFoundInHeader 401 Ocurre cuando el JWS omite el encabezado del algoritmo.
    steps.jws.NoMatchingPublicKey 401 La política Verify usa un JWKS como fuente para claves públicas, pero kid en el JWS firmado no aparece en el JWKS.
    steps.jws.UnhandledCriticalHeader 401 Un encabezado que encontró la política de verificación de JWS en el encabezado crit no aparece en KnownHeaders.
    steps.jws.UnknownException 401 Se produjo una excepción desconocida.
    steps.jws.WrongKeyType 401 El tipo de clave especificado es incorrecto. Por ejemplo, si especificas una clave RSA para un algoritmo de curva elíptica o una clave de curva para un algoritmo de RSA.

    Errores en la implementación

    Estos errores pueden generarse cuando implementas un proxy que contiene esta política.

    Nombre del error Ocurre cuando
    InvalidAlgorithm Los únicos valores válidos son RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512, HS256, HS384, HS512.

    EmptyElementForKeyConfiguration

    FailedToResolveVariable

    InvalidConfigurationForActionAndAlgorithmFamily

    InvalidConfigurationForVerify

    InvalidEmptyElement

    InvalidFamiliesForAlgorithm

    InvalidKeyConfiguration

    InvalidNameForAdditionalClaim

    InvalidNameForAdditionalHeader

    InvalidPublicKeyId

    InvalidPublicKeyValue

    InvalidSecretInConfig

    InvalidTypeForAdditionalClaim

    InvalidTypeForAdditionalHeader

    InvalidValueForElement

    InvalidValueOfArrayAttribute

    InvalidVariableNameForSecret

    MissingConfigurationElement

    MissingElementForKeyConfiguration

    MissingNameForAdditionalClaim

    MissingNameForAdditionalHeader

    Otros errores de implementación posibles.

    Variables con fallas

    Estas variables se configuran cuando se genera un error de entorno de ejecución. Para obtener más información, consulta Qué debes saber sobre los errores de la política.

    Variables Donde Ejemplo
    fault.name="fault_name" fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. fault.name Matches "TokenExpired"
    JWS.failed Todas las políticas de JWS establecen la misma variable en caso de falla. jws.JWS-Policy.failed = true

    Ejemplo de respuesta de error

    Para controlar errores, se recomienda capturar la parte errorcode de la respuesta de error. No dependas del texto en la faultstring, ya que podría cambiar.

    Ejemplo de regla de falla

    <FaultRules>
        <FaultRule name="JWS Policy Errors">
            <Step>
                <Name>JavaScript-1</Name>
                <Condition>(fault.name Matches "TokenExpired")</Condition>
            </Step>
            <Condition>JWS.failed=true</Condition>
        </FaultRule>
    </FaultRules>
    

    Política de VerifyJWT

    En esta sección, se describen los códigos de falla y los mensajes de error que se muestran, y las variables de falla que establece Apigee cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.

    Errores de entorno de ejecución

    Estos errores pueden producirse cuando se ejecuta la política.

    Código de falla Estado de HTTP Ocurre cuando
    steps.jwt.AlgorithmInTokenNotPresentInConfiguration 401 Se produce cuando la política de verificación tiene varios algoritmos.
    steps.jwt.AlgorithmMismatch 401 El algoritmo especificado en la política Generate no coincide con el esperado en la política Verify. Los algoritmos especificados deben coincidir.
    steps.jwt.FailedToDecode 401 La política no pudo decodificar el JWT. Es posible que el JWT esté dañado.
    steps.jwt.GenerationFailed 401 La política no pudo generar el JWT.
    steps.jwt.InsufficientKeyLength 401 En el caso de las claves inferiores a 32 bytes para el algoritmo HS256, menos de 48 bytes para el algoritmo HS386 y menos de 64 bytes para el algoritmo HS512.
    steps.jwt.InvalidClaim 401 Para una reclamación faltante o una falta de coincidencia de una reclamación, o bien un encabezado faltante o una falta de coincidencia de un encabezado.
    steps.jwt.InvalidConfiguration 401 Los elementos <Algorithm> y <Algorithms> están presentes.
    steps.jwt.InvalidCurve 401 La curva especificada por la clave no es válida para el algoritmo de curva elíptica.
    steps.jwt.InvalidIterationCount 401 El recuento de iteraciones que se usó en el JWT encriptado no es igual al recuento de iteraciones especificado en la configuración de la política VerifyJWT. Esto se aplica solo al JWT que usa <PasswordKey>.
    steps.jwt.InvalidJsonFormat 401 Se encontró un archivo JSON que no es válido en el encabezado o la carga útil.
    steps.jwt.InvalidKeyConfiguration 401 JWKS en el elemento <PublicKey> no es válido. El motivo podría ser que no se puede acceder al extremo del URI de JWKS desde la instancia de Apigee. Prueba la conectividad al extremo mediante la creación de un proxy de transferencia y el uso del extremo JWKS como objetivo.
    steps.jwt.InvalidSaltLength 401 La longitud de salt que se usó en el JWT encriptado no es igual a la longitud de salt especificada en la configuración de la política VerifyJWT. Esto se aplica solo al JWT que usa <PasswordKey>.
    steps.jwt.InvalidPasswordKey 401 La clave especificada no cumplió con los requisitos.
    steps.jwt.InvalidPrivateKey 401 La clave especificada no cumplió con los requisitos.
    steps.jwt.InvalidPublicKey 401 La clave especificada no cumplió con los requisitos.
    steps.jwt.InvalidSecretKey 401 La clave especificada no cumplió con los requisitos.
    steps.jwt.InvalidToken 401 Este error ocurre cuando falla la verificación de la firma del JWT.
    steps.jwt.JwtAudienceMismatch 401 La reclamación del público falló en la verificación del token.
    steps.jwt.JwtIssuerMismatch 401 La reclamación de la entidad emisora falló durante la verificación del token.
    steps.jwt.JwtSubjectMismatch 401 La reclamación de la entidad falló durante la verificación del token.
    steps.jwt.KeyIdMissing 401 La política Verify usa un JWKS como fuente para las claves públicas, pero el JWT firmado no incluye una propiedad kid en el encabezado.
    steps.jwt.KeyParsingFailed 401 No se pudo analizar la clave pública a partir de la información de claves determinada.
    steps.jwt.NoAlgorithmFoundInHeader 401 Ocurre cuando el JWT no contiene un encabezado de algoritmo.
    steps.jwt.NoMatchingPublicKey 401 La política Verify usa un JWKS como fuente para claves públicas, pero kid en el JWT firmado no aparece en el JWKS.
    steps.jwt.SigningFailed 401 En GenerateJWT, ocurre en el caso de una clave que es menor que el tamaño mínimo para los algoritmos HS384 o HS512.
    steps.jwt.TokenExpired 401 La política intenta verificar un token vencido.
    steps.jwt.TokenNotYetValid 401 El token aún no es válido.
    steps.jwt.UnhandledCriticalHeader 401 Un encabezado que encontró la política de verificación de JWT en el encabezado crit no aparece en KnownHeaders.
    steps.jwt.UnknownException 401 Se produjo una excepción desconocida.
    steps.jwt.WrongKeyType 401 El tipo de clave especificado es incorrecto. Por ejemplo, si especificas una clave RSA para un algoritmo de curva elíptica o una clave de curva para un algoritmo de RSA.

    Errores en la implementación

    Estos errores pueden generarse cuando implementas un proxy que contiene esta política.

    Nombre del error Causa Corregir
    InvalidNameForAdditionalClaim La implementación fallará si la reclamación que se usa en el elemento secundario <Claim> del elemento <AdditionalClaims> es uno de los siguientes nombres registrados: kid, iss, sub, aud, iat, exp, nbf o jti.
    InvalidTypeForAdditionalClaim Si la reclamación usada en el elemento secundario <Claim> del elemento <AdditionalClaims> no es del tipo string, number, boolean ni map, la implementación fallará.
    MissingNameForAdditionalClaim Si no se especifica el nombre de la reclamación en el elemento secundario <Claim> del elemento <AdditionalClaims>, fallará la implementación.
    InvalidNameForAdditionalHeader Este error ocurre cuando el nombre de la reclamación que se usó en el elemento secundario <Claim> del elemento <AdditionalClaims> es alg o typ.
    InvalidTypeForAdditionalHeader Si el tipo de reclamación usado en el elemento secundario <Claim> del elemento <AdditionalClaims> no es del tipo string, number, boolean ni map, la implementación fallará.
    InvalidValueOfArrayAttribute Este error ocurre cuando el valor del atributo de arreglo en el elemento secundario <Claim> del elemento <AdditionalClaims> no está configurado como true ni false.
    InvalidValueForElement Si el valor especificado en el elemento <Algorithm> no es un valor admitido, la implementación fallará.
    MissingConfigurationElement Este error se producirá si el elemento <PrivateKey> no se usa con algoritmos de la familia RSA o si el elemento <SecretKey> no se usa con algoritmos de la familia HS.
    InvalidKeyConfiguration Si el elemento secundario <Value> no está definido en los elementos <PrivateKey> ni <SecretKey>, la implementación fallará.
    EmptyElementForKeyConfiguration Si el atributo de referencia del elemento secundario <Value> de los elementos <PrivateKey> o <SecretKey> está vacío o no se especifica, la implementación fallará.
    InvalidConfigurationForVerify Este error se genera si el elemento <Id> se define dentro del elemento <SecretKey>.
    InvalidEmptyElement Este error se produce si el elemento <Source> de la política Verificar JWT está vacío. Si está presente, se debe definir con un nombre de variable de flujo de Apigee.
    InvalidPublicKeyValue Si el valor que se usa en el elemento secundario <JWKS> del elemento <PublicKey> no usa un formato válido como se especifica en RFC 7517, la implementación fallará.
    InvalidConfigurationForActionAndAlgorithm Si el elemento <PrivateKey> se usa con algoritmos de la familia HS o el elemento <SecretKey> se usa con algoritmos de la familia RSA, la implementación fallará.

    Variables con fallas

    Estas variables se configuran cuando se genera un error de entorno de ejecución. Para obtener más información, consulta Qué debes saber sobre los errores de la política.

    Variables Donde Ejemplo
    fault.name="fault_name" fault_name es el nombre de la falla, como se indica en la tabla de Errores del entorno de ejecución anterior. El nombre de la falla es la última parte del código de la falla. fault.name Matches "InvalidToken"
    JWT.failed Todas las políticas de JWT establecen la misma variable en caso de falla. JWT.failed = true

    Ejemplo de respuesta de error

    Códigos de error de políticas de JWT

    Para controlar errores, se recomienda capturar la parte errorcode de la respuesta de error. No dependas del texto en la faultstring, ya que podría cambiar.

    Ejemplo de regla de falla

        <FaultRules>
            <FaultRule name="JWT Policy Errors">
                <Step>
                    <Name>JavaScript-1</Name>
                    <Condition>(fault.name Matches "InvalidToken")</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 Apigee 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.
    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.
    steps.xmlthreatprotection.SourceUnavailable 500 This error occurs if the message variable specified in the <Source> element is either:
    • Out of scope (not available in the specific flow where the policy is being executed)
    • Is not one of the valid values request, response, or message
    steps.xmlthreatprotection.NonMessageVariable 500 This error occurs if the <Source> element is set to a variable which is not of type message.

    Deployment errors

    None.

    Fault variables

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

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

    Example error response

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

    Example fault rule

    <FaultRule name="XML Threat Protection Policy Faults">
        <Step>
            <Name>AM-CustomErrorResponse</Name>
            <Condition>(fault.name Matches "ExecutionFailed") </Condition>
        </Step>
        <Condition>(xmlattack.XPT-SecureRequest.failed = true) </Condition>
    </FaultRule>
    

    Política XMLtoJSON

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

    Runtime errors

    These errors can occur when the policy executes.

    Fault code HTTP status Cause Fix
    steps.xmltojson.ExecutionFailed ExecutionFailed This error occurs when the input payload (XML) is empty or the input XML is invalid or malformed.
    steps.xmltojson.InCompatibleTypes ExecutionFailed This error occurs if the type of the variable defined in the <Source> element and the <OutputVariable> element are not the same. It is mandatory that the type of the variables contained within the <Source> element and the <OutputVariable> element matches.
    steps.xmltojson.InvalidSourceType ExecutionFailed This error occurs if the type of the variable used to define the <Source> element is invalid.The valid types of variable are message and string.
    steps.xmltojson.OutputVariableIsNotAvailable ExecutionFailed This error occurs if the variable specified in the <Source> element of the XML to JSON policy is of type string and the <OutputVariable> element is not defined. The <OutputVariable> element is mandatory when the variable defined in the <Source> element is of type string.
    steps.xmltojson.SourceUnavailable ExecutionFailed This error occurs if the message variable specified in the <Source> element of the XML to JSON policy is either:
    • Out of scope (not available in the specific flow where the policy is being executed) or
    • Can't be resolved (is not defined)

    Deployment errors

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

    Error name Cause Fix
    EitherOptionOrFormat If one of the elements <Options> or <Format> is not declared in the XML to JSON Policy, then the deployment of the API proxy fails.
    UnknownFormat If the <Format> element within the XML to JSON policy has an unknown format defined, then the deployment of the API proxy fails. Predefined formats include: xml.com, yahoo, google, and badgerFish.

    Fault variables

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

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

    Example error response

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

    Example fault rule

    <faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="XML to JSON Faults">
        <Step>
            <Name>AM-SourceUnavailableMessage</Name>
            <Condition>(fault.name Matches "SourceUnavailable") </Condition>
        </Step>
        <Step>
            <Name>AM-BadXML</Name>
            <Condition>(fault.name = "ExecutionFailed")</Condition>
        </Step>
        <Condition>(xmltojson.XMLtoJSON-1.failed = true) </Condition>
    </FaultRule>
    

    Política XSLTransform

    Runtime errors

    These errors can occur when the policy executes.

    Fault code HTTP status Cause Fix
    steps.xsl.XSLSourceMessageNotAvailable 500 This error occurs if the message or string variable specified in the <Source> element of the XSLTransform policy is either out of scope (not available in the specific flow where the policy is being executed) or can't be resolved (is not defined).
    steps.xsl.XSLEvaluationFailed 500 This error occurs if the input XML payload is unavailable/malformed or the XSLTransform policy fails/is unable to transform the input XML file based on the transformation rules provided in the XSL file. There could be many different causes for the XSLTransform policy to fail. The reason for failure in the error message will provide more information on the cause.

    Deployment errors

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

    Error name Cause Fix
    XSLEmptyResourceUrl If the <ResourceURL> element in the XSLTransform policy is empty, then the deployment of the API proxy fails.
    XSLInvalidResourceType If the resource type specified in the <ResourceURL> element of the XSLTransform policy is not of type xsl, then the deployment of the API proxy fails.