Lorsque les requêtes API sont effectuées via Apigee Edge, les composants Apigee Edge, les routeurs et les processeurs de messages, ou le backend
les serveurs peuvent renvoyer des erreurs
aux applications clientes.
Erreurs du processeur de messages
Le processeur de messages est le composant central d'Apigee Edge qui traite les stratégies et
interagit avec les serveurs backend. Il peut renvoyer des erreurs s'il détecte des problèmes tels que :
Problèmes de connectivité réseau, échecs de handshake TLS, indisponibilité du serveur backend, absence de réponse lors de la communication avec le serveur backend.
Échecs lors de l'exécution de la règle
En-têtes HTTP non valides, encodage, chemin, non-conformité avec les spécifications HTTP, dépassement des limites de produit, etc. :
Avec une requête HTTP envoyée par les applications clientes
OU
Avec la réponse HTTP envoyée par le serveur backend
Etc.
Exemple d'erreur provenant du processeur de messages
Le processeur de messages renvoie toujours un code d'état HTTP suivi d'un message d'erreur avec un code d'erreur au format JSON, comme indiqué ci-dessous :
L'application cliente obtient un code de réponse semblable à l'exemple suivant :
HTTP/1.1414Request-URI Too Long
Une réponse d'erreur du processeur de messages apparaît au format suivant :
Contient le message d'erreur décrivant la cause possible de l'erreur.
errorcode
Code d'erreur associé à l'erreur
Catalogue d'erreurs d'exécution
Ce catalogue d'erreurs fournit toutes les informations que vous devez connaître sur l'environnement d'exécution
codes d'erreur (pour les erreurs non liées aux règles) qui sont renvoyés par le message
Composant de processeur. Il contient les informations suivantes pour chacun des codes d'erreur :
Code d'état HTTP
Message d'erreur
Causes possibles de l'erreur
Toutes les spécifications HTTP et/ou les limites de produits associées
Guides et vidéos contenant des instructions pour diagnostiquer la cause de l'erreur et des solutions efficaces que vous pouvez appliquer pour résoudre vous-même l'erreur (le cas échéant)
Correctif que vous pouvez appliquer pour résoudre vous-même l'erreur
Les catégories de code d'erreur suivantes sont traitées :
Utilisez le champ Rechercher ci-dessous pour filtrer le tableau de façon à afficher les informations ci-dessus pour un code d'erreur spécifique. Vous pouvez rechercher le code d'état ou tout contenu dans n'importe quel champ du tableau.
searchRecherche
Code d'erreur
Description
Corriger
flow.*
flow.APITimedOut
Code d'état HTTP :
504 Gateway Timeout
Message d'erreur :
API timed out
Cause possible :
Cette erreur se produit dans les cas suivants :
Le serveur backend ne répond pas dans le délai avant expiration configuré par la propriété api.timeout pour le proxy d'API spécifique.
Une règle prend beaucoup de temps en raison d'opérations qui utilisent beaucoup de ressources de calcul, d'une charge élevée ou de performances médiocres.
Remarque:Ce playbook fournit des instructions pour résoudre le code d'erreur.
messaging.adaptors.http.flow.GatewayTimeout; Cependant, vous pouvez utiliser
le même playbook pour résoudre le code d'erreur flow.APITimedOut.
Cette erreur ne se produit que dans les cas suivants :
Le codage spécifié dans l'en-tête de requête HTTP
Content-Encoding est valide et
<ph type="x-smartling-placeholder"></ph>
pris en charge par Apigee Edge,
MAIS
Le format de la charge utile envoyée par le client dans le cadre de la requête HTTP ne correspond pas au format d'encodage spécifié dans l'en-tête Content-Encoding.
Cette erreur ne se produit que dans les cas suivants :
L'encodage spécifié dans le champ "backend"/serveur cible
L'en-tête de réponse HTTP Content-Encoding est valide et
<ph type="x-smartling-placeholder"></ph>
pris en charge par Apigee Edge,
MAIS
Le format de la charge utile envoyée par le serveur backend/cible dans le cadre de la réponse HTTP ne correspond pas au format d'encodage spécifié dans l'en-tête Content-Encoding.
Le message d'erreur et le format peuvent varier en fonction de la mise en œuvre du serveur backend.
Cause possible :
Cette erreur se produit si le serveur backend répond en indiquant l'état
code 504 à Apigee Edge.
Remarque : Le code d'erreur messaging.adaptors.http.flow.ErrorResponseCode n'est pas renvoyé dans le message d'erreur envoyé aux applications clientes. C'est
car ce code d'erreur est défini par Apigee Edge chaque fois que le serveur backend
répond avec une erreur et l'un des éléments 4XX ou 5XX
codes d'état. Vous pouvez afficher ce code d'erreur dans API Monitoring, les journaux d'accès NGINX,
ou d'une base de données d'analyse.
messaging.adaptors.http.flow.GatewayTimeout
Code d'état HTTP :
504 Gateway Timeout
Message d'erreur :
Gateway Timeout
Cause possible :
Cette erreur se produit si le serveur backend ne répond pas
au processeur de messages Apigee Edge dans
<ph type="x-smartling-placeholder"></ph>
Délai avant expiration des E/S configuré sur le processeur de messages.
Cette erreur se produit si l'en-tête Content-Length n'est pas transmis par
l'application cliente dans le cadre des protocoles HTTP POST et PUT
envoyées à Apigee Edge.
Remarque : Les requêtes échouant avec cette erreur ne peuvent pas être capturées dans l'outil Trace, car le processeur de messages effectue cette validation très tôt, bien avant de traiter la requête et d'exécuter toute règle dans le proxy d'API.
Assurez-vous que l'application cliente transmet toujours l'en-tête
Content-Length dans le cadre de l'POST HTTP et
Requêtes PUT envoyées à Apigee Edge. Exemple :
curl -X POST https://HOSTALIAS/PATH -d '{"name": "abc"}' -H "Content-Length: 15"
Même si vous transmettez une charge utile vide avec des requêtes POST et PUT, assurez-vous que l'en-tête Content-Length: 0 est transmis. Exemple :
curl -X POST https://HOSTALIAS/PATH -H "Content-Length: 0"
messaging.adaptors.http.flow.NoActiveTargets
Code d'état HTTP :
503 Service Unavailable
Message d'erreur :
The Service is temporarily unavailable
Cause possible :
Cette erreur se produit dans l'un des scénarios suivants,
si vous utilisez
<ph type="x-smartling-placeholder"></ph>
TargetServer dans Apigee Edge:
La résolution DNS incorrecte de l'hôte du serveur backend par le serveur d'autorisation personnalisé a entraîné des adresses IP incorrectes entraînant des erreurs de connexion.
Erreurs de délai d'attente de connexion pour les raisons suivantes :
La restriction de pare-feu sur le serveur backend empêche
d'Apigee Edge de se connecter au serveur backend.
Problèmes de connectivité réseau entre Apigee Edge
et le serveur backend.
L'hôte spécifié dans le TargetServer est incorrect ou comporte des caractères indésirables (tels qu'un espace).
Cette erreur se produit si le processeur de messages Apigee Edge ne reçoit pas la
de la requête à l'application cliente pour
<ph type="x-smartling-placeholder"></ph>
Délai avant expiration des E/S configuré sur le composant du processeur de messages.
Corriger
Assurez-vous que l'application cliente envoie la charge utile de la requête dans le
<ph type="x-smartling-placeholder"></ph>
Délai avant expiration des E/S configuré sur le composant de processeur de messages d'Apigee Edge.
messaging.adaptors.http.flow.ServiceUnavailable
Code d'état HTTP :
503 Service Unavailable
Message d'erreur :
The Service is temporarily unavailable
Cause possible :
Cette erreur se produit dans l'un des scénarios suivants :
La résolution DNS incorrecte de l'hôte du serveur backend par le serveur d'autorisation personnalisé a entraîné des adresses IP incorrectes entraînant des erreurs de connexion.
Erreurs de délai d'attente de la connexion pour les raisons suivantes :
La restriction de pare-feu sur le serveur backend empêche
d'Apigee Edge de se connecter au serveur backend.
Problèmes de connectivité réseau entre Apigee Edge et
à un serveur backend.
L'hôte du serveur cible spécifié dans le point de terminaison cible est incorrect ou contient des caractères indésirables (tels que de l'espace).
Cette erreur peut également se produire si le serveur backend ferme prématurément la connexion alors que le processeur de messages envoie toujours la charge utile de requête au serveur backend.
Cette erreur se produit dans l'un des scénarios suivants :
<ph type="x-smartling-placeholder"></ph>
TargetServer n'est pas correctement configuré pour prendre en charge les connexions TLS/SSL.
dans Apigee Edge.
Le serveur backend peut fermer
la connexion brusquement,
pendant qu'Apigee Edge attend une réponse du serveur backend.
Veillez à ce que les délais avant expiration actifs sont mal configurés sur Apigee et sur le serveur backend.
Cette erreur se produit si Apigee Edge ne peut pas acheminer la requête vers l'un des
TargetEndpoints car:
Aucune condition de règle de routage (<RouteRule>) ne correspond à la requête dans un proxy.
"AND"
Aucune règle de routage par défaut n'est définie dans le ProxyEndpoint (par exemple, <RouteRule> sans aucune condition)
Corriger
Pour résoudre cette erreur, procédez comme suit :
Examinez les règles de routage définies dans votre ProxyEndpoint et modifiez-les pour vous assurer qu'au moins une condition de règle de routage correspond à votre requête.
Il est recommandé de définir une règle de routage default sans condition lorsque vous avez plusieurs règles de routage.
Assurez-vous que la règle de routage par défaut est toujours définie en dernier dans la liste des routes conditionnelles, car les règles sont évaluées de haut en bas dans le point de terminaison proxy.
Pour en savoir plus sur la définition des conditions <RouteRule> dans un ProxyEndpoint, consultez la page Cibles conditionnelles.
messaging.runtime.SenseRaiseFault
Code d'état HTTP :
403 Forbidden
Message d'erreur :
Sense Fault
Cause possible :
Cette erreur se produit si une requête API est effectuée à partir d'une adresse IP client particulière.
qui est bloquée conformément aux règles d'Apigee Sense.
Corriger
Pour résoudre cette erreur, procédez comme suit :
Vérifiez que vous avez bloqué l'adresse IP du client spécifique en procédant comme suit :
<ph type="x-smartling-placeholder"></ph>
en vérifiant les règles configurées dans Apigee Sense. S'il est bloqué,
cela indique qu'il fonctionne
comme prévu.
Si l'adresse IP du client spécifique n'est pas bloquée, mais que vous êtes
obtenez cette erreur, contactez l'assistance Apigee Edge.
protocol.http.* - Caused due to bad request
protocol.http.BadFormData
Code d'état HTTP :
500 Internal Server Error
Message d'erreur :
Bad Form Data
Cause possible :
Cette erreur se produit si et seulement si toutes les conditions suivantes sont remplies :
Requête HTTP envoyée par le client à Apigee Edge
contient:
<ph type="x-smartling-placeholder">
</ph>
Content-Type: application/x-www-form-urlencoded et
Données de formulaire avec le signe de pourcentage (%) ou le signe de pourcentage (%) suivi de caractères hexadécimaux non valides qui ne sont pas autorisés conformément àForms – Section 17.13.4.1 (en anglais).
Le proxy d'API dans Apigee Edge lit le formulaire spécifique
contenant des caractères non autorisés à l'aide de la propriété
ExtractVariables ou la règle AffectMessage dans le flux de requêtes.
Cette erreur se produit si un en-tête HTTP spécifique qui n'est pas autorisé à avoir des doublons
dans Apigee Edge, apparaît plusieurs fois avec des valeurs identiques ou différentes dans le cadre du
Requête HTTP envoyée par l'application cliente à Apigee Edge.
Assurez-vous que la requête HTTP envoyée par l'application cliente
à Apigee Edge contient toujours un nom d'en-tête valide, conformément
<ph type="x-smartling-placeholder"></ph>
RFC 7230, section 3.2: Header Fields.
protocol.http.HeaderNameWithNonAsciiChar
Code d'état HTTP :
400 Bad Request
Message d'erreur :
Header {header_name} contains non ascii character {character}
Cause possible :
Cette erreur se produit si le nom de l'en-tête envoyé dans la requête HTTP
par l'application cliente à Apigee Edge contient des caractères non-ASCII.
Assurez-vous que la requête HTTP du client est envoyée à
Apigee Edge ne contient pas de caractères non-ASCII dans les noms d'en-tête, conformément à la
<ph type="x-smartling-placeholder"></ph>
RFC 7230, section 3.2.6: Composants Valeur des champs.
protocol.http.HeaderWithInvalidChar
Code d'état HTTP :
400 Bad Request
Message d'erreur :
Header {header_name} contains invalid character {character}
Cause possible :
Cette erreur se produit si le nom de l'en-tête envoyé dans la requête HTTP
par l'application cliente à Apigee Edge contient des caractères non valides tels que
égal (=), virgule (,), point-virgule (;), tabulation, CRLF et saut de ligne.
Assurez-vous que la requête HTTP envoyée par l'application cliente à Apigee Edge ne fonctionne pas
contenir des caractères non valides dans les noms d'en-tête,
<ph type="x-smartling-placeholder"></ph>
RFC 7230, section 3.2.6: Composants des valeurs de champ
protocol.http.InvalidPath
Code d'état HTTP :
400 Bad Request
Message d'erreur :
Invalid path {path}
Cause possible :
Cette erreur se produit si le chemin d'accès dans l'URL de requête HTTP envoyée par l'application cliente
à Apigee Edge contient des caractères qui ne sont pas autorisés conformément à la spécification
RFC 3986, section 3.3: chemin d'accès.
Cette erreur se produit si la taille de la charge utile envoyée par l'application cliente
La requête HTTP envoyée à Apigee Edge est supérieure à la limite autorisée dans Apigee Edge.
Taille totale de tous les en-têtes de requête envoyés par le client
application dans la requête HTTP à Apigee Edge est supérieure à la limite autorisée
dans Apigee Edge.
Cette erreur se produit si la taille de la ligne de requête envoyée par l'application cliente
dans le cadre d'une requête HTTP adressée à Apigee Edge est supérieure à la limite autorisée dans
Apigee Edge.
Cette erreur se produit si l'en-tête Content-Encoding envoyé par le client
dans la réponse HTTP contient un format d'encodage/de charge utile qui n'est pas
<ph type="x-smartling-placeholder"></ph>
compatibles avec Apigee Edge.
Cette erreur se produit si l'URL de requête du serveur backend, représentée par la variable de flux target.url, contient un chemin commençant par un point d'interrogation (?) au lieu d'une barre oblique (/), qui est non valide.
Cette erreur se produit si l'en-tête HTTP spécifique qui n'est pas autorisé à avoir des doublons
dans Apigee Edge, apparaît plusieurs fois avec des valeurs identiques ou différentes dans le cadre
la réponse HTTP envoyée par le serveur
backend à Apigee Edge.
Vérifier que la réponse HTTP envoyée par le backend
à Apigee Edge contient toujours un nom d'en-tête valide, conformément
<ph type="x-smartling-placeholder"></ph>
RFC 7230, section 3.2: Header Fields.
protocol.http.EmptyPath
Code d'état HTTP :
500 Internal Server Error
Message d'erreur :
Request path cannot be empty
Cause possible :
Cette erreur se produit si l'URL de requête HTTP du serveur backend, représentée par la variable de flux target.url, contient un chemin vide.
Header {header_name} contains non ascii character {character}
Cause possible :
Cette erreur se produit si le nom d'en-tête envoyé par le serveur backend dans le cadre de la réponse HTTP à Apigee Edge contient des caractères non-ASCII.
Assurez-vous que la réponse HTTP du serveur backend est envoyée à
Apigee Edge ne contient pas de caractères non-ASCII dans les noms d'en-tête, conformément à la
<ph type="x-smartling-placeholder"></ph>
RFC 7230, section 3.2.6: Composants Valeur des champs.
protocol.http.HeaderWithInvalidChar
Code d'état HTTP :
502 Bad Gateway
Message d'erreur :
Header {header_name} contains invalid character {character}
Cause possible :
Cette erreur se produit si le nom d'en-tête envoyé par le serveur backend dans le cadre de la réponse HTTP contient des caractères non valides, tels que égal (=), virgule (,), point-virgule (;), tabulation, CRLF et caractère de nouvelle ligne.
Proxy refused to create tunnel with response status {status code}
Cause possible :
Cette erreur se produit lors de la création du tunnel entre Apigee Edge et le
serveur backend par le serveur proxy en raison des paramètres de pare-feu, de liste de contrôle d'accès, de DNS
la disponibilité du serveur backend, etc.
Remarque : Le code d'état du message d'erreur (faultstring) fournit la cause de haut niveau du problème.
Response Status code 306 is reserved, so can't be used.
Cause possible :
Cette erreur se produit si le serveur backend a répondu avec
Code d'état 306 à Apigee Edge.
Le code d'état 306 a été défini dans une version précédente de la spécification HTTP. Conformément à la spécification HTTP actuelle, ce code est réservé et ne doit pas être utilisé.
Cette erreur se produit si la réponse HTTP du serveur backend à Apigee Edge est
soit 204 No Content, soit
205 Reset Content, mais elle contient les
corps de réponse et/ou un ou plusieurs des en-têtes suivants:
Cette erreur se produit si la taille de la charge utile envoyée par l'application cliente
La requête HTTP envoyée à Apigee Edge est supérieure à la limite autorisée dans Apigee Edge.
Cette erreur se produit si la taille totale de tous les en-têtes de réponse envoyés par
serveur backend dans la réponse HTTP à Apigee Edge est supérieure à
limite autorisée dans Apigee Edge.
Cette erreur se produit si la taille de la ligne de réponse envoyée par le serveur backend en tant que
partie de la réponse HTTP à Apigee Edge est supérieure à la limite autorisée dans Apigee
Périphérie.
Cette erreur se produit si l'en-tête Content-Encoding envoyé par
serveur backend dans la réponse HTTP contient l'encodage/la charge utile
format qui n'est pas
<ph type="x-smartling-placeholder"></ph>
compatibles avec Apigee Edge.
KeyAlias {KeyAlias_name} is not found in
Keystore {Keystore_Name}
Cause possible :
Cette erreur se produit si l'élément KeyAlias référencé dans le TargetEndpoint ou le TargetServer est introuvable dans le keystore spécifique.
Corriger
Assurez-vous que le KeyAlias spécifié dans le TargetEndpoint ou le TargetServer existe et qu'il fait partie du Keystore spécifique.
security.util.TrustStoreWithNoCertificates
Code d'état HTTP :
500 Internal Server Error
Message d'erreur :
TrustStore {truststore_name} has no certificates
Cause possible :
Cette erreur se produit si le truststore spécifique référencé dans le TargetEndpoint ou le TargetServer ne contient aucun certificat.
Corriger
Si vous souhaitez valider le certificat du serveur backend et utiliser le truststore dans un TargetEndpoint ou un TargetServer, assurez-vous que le Truststore contient les certificats valides du serveur backend.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/04/10 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/04/10 (UTC)."],[],[]]