Cuando se realizan solicitudes a la API a través de Apigee Edge, los routers de componentes de Apigee Edge y los procesadores de mensajes, o los servidores de backend pueden mostrar errores a las aplicaciones cliente.
Errores de Message Processor
El procesador de mensajes es el componente principal de Apigee Edge que procesa las políticas y, además, interactúa con los servidores de backend. Puede mostrar errores si detecta problemas como los que se mencionan a continuación:
Problemas de conectividad de red, fallas del protocolo de enlace TLS, falta de disponibilidad del servidor de backend, falta de respuesta durante la comunicación con el servidor de backend
Fallas durante la ejecución de la política
Los encabezados HTTP, la codificación, la ruta de acceso, el incumplimiento de las especificaciones de HTTP y los límites del producto, etc. no son válidos:
Con la solicitud HTTP que envían las aplicaciones cliente
O
Con la respuesta HTTP que envió el servidor de backend
Y mucho más
Error de muestra de Message Processor
Message Processor siempre muestra un código de estado HTTP seguido de un mensaje de error junto con un código de error en formato JSON como se muestra a continuación:
La aplicación cliente obtiene un código de respuesta como el siguiente ejemplo:
HTTP/1.1 414 Request-URI Too Long
Una respuesta de error de Message Processor aparece en el siguiente formato:
Descripción de los campos en la respuesta de error:
Campo
Descripción
faultstring
Contiene el mensaje de error que describe la posible causa del error
errorcode
Código de error (también conocido como código de falla) asociado con el error
Catálogo de errores del entorno de ejecución
Este catálogo de errores proporciona toda la información que necesitas saber sobre los códigos de error del entorno de ejecución (para errores que no son políticos) que muestra el componente del procesador de mensajes de Apigee Edge. Incluye la siguiente información para cada uno de los códigos de error:
Código de estado HTTP
Mensaje de error
Causas posibles del error
Cualquier límite de productos o especificaciones HTTP asociadas
Guías y videos que contienen instrucciones para diagnosticar la causa del error y las soluciones efectivas que puedes aplicar a fin de resolver el error por tu cuenta (cuando esté disponible)
Solución que puedes aplicar para resolver el error por tu cuenta
Se tratan las siguientes categorías de código de error:
Usa el cuadro Buscar que se encuentra a continuación para filtrar la tabla y mostrar la información anterior para un código de error específico. Puedes buscar el código de estado o cualquier contenido en cualquier campo de la tabla.
searchBúsqueda
Código de error
Descripción
Corregir
flow.*
flow.APITimedOut
Código de estado HTTP:
504 Gateway Timeout
Mensaje de error:
API timed out
Causa posible:
Este error se produce si se produce una de las siguientes situaciones:
El servidor de backend no responde dentro del tiempo de espera configurado por la propiedad api.timeout para el proxy de API específico.
Una política tarda mucho tiempo debido a las operaciones que requieren mucha capacidad de procesamiento, una carga alta o un rendimiento bajo.
Nota: Esta guía proporciona instrucciones para solucionar el problema del código de error messaging.adaptors.http.flow.GatewayTimeout. Sin embargo, puedes usar la misma guía para solucionar el problema del código de error flow.APITimedOut.
Este error ocurre solo si se cumplen estas condiciones:
La codificación especificada en el encabezado de la solicitud HTTP Content-Encoding es válida y
es compatible con Apigee Edge,
PERO
El formato de carga útil que envía el cliente como parte de la solicitud HTTP no coincide con el formato de codificación especificado en el encabezado Content-Encoding
Este error ocurre solo si se cumplen estas condiciones:
La codificación especificada en el encabezado de respuesta HTTP Content-Encoding del servidor de destino o backend es válida y
compatible con Apigee Edge,
PERO
El formato de carga útil que envía el servidor de backend/destino como parte de la respuesta HTTP no coincide con el formato de codificación especificado en el encabezado Content-Encoding
El mensaje de error y el formato pueden variar según la implementación del servidor de backend.
Causa posible:
Este error se produce si el servidor de backend responde con el código de estado 504 a Apigee Edge.
Nota: El código de error messaging.adaptors.http.flow.ErrorResponseCode no se muestra como parte del mensaje de error enviado a las aplicaciones cliente. Esto se debe a que Apigee Edge establece este código de error cada vez que el servidor de backend responde con un error y con cualquiera de los códigos de estado 4XX o 5XX. Puedes ver este código de error en la supervisión de API, los registros de acceso de NGINX o en la base de datos de estadísticas.
messaging.adaptors.http.flow.GatewayTimeout
Código de estado HTTP:
504 Gateway Timeout
Mensaje de error:
Gateway Timeout
Causa posible:
Este error ocurre si el servidor de backend no responde al procesador de mensajes de Apigee Edge dentro del
período de tiempo de espera de E/S configurado en el procesador de mensajes.
Este error se produce si la aplicación cliente no pasa el encabezado Content-Length como parte de las solicitudes HTTP POST y PUT que se envían a Apigee Edge.
Nota: Las solicitudes que fallan con este error no se pueden capturar en la herramienta Trace, ya que el procesador de mensajes realiza esta validación en una fase muy temprana, mucho antes de procesar la solicitud y ejecutar cualquier política en el proxy de API
Para resolver este error, realiza los siguientes pasos:
Asegúrate de que la aplicación cliente siempre pase el encabezado Content-Length como parte de las solicitudes HTTP POST y PUT que se envían a Apigee Edge. Por ejemplo:
curl -X POST https://HOSTALIAS/PATH -d '{"name": "abc"}' -H "Content-Length: 15"
Incluso si pasas una carga útil vacía con solicitudes POST y PUT, asegúrate de que el encabezado Content-Length: 0 se pase. Por ejemplo:
curl -X POST https://HOSTALIAS/PATH -H "Content-Length: 0"
messaging.adaptors.http.flow.NoActiveTargets
Código de estado HTTP:
503 Service Unavailable
Mensaje de error:
The Service is temporarily unavailable
Causa posible:
Este error ocurre en una de las siguientes situaciones, si usas
TargetServer en Apigee Edge:
La resolución incorrecta de DNS del host del servidor de backend del servidor de autorización personalizado dio como resultado direcciones IP incorrectas, lo que genera errores de conexión.
Errores de tiempo de espera de la conexión debido a los siguientes motivos:
La restricción de firewall en el servidor de backend evita que Apigee Edge se conecte al servidor de backend.
Problemas de conectividad de red entre Apigee Edge y el servidor de backend.
El host especificado en TargetServer es incorrecto o tiene caracteres no deseados (como un espacio).
Este error también puede ocurrir si las verificaciones de estado configuradas para supervisar la verificación de estado de los servidores de destino fallan.
Este error ocurre si el procesador de mensajes de Apigee Edge no recibe la carga útil de la solicitud de la aplicación cliente para el
período de tiempo de espera de E/S configurado en el componente Message Processor.
Corregir
Asegúrate de que la aplicación cliente envíe la carga útil de la solicitud dentro del
tiempo de espera de E/S configurado en el componente Message Processor de Apigee Edge.
messaging.adaptors.http.flow.ServiceUnavailable
Código de estado HTTP:
503 Service Unavailable
Mensaje de error:
The Service is temporarily unavailable
Causa posible:
Este error ocurre en una de las siguientes situaciones:
La resolución de DNS incorrecta del host del servidor de backend por el servidor de autorización personalizado dio como resultado direcciones IP incorrectas, lo que genera errores de conexión.
Errores de tiempo de espera de la conexión debido a los siguientes motivos:
La restricción de firewall en el servidor de backend evita que Apigee Edge se conecte al servidor de backend.
Problemas de conectividad de red entre Apigee Edge y el servidor de backend.
El host del servidor de destino especificado en el extremo de destino es incorrecto o tiene caracteres no deseados (como el espacio).
Este error también puede ocurrir si el servidor de backend cierra la conexión antes de tiempo, mientras el procesador de mensajes aún envía la carga útil de la solicitud al servidor de backend.
Este error ocurre durante el proceso de protocolo de enlace SSL entre el procesador de mensajes de Apigee Edge y el servidor de backend si se cumplen las siguientes condiciones:
El almacén de confianza del procesador de mensajes de Apigee Edge:
Contiene una cadena de certificados que no coincide con la cadena de certificados completa del
servidor de backend
O
No contiene la cadena de certificados completa del servidor de backend
La cadena de certificados que presenta el servidor de backend:
Contiene un nombre de dominio completamente calificado (FQDN) que no coincide con el nombre de host especificado en el extremo de destino
O
Contiene una cadena de certificados incorrecta o incompleta
Este error ocurre si Apigee Edge no puede enrutar la solicitud a ninguno de los TargetEndpoints por los siguientes motivos:
No hay ninguna condición de regla de enrutamiento (<RouteRule>) que coincida con la solicitud en un proxy.
AND
No hay una regla de ruta predeterminada definida en el ProxyEndpoint (es decir, <RouteRule> sin ninguna condición)
Corregir
Para abordar este error, sigue estas instrucciones:
Revisa las reglas de enrutamiento definidas en tu ProxyEndpoint y modifícalas para asegurarte de que haya al menos una condición de regla de enrutamiento que coincida con tu solicitud.
Te recomendamos definir una regla de enrutamiento predeterminada sin condición cuando tienes varias RouteRules.
Asegúrate de que la regla de ruta predeterminada se defina por última vez en la lista de rutas condicionales, ya que las reglas se evalúan de arriba a abajo en el ProxyEndpoint.
Para obtener más información sobre la definición de condiciones <RouteRule> en un ProxyEndpoint, consulta Objetivos condicionales.
messaging.runtime.SenseRaiseFault
Código de estado HTTP:
403 Forbidden
Mensaje de error:
Sense Fault
Causa posible:
Este error se produce si se realiza una solicitud a la API desde una dirección IP de cliente en particular que está bloqueada como parte de las reglas de Apigee Sense.
Corregir
Para abordar este error, sigue estas instrucciones:
Si la dirección IP del cliente específica no está bloqueada, pero sigues recibiendo este error, comunícate con el equipo de asistencia de Apigee Edge.
protocol.http.* - Caused due to bad request
protocol.http.BadFormData
Código de estado HTTP:
500 Internal Server Error
Mensaje de error:
Bad Form Data
Causa posible:
Este error se produce si y solo si se cumplen todas las siguientes condiciones:
La solicitud HTTP que envió el cliente a Apigee Edge contiene lo siguiente:
Content-Type: application/x-www-form-urlencoded,
y
Datos del formulario con el signo de porcentaje (%) o el signo de porcentaje (%) seguido de caracteres hexadecimales no válidos que no están permitidos según Formularios: Sección 17.13.4.1.
El proxy de la API en Apigee Edge lee los parámetros de formulario específicos que contienen cualquier carácter que no se permita mediante ExtractVariables o la política AssignMessage en el flujo de solicitud.
Este error se produce si un encabezado HTTP específico que no puede tener duplicados en Apigee Edge aparece más de una vez con los mismos valores o con valores diferentes como parte de la solicitud HTTP que envía la aplicación cliente a Apigee Edge.
Asegúrate de que la solicitud HTTP que envía la aplicación cliente a Apigee Edge siempre contenga un nombre de encabezado válido según
RFC 7230, sección 3.2: Campos de encabezado.
protocol.http.HeaderNameWithNonAsciiChar
Código de estado HTTP:
400 Bad Request
Mensaje de error:
Header {header_name} contains non ascii character {character}
Causa posible:
Este error se produce si el nombre del encabezado que se envió como parte de la solicitud HTTP de la aplicación cliente a Apigee Edge contiene caracteres que no son ASCII.
Header {header_name} contains invalid character {character}
Causa posible:
Este error se produce si el nombre del encabezado que se envía como parte de la solicitud HTTP que la aplicación cliente a Apigee Edge contiene caracteres no válidos como igual (=), coma (,) y punto y coma (;), tabulación, CRLF y el carácter de salto de línea.
Este error se produce si la ruta de acceso en la URL de la solicitud HTTP que envió la aplicación cliente a Apigee Edge contiene caracteres que no se permiten según la especificación RFC 3986, sección 3.3: Ruta de acceso.
Asegúrate de que la ruta de acceso en la URL de solicitud HTTP que envió la aplicación cliente a Apigee Edge no contenga ningún carácter que no esté permitido como
según RFC 3986, sección 3.3: Ruta de acceso.
protocol.http.TooBigBody
Código de estado HTTP:
413 Request Entity Too Large
Mensaje de error:
Body buffer overflow
Causa posible:
Este error se produce si el tamaño de la carga útil que envía la aplicación cliente como parte de la solicitud HTTP a Apigee Edge es mayor que el límite permitido en Apigee Edge.
El tamaño total de todos los encabezados de solicitud que envió la aplicación cliente como parte de la solicitud HTTP a Apigee Edge es mayor que el límite permitido en Apigee Edge.
Este error se produce si el tamaño de la línea de solicitud que envía la aplicación cliente como parte de la solicitud HTTP a Apigee Edge es mayor que el límite permitido en Apigee Edge.
Este error se produce si el encabezado Content-Encoding que envió el cliente como parte de la respuesta HTTP contiene un formato de codificación/carga útil que no es
compatible con Apigee Edge.
Este error se produce si la URL de la solicitud del servidor de backend, representada por la variable de flujo target.url, contiene una ruta de acceso que comienza con un signo de interrogación (?) en lugar de una barra diagonal (/) de reenvío, que no es válida.
Este error se produce si el encabezado HTTP específico que no puede tener duplicados en Apigee Edge aparece más de una vez con los mismos valores o con valores diferentes como parte de la respuesta HTTP que envía el servidor de backend a Apigee Edge.
Asegúrate de que la respuesta HTTP que envía el servidor de backend a Apigee Edge siempre contenga un nombre de encabezado válido, según
RFC 7230, sección 3.2: Campos de encabezado.
protocol.http.EmptyPath
Código de estado HTTP:
500 Internal Server Error
Mensaje de error:
Request path cannot be empty
Causa posible:
Este error se produce si la URL de la solicitud HTTP del servidor de backend, representada por la variable de flujo target.url, contiene una ruta de acceso vacía.
Header {header_name} contains non ascii character {character}
Causa posible:
Este error se produce si el nombre del encabezado que envía el servidor de backend como parte de la respuesta HTTP a Apigee Edge contiene caracteres que no son ASCII.
Header {header_name} contains invalid character {character}
Causa posible:
Este error se produce si el nombre del encabezado que envía el servidor de backend como parte de la respuesta HTTP contiene caracteres no válidos, como igual (=), coma (,), punto y coma (;), tabulación, CRLF y carácter de salto de línea
Proxy refused to create tunnel with response status {status code}
Causa posible:
Este error ocurre durante la creación del túnel entre Apigee Edge y el servidor de backend por el servidor proxy debido al firewall, la LCA (lista de control de acceso), problemas de DNS, disponibilidad del servidor de backend, etcétera.
Nota: El código de estado en el mensaje de error (faultstring) proporciona la causa de alto nivel del problema.
Response Status code 306 is reserved, so can't be used.
Causa posible:
Este error se produce si el servidor de backend respondió con el código de estado 306 a Apigee Edge.
El código de estado 306 se definió en una versión anterior de la especificación HTTP. Según la especificación HTTP actual, este código está reservado y no debe usarse.
Debido a que el código de estado 306 está reservado, asegúrate de que tu servidor de backend no use este código de estado mientras envía una respuesta a Apigee Edge.
protocol.http.Response405WithoutAllowHeader
Código de estado HTTP:
502 Bad Gateway
Mensaje de error:
Received 405 Response without Allow Header
Causa posible:
El servidor de backend responde con el código de estado 405 Method Not Allowed sin el encabezado "Allow".
Este error se produce si la respuesta HTTP del servidor de backend a Apigee Edge es 204 No Content o 205 Reset Content, pero contiene el cuerpo de la respuesta o uno o más de los siguientes encabezados:
Este error se produce si el tamaño de la carga útil que envía la aplicación cliente como parte de la solicitud HTTP a Apigee Edge es mayor que el límite permitido en Apigee Edge.
Este error se produce si el tamaño total de todos los encabezados de respuesta que envía el servidor de backend como parte de la respuesta HTTP a Apigee Edge es mayor que el límite permitido en Apigee Edge.
Este error se produce si el tamaño de la línea de respuesta que envía el servidor de backend como parte de la respuesta HTTP a Apigee Edge es mayor que el límite permitido en Apigee Edge.
Este error se produce si el encabezado Content-Encoding que envía el servidor de backend como parte de la respuesta HTTP contiene el formato de codificación/carga útil que no es
compatible con Apigee Edge.
KeyAlias {KeyAlias_name} is not found in
Keystore {Keystore_Name}
Causa posible:
Este error se produce si no se encuentra el KeyAlias específico al que se hace referencia en el TargetEndpoint o TargetServer en el almacén de claves específico.
Corregir
Asegúrate de que el KeyAlias especificado en TargetEndpoint o TargetServer exista y sea parte del almacén de claves específico.
security.util.TrustStoreWithNoCertificates
Código de estado HTTP:
500 Internal Server Error
Mensaje de error:
TrustStore {truststore_name} has no certificates
Causa posible:
Este error se produce si el Truststore específico al que se hace referencia en el TargetEndpoint o TargetServer no contiene ningún certificado.
Corregir
Si deseas validar el certificado del servidor de backend y deseas usar el almacén de confianza en un TargetEndpoint o TargetServer, asegúrate de que el almacén de confianza contenga los certificados válidos del servidor de backend.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2024-11-08 (UTC)"],[],[]]