Wenn API-Anfragen über Apigee Edge erfolgen, können die Apigee Edge-Komponenten Router und Message Processor oder die Back-End-Server Fehler an die Clientanwendungen zurückgeben.
Fehler vom Message Processor
Der Nachrichtenprozessor ist die Kernkomponente von Apigee Edge, die die Richtlinien verarbeitet und mit den Back-End-Servern interagiert. Er kann Fehler zurückgeben, wenn folgende Probleme auftreten:
Probleme mit der Netzwerkverbindung, TLS-Handshake-Fehler, Nichtverfügbarkeit des Backend-Servers, fehlende Antwort während der Kommunikation mit dem Backend-Server
Fehler während der Ausführung der Richtlinie
Ungültige HTTP-Header, Codierung, Pfad, Nichteinhaltung von HTTP-Spezifikationen, Überschreitung von Produktlimits usw.:
Mit den von den Clientanwendungen gesendeten HTTP-Anfragen
OR
Mit der vom Backend-Server gesendeten HTTP-Antwort
Und vieles mehr
Beispielfehler vom Message Processor
Der Message Processor gibt immer einen HTTP-Statuscode gefolgt von einer Fehlermeldung sowie einem Fehlercode im JSON-Format zurück, wie unten gezeigt:
Die Clientanwendung erhält einen Antwortcode wie im folgenden Beispiel:
HTTP/1.1 414 Request-URI Too Long
Eine Fehlermeldung des Message Processors wird im folgenden Format angezeigt:
Enthält die Fehlermeldung, die die mögliche Ursache für den Fehler beschreibt
errorcode
Fehlercode, der mit dem Fehler verknüpft ist
Laufzeitfehlerkatalog
Dieser Fehlerkatalog enthält alle Informationen, die Sie über die Laufzeitfehlercodes (für nicht richtlinienbezogene Fehler) benötigen, die von der Apigee Edge Message Processor-Komponente zurückgegeben werden. Sie enthält die folgenden Informationen zu den einzelnen Fehlercodes:
Playbooks und Videos, die Anleitungen zur Diagnose der Fehlerursache und effektive Lösungen enthalten, mit denen Sie den Fehler selbst beheben können (falls verfügbar)
Fehlerkorrektur, um den Fehler selbst zu beheben
Die folgenden Fehlercode-Kategorien werden behandelt:
Verwenden Sie das Feld Suchen unten, um die Tabelle so zu filtern, dass die obigen Informationen für einen bestimmten Fehlercode angezeigt werden. Sie können in jedem Feld der Tabelle nach dem Statuscode oder einem beliebigen Inhalt suchen.
searchSuche
Fehlercode
Beschreibung
Korrigieren
flow.*
flow.APITimedOut
HTTP-Statuscode:
504 Gateway Timeout
Fehlermeldung:
API timed out
Mögliche Ursache:
Dieser Fehler tritt in folgenden Fällen auf:
Der Backend-Server antwortet nicht innerhalb des Zeitlimits, das vom Attribut api.timeout für den jeweiligen API-Proxy konfiguriert wurde.
Eine Richtlinie dauert aufgrund rechenintensiver Vorgänge, hoher Last oder schlechter Leistung sehr lange.
Hinweis:In diesem Playbook finden Sie eine Anleitung zur Fehlerbehebung beim Fehlercode messaging.adaptors.http.flow.GatewayTimeout. Sie können das Playbook jedoch auch verwenden, um den Fehlercode flow.APITimedOut zu beheben.
Die im HTTP-Anfrage-Header angegebene Codierung Content-Encoding ist gültig und wird von
Apigee Edge unterstützt.
ABER
Das Nutzlastformat, das vom Client als Teil der HTTP-Anfrage gesendet wird, stimmt nicht mit dem im Content-Encoding-Header angegebenen Codierungsformat überein
Die im HTTP-Antwortheader Content-Encoding des Backend-/Zielservers angegebene Codierung ist gültig und wird von
Apigee Edge unterstützt.
ABER
Das vom Backend-/Zielserver als Teil der HTTP-Antwort gesendete Nutzlastformat entspricht nicht dem im Header Content-Encoding angegebenen Codierungsformat
Die Fehlermeldung und das Format können je nach Implementierung des Backend-Servers variieren.
Mögliche Ursache:
Dieser Fehler tritt auf, wenn der Backend-Server Apigee Edge mit dem Statuscode 504 antwortet.
Hinweis: Der Fehlercode messaging.adaptors.http.flow.ErrorResponseCode wird nicht als Teil der Fehlermeldung zurückgegeben, die an die Clientanwendungen gesendet wird. Dies liegt daran, dass dieser Fehlercode von Apigee Edge immer dann festgelegt wird, wenn der Back-End-Server mit einem Fehler und einem der Statuscodes 4XX oder 5XX antwortet. Sie können diesen Fehlercode in API-Monitoring, NGINX-Zugriffslogs oder Analysedatenbank ansehen.
messaging.adaptors.http.flow.GatewayTimeout
HTTP-Statuscode:
504 Gateway Timeout
Fehlermeldung:
Gateway Timeout
Mögliche Ursache:
Dieser Fehler tritt auf, wenn der Backend-Server nicht innerhalb des auf dem Message Processor konfigurierten
I/O-Zeitlimits auf den Apigee Edge Message Processor antwortet.
Dieser Fehler tritt auf, wenn der Content-Length-Header von der Clientanwendung nicht als Teil der an Apigee Edge gesendeten HTTP POST- und PUT-Anfragen übergeben wird.
Hinweis: Die Anfragen, die wegen dieses Fehlers fehlschlagen, können mit dem Trace-Tool nicht erfasst werden, da der Message Processor diese Validierung in einer sehr frühen Phase durchführt, lange bevor die Anfrage verarbeitet und eine Richtlinie im API-Proxy ausgeführt wird.
Führen Sie folgende Schritte aus, um diesen Fehler zu beheben:
Achten Sie darauf, dass die Clientanwendung immer den Header Content-Length als Teil der HTTP-Anfragen POST und PUT übergibt, die an Apigee Edge gesendet werden. Beispiel:
curl -X POST https://HOSTALIAS/PATH -d '{"name": "abc"}' -H "Content-Length: 15"
Auch wenn Sie eine leere Nutzlast mit POST- und PUT-Anfragen übergeben, müssen Sie darauf achten, dass der Header Content-Length: 0 übergeben wird. Beispiel:
curl -X POST https://HOSTALIAS/PATH -H "Content-Length: 0"
messaging.adaptors.http.flow.NoActiveTargets
HTTP-Statuscode:
503 Service Unavailable
Fehlermeldung:
The Service is temporarily unavailable
Mögliche Ursache:
Dieser Fehler tritt in einem der folgenden Szenarien auf, wenn Sie
TargetServer in Apigee Edge verwenden:
Die falsche DNS-Auflösung des Backend-Serverhosts durch den benutzerdefinierten Autorisierungsserver hat zu fehlerhaften IP-Adressen geführt, die zu Verbindungsfehlern führt.
Zeitüberschreitungsfehler bei der Verbindung aufgrund von:
Die Firewalleinschränkung auf dem Backend-Server hindert Apigee Edge daran, eine Verbindung zum Backend-Server herzustellen.
Probleme mit der Netzwerkverbindung zwischen Apigee Edge und dem Backend-Server.
Der im TargetServer angegebene Host ist falsch oder enthält unerwünschte Zeichen (z. B. ein Leerzeichen).
Dieser Fehler tritt auf, wenn der Apigee Edge Message Processor die Nutzlast der Anfrage von der Clientanwendung für den auf der Message Processor-Komponente konfigurierten
E/A-Zeitüberschreitungszeitraum nicht empfängt.
Korrigieren
Achten Sie darauf, dass die Clientanwendung die Anfragenutzlast innerhalb des
E/A-Zeitlimits sendet, das in der Message Processor-Komponente von Apigee Edge konfiguriert ist.
messaging.adaptors.http.flow.ServiceUnavailable
HTTP-Statuscode:
503 Service Unavailable
Fehlermeldung:
The Service is temporarily unavailable
Mögliche Ursache:
Dieser Fehler tritt in einem der folgenden Szenarien auf:
Die falsche DNS-Auflösung des Backend-Serverhosts durch den benutzerdefinierten Autorisierungsserver hat zu fehlerhaften IP-Adressen geführt, die zu Verbindungsfehlern führt.
Zeitüberschreitungsfehler bei der Verbindung aufgrund von:
Die Firewalleinschränkung auf dem Backend-Server verhindert, dass Apigee Edge eine Verbindung zum Backend-Server herstellt.
Probleme mit der Netzwerkverbindung zwischen Apigee Edge und dem Backend-Server.
Der im Zielendpunkt angegebene Zielserverhost ist falsch oder enthält unerwünschte Zeichen (z. B. Leerzeichen).
Dieser Fehler kann auch auftreten, wenn der Backend-Server die Verbindung vorzeitig beendet, während der Message Processor weiterhin die Anfragenutzlast an den Backend-Server sendet.
Dieser Fehler tritt auf, wenn Apigee Edge die Anfrage aus folgenden Gründen nicht an einen der TargetEndpoints weiterleiten kann:
Es gibt keine Bedingung für eine Routingregel (<RouteRule>), die der Anfrage in einem Proxy entspricht
AND
Im ProxyEndpoint ist keine Standardroutingregel definiert, d. h. <RouteRule> ohne Bedingung
Korrigieren
So beheben Sie diesen Fehler:
Prüfen Sie die in Ihrem ProxyEndpoint definierten Routingregeln und ändern Sie sie, um sicherzustellen, dass mindestens eine Bedingung der Routingregel vorhanden ist, die Ihrer Anfrage entspricht.
Es empfiehlt sich, eine Standard-Routingregel ohne Bedingung zu definieren, wenn Sie mehrere RouteRules haben.
Achten Sie darauf, dass die Standard-Routingregel als letzte in der Liste der bedingten Routen definiert ist, da die Regeln im ProxyEndpoint von oben nach unten ausgewertet werden.
Weitere Informationen zum Definieren von <RouteRule>-Bedingungen in einem ProxyEndpoint finden Sie unter
Bedingte Ziele.
messaging.runtime.SenseRaiseFault
HTTP-Statuscode:
403 Forbidden
Fehlermeldung:
Sense Fault
Mögliche Ursache:
Dieser Fehler tritt auf, wenn eine API-Anfrage von einer bestimmten Client-IP-Adresse erfolgt, die gemäß den Apigee Sense-Regeln blockiert ist.
Wenn die IP-Adresse des Clients nicht blockiert ist, Sie aber weiterhin diese Fehlermeldung erhalten, wenden Sie sich an den Apigee Edge-Support.
protocol.http.* - Caused due to bad request
protocol.http.BadFormData
HTTP-Statuscode:
500 Internal Server Error
Fehlermeldung:
Bad Form Data
Mögliche Ursache:
Dieser Fehler tritt nur dann auf, wenn alle folgenden Bedingungen erfüllt sind:
Die HTTP-Anfrage, die vom Client an Apigee Edge gesendet wird, enthält Folgendes:
Content-Type: application/x-www-form-urlencoded, und
Formulardaten mit dem Prozentzeichen (%) oder dem Prozentzeichen (%), gefolgt von ungültigen Hexadezimalzeichen, die nicht gemäß der Formulare – Abschnitt 17.13.4.1 zulässig sind.
Der API-Proxy in Apigee Edge liest die spezifischen Formularparameter, die alle Zeichen enthalten, die nicht mit der ExtractVariables- oder der AssignMessage-Richtlinie im Anfrageablauf zulässig sind.
Dieser Fehler tritt auf, wenn ein bestimmter HTTP-Header, der keine Duplikate in Apigee Edge haben darf, mehrmals mit denselben oder unterschiedlichen Werten als Teil der HTTP-Anfrage auftritt, die von der Clientanwendung an Apigee Edge gesendet wird.
Achten Sie darauf, dass die von der Clientanwendung an Apigee Edge gesendete HTTP-Anfrage immer einen gültigen Headernamen gemäß
RFC 7230, Abschnitt 3.2: Headerfelder enthält.
protocol.http.HeaderNameWithNonAsciiChar
HTTP-Statuscode:
400 Bad Request
Fehlermeldung:
Header {header_name} contains non ascii character {character}
Mögliche Ursache:
Dieser Fehler tritt auf, wenn der Headername, der als Teil der HTTP-Anfrage von der Clientanwendung an Apigee Edge gesendet wurde, Nicht-ASCII-Zeichen enthält.
Header {header_name} contains invalid character {character}
Mögliche Ursache:
Dieser Fehler tritt auf, wenn der Headername als Teil der HTTP-Anfrage von der Clientanwendung an Apigee Edge ungültige Zeichen wie gleich (=), Komma (,), Semikolon (;), Tab, CRLF enthält, und einen Zeilenumbruch.
Dieser Fehler tritt auf, wenn der Pfad in der von der Clientanwendung an Apigee Edge gesendeten HTTP-Anfrage-URL Zeichen enthält, die gemäß der Spezifikation RFC 3986, Abschnitt 3.3: Pfad nicht zulässig sind.
Achten Sie darauf, dass der Pfad in der von der Clientanwendung an Apigee Edge gesendeten HTTP-Anfrage-URL keine Zeichen enthält, die gemäß
RFC 3986, Abschnitt 3.3: Pfad nicht zulässig sind.
protocol.http.TooBigBody
HTTP-Statuscode:
413 Request Entity Too Large
Fehlermeldung:
Body buffer overflow
Mögliche Ursache:
Dieser Fehler tritt auf, wenn die Nutzlastgröße, die von der Clientanwendung als Teil der HTTP-Anfrage an Apigee Edge gesendet wird, größer als die in Apigee Edge zulässige Grenze ist.
Die Gesamtgröße aller Anfrageheader, die von der Clientanwendung als Teil der HTTP-Anfrage an Apigee Edge gesendet werden, ist größer als das in Apigee Edge zulässige Limit.
Dieser Fehler tritt auf, wenn die Größe der Anfragezeile, die von der Clientanwendung als Teil der HTTP-Anfrage an Apigee Edge gesendet wird, das zulässige Limit in Apigee Edge überschreitet.
Dieser Fehler tritt auf, wenn der Content-Encoding-Header, der vom Client als Teil der HTTP-Antwort gesendet wird, ein Codierungs-/Nutzlastformat enthält, das von
Apigee Edge nicht unterstützt wird.
Dieser Fehler tritt auf, wenn die Anfrage-URL des Backend-Servers, die durch die Flussvariable target.url dargestellt wird, einen Pfad enthält, der mit einem Fragezeichen (?) anstelle eines Schrägstrichs (/) beginnt, was ungültig ist.
Dieser Fehler tritt auf, wenn der spezifische HTTP-Header, der in Apigee Edge keine Duplikate enthalten darf, als Teil der HTTP-Antwort, die vom Back-End-Server an Apigee Edge gesendet wird, mehr als einmal mit denselben oder unterschiedlichen Werten erscheint.
Achten Sie darauf, dass die vom Backend-Server an Apigee Edge gesendete HTTP-Antwort immer einen gültigen Headernamen gemäß
RFC 7230, Abschnitt 3.2: Headerfelder enthält.
protocol.http.EmptyPath
HTTP-Statuscode:
500 Internal Server Error
Fehlermeldung:
Request path cannot be empty
Mögliche Ursache:
Dieser Fehler tritt auf, wenn die HTTP-Anfrage-URL des Backend-Servers, dargestellt durch die Ablaufvariable target.url, einen leeren Pfad enthält.
Header {header_name} contains non ascii character {character}
Mögliche Ursache:
Dieser Fehler tritt auf, wenn der Header-Name, der vom Backend-Server als Teil der HTTP-Antwort an Apigee Edge gesendet wurde, Nicht-ASCII-Zeichen enthält.
Header {header_name} contains invalid character {character}
Mögliche Ursache:
Dieser Fehler tritt auf, wenn der Headername, der vom Backend-Server als Teil der HTTP-Antwort gesendet wurde, ungültige Zeichen wie Gleich (=), Komma (,), Semikolon (;), Tab, CRLF und einen Zeilenumbruch enthält.
Proxy refused to create tunnel with response status {status code}
Mögliche Ursache:
Dieser Fehler tritt während der Erstellung des Tunnels zwischen Apigee Edge und dem Backend-Server durch den Proxyserver aufgrund von Firewall, ACL (Access Control List), DNS-Problemen, Verfügbarkeit der Verfügbarkeit des Backend-Servers usw. auf.
Hinweis: Der Statuscode in der Fehlermeldung (faultstring) stellt die allgemeine Ursache des Problems dar.
Response Status code 306 is reserved, so can't be used.
Mögliche Ursache:
Dieser Fehler tritt auf, wenn der Backend-Server mit Apigee Edge den Statuscode 306 zurückgegeben hat.
Der Statuscode 306 wurde in einer früheren Version der HTTP-Spezifikation definiert. Gemäß der aktuellen HTTP-Spezifikation ist dieser Code reserviert und sollte nicht verwendet werden.
Dieser Fehler tritt auf, wenn die HTTP-Antwort vom Backend-Server an Apigee Edge entweder 204 No Content oder 205 Reset Content lautet, aber den Antworttext und/oder einen oder mehrere der folgenden Header enthält:
Dieser Fehler tritt auf, wenn die Nutzlastgröße, die von der Clientanwendung als Teil der HTTP-Anfrage an Apigee Edge gesendet wird, größer als die in Apigee Edge zulässige Grenze ist.
Dieser Fehler tritt auf, wenn die Gesamtgröße aller Antwortheader, die vom Back-End-Server als Teil der HTTP-Antwort an Apigee Edge gesendet werden, das zulässige Limit in Apigee Edge überschreitet.
Dieser Fehler tritt auf, wenn die Größe der vom Backend-Server als Teil der HTTP-Antwort an Apigee Edge gesendeten Antwortzeile das zulässige Limit in Apigee Edge überschreitet.
Dieser Fehler tritt auf, wenn der Content-Encoding-Header, der vom Backend-Server als Teil der HTTP-Antwort gesendet wird, das Codierungs-/Nutzlastformat enthält, das von
Apigee Edge nicht unterstützt wird.
KeyAlias {KeyAlias_name} is not found in
Keystore {Keystore_Name}
Mögliche Ursache:
Dieser Fehler tritt auf, wenn der spezifische KeyAlias, auf den im TargetEndpoint oder TargetServer verwiesen wird, nicht im spezifischen Keystore gefunden wird.
Korrigieren
Achten Sie darauf, dass der im TargetEndpoint oder TargetServer angegebene KeyAlias vorhanden ist und Teil des spezifischen Keystores ist.
security.util.TrustStoreWithNoCertificates
HTTP-Statuscode:
500 Internal Server Error
Fehlermeldung:
TrustStore {truststore_name} has no certificates
Mögliche Ursache:
Dieser Fehler tritt auf, wenn der Truststore, auf den im TargetEndpoint oder TargetServer verwiesen wird, keine Zertifikate enthält.
Korrigieren
Wenn Sie das Zertifikat des Backend-Servers validieren und den Truststore in einem TargetEndpoint oder TargetServer verwenden möchten, prüfen Sie, ob der Truststore die gültigen Zertifikate des Backend-Servers enthält.
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2024-11-08 (UTC)."],[],[]]