Wenn API-Anfragen über Apigee erfolgen, können die Apigee-Komponenten Router und Message Processors oder die Backend-Server Fehler an die Clientanwendungen zurückgeben.
Fehler vom Message Processor
Der Message Processor ist die Kernkomponente von Apigee, die die Richtlinien verarbeitet und mit den Backend-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 504 Gateway Timeout
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
reason
Enthält eine Nachricht, die den möglichen Grund für den Fehler angibt
Laufzeitfehlerkatalog
Dieser Fehlerkatalog enthält alle Informationen zu den Laufzeitfehlercodes (für Fehler außerhalb von Richtlinien), die von der Apigee Message Processor-Komponente zurückgegeben werden. Sie enthält die folgenden Informationen zu den einzelnen Fehlercodes:
HTTP-Statuscode
Fehlermeldung
Grund für den Fehler (nicht alle Fehlermeldungen zeigen ein reason) an
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.
flow.SharedFlowNotFound
HTTP-Statuscode:
500 Internal Server Error
Fehlermeldung:
Shared Flow {shared_flow_name} Not Found
Mögliche Ursache:
Dieser Fehler tritt auf, wenn der spezifische freigegebene Ablauf:
Die im HTTP-Anfrage-Header angegebene Codierung Content-Encoding ist gültig und wird von Apigee 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 angegebene Codierung des Backend-/Zielservers ist gültig und wird von Apigee unterstützt.
ABER
Das vom Backend-/Zielserver als Teil der HTTP-Antwort gesendete Nutzlastformat entspricht nicht dem im Header Content-Encoding angegebenen Codierungsformat
messaging.adaptors.http.flow.ErrorResponseCode
HTTP-Statuscode:
500
Fehlermeldung:
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 mit dem Statuscode 500 antwortet.
HTTP-Statuscode:
503
Fehlermeldung:
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 mit dem Statuscode 503 antwortet.
HTTP-Statuscode:
504
Fehlermeldung:
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 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 festgelegt wird, wenn der Backend-Server mit einem Fehler und einem der Statuscodes 4XX oder 5XX antwortet. Sie können diesen Fehlercode in der API-Überwachungs- oder Analysedatenbank anzeigen lassen.
messaging.adaptors.http.flow.GatewayTimeout
HTTP-Statuscode:
504 Gateway Timeout
Fehlermeldung:
Gateway Timeout
Grund:
TARGET_READ_TIMEOUT
Mögliche Ursache:
Dieser Fehler tritt auf, wenn der Backend-Server nicht innerhalb des auf dem Message Processor konfigurierten E/A-Zeitlimits auf den Apigee Message Processor antwortet.
messaging.adaptors.http.flow.LengthRequired
HTTP-Statuscode:
411 Length Required
Fehlermeldung:
'Content-Length' is missing
Grund:
CLIENT_REQUEST_CONTENT_LENGTH_REQUIRED
Mögliche Ursache:
Dieser Fehler tritt auf, wenn der Content-Length-Header von der Clientanwendung nicht als Teil der an Apigee 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 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
Grund:
TARGET_HEALTHCHECK_CONNECT_TIMEOUT
TARGET_HEALTHCHECK_CONNECTION_REFUSED
TARGET_HEALTHCHECK_HTTPS_REQUEST_OVER_HTTP
TARGET_HEALTHCHECK_UNEXPECTED_EOF
Mögliche Ursache:
Dieser Fehler tritt in einem der folgenden Szenarien auf, wenn Sie TargetServer in Apigee 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 verhindert, dass Apigee eine Verbindung zum Backend-Server herstellt.
Probleme mit der Netzwerkverbindung zwischen dem Apigee- und dem Backend-Server.
Der im TargetServer angegebene Host ist falsch oder enthält unerwünschte Zeichen (z. B. ein Leerzeichen).
Dieser Fehler kann auch auftreten, wenn die Systemdiagnosen, die für das Monitoring der Systemdiagnose der Zielserver konfiguriert sind, fehlschlagen.
messaging.adaptors.http.flow.RequestTimeOut
HTTP-Statuscode:
408 Request Timeout
Fehlermeldung:
Request timed out
Grund:
CLIENT_READ_TIMEOUT
Mögliche Ursache:
Dieser Fehler tritt auf, wenn der Apigee 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 Nutzlast der Anfrage innerhalb des E/A-Zeitlimits sendet, das in der Message Processor-Komponente von Apigee konfiguriert wurde.
messaging.adaptors.http.flow.ServiceUnavailable
HTTP-Statuscode:
503 Service Unavailable
Fehlermeldung:
The Service is temporarily unavailable
Grund:
TARGET_CONNECT_TIMEOUT
TARGET_WRITE_BROKEN_PIPE
TARGET_WRITE_CONNECTION_RESET_BY_PEER
TARGET_CONNECT_CONNECTION_REFUSED
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 eine Verbindung zum Backend-Server herstellt.
Probleme mit der Netzwerkverbindung zwischen dem Apigee- 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.
messaging.adaptors.http.flow.SslHandshakeFailed
HTTP-Statuscode:
503 Service Unavailable
Fehlermeldung:
SSL Handshake failed {error_message}
Mögliche Ursache:
Dieser Fehler tritt während des SSL-Handshake-Prozesses zwischen dem Message Processor von Apigee und dem Backend-Server auf, wenn:
Der Truststore des Message Processors von Apigee:
Eine Zertifikatskette enthält, die nicht mit der vollständigen Zertifikatskette des Backend-Servers übereinstimmt
OR
Nicht die vollständige Zertifikatskette des Backend-Servers enthält
The certificate chain presented by the backend server:
Enthält einen vollständig qualifizierten Domainnamen (FQDN), der nicht mit dem im Zielendpunkt angegebenen Hostnamen übereinstimmt
OR
Enthält eine falsche/unvollständige Zertifikatskette
Der Backend-Server lehnt die von Apigee verwendete TLS-Version ab.
Wenn der Back-End-Server beispielsweise nur TLS-Version 1.3 akzeptiert, aber auf dem Zielserver auf Apigee-Seite die TLS-Version 1.2 im Feld TLS Protocol festgelegt ist (oder gar keine TLS-Version festgelegt ist, In diesem Fall verwendet Apigee derzeit nicht TLS-Version 1.3 als Standard), schlägt die Verbindung aufgrund einer nicht übereinstimmenden Protokollversion fehl.
Dieser Fehler tritt in einem der folgenden Szenarien auf:
TargetServer ist nicht ordnungsgemäß für die Unterstützung von TLS/SSL-Verbindungen in Apigee konfiguriert.
Der Backend-Server kann die Verbindung abrupt schließen, während Apigee auf eine Antwort vom Backend-Server wartet.
Behalten Sie auf Apigee und auf dem Backend-Server falsch konfigurierte Zeitüberschreitungen bei.
messaging.runtime.*
messaging.runtime.RouteFailed
HTTP-Statuscode:
500 Internal Server Error
Fehlermeldung:
Unable to route the message to a TargetEndpoint
Mögliche Ursache:
Dieser Fehler tritt auf, wenn Apigee 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.
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 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 liest die spezifischen Formularparameter, die alle Zeichen enthalten, die nicht mit der ExtractVariables oder der AssignMessage-Richtlinie im Anfrageablauf zulässig sind.
protocol.http.DuplicateHeader
HTTP-Statuscode:
400 Bad Request
Fehlermeldung:
Duplicate Header "{header_name}"
Mögliche Ursache:
Dieser Fehler tritt auf, wenn ein bestimmter HTTP-Header, der keine Duplikate in Apigee haben darf, mehrmals mit denselben oder unterschiedlichen Werten als Teil der HTTP-Anfrage auftritt, die von der Clientanwendung an Apigee gesendet wird.
Achten Sie darauf, dass die von der Clientanwendung an Apigee 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 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 ungültige Zeichen wie gleich (=), Komma (,), Semikolon (;), Tab, CRLF enthält, und einen Zeilenumbruch.
Dabei ist {hostname} dynamisch und der Wert ändert sich in Bezug auf den angegebenen Hostnamen.
Grund:
TARGET_CONNECT_HOST_NOT_REACHABLE
Mögliche Ursache:
Dieser Fehler tritt auf, wenn der angegebene Zielserverhost falsch ist oder unerwünschte Zeichen (z. B. Leerzeichen) enthält.
protocol.http.InvalidPath
HTTP-Statuscode:
400 Bad Request
Fehlermeldung:
Invalid path {path}
Mögliche Ursache:
Dieser Fehler tritt auf, wenn der Pfad in der von der Clientanwendung an Apigee 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 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 gesendet wird, größer als die in Apigee zulässige Grenze ist.
Die Gesamtgröße aller Anfrageheader, die von der Clientanwendung als Teil der HTTP-Anfrage an Apigee gesendet werden, ist größer als das in Apigee zulässige Limit.
Dieser Fehler tritt auf, wenn die Größe der Anfragezeile, die von der Clientanwendung als Teil der HTTP-Anfrage an Apigee gesendet wird, das zulässige Limit in Apigee ü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 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 keine Duplikate enthalten darf, mehr als einmal mit denselben oder unterschiedlichen Werten als Teil der vom Backend-Server an Apigee gesendeten HTTP-Antwort auftaucht.
Achten Sie darauf, dass die vom Backend-Server an Apigee 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 und dem Backend-Server durch den Proxyserver aufgrund von Firewall, ACL (Access Control List), DNS-Problemen, Verfügbarkeit des Backend-Servers usw. auf.
Hinweis: Der Statuscode in der Fehlermeldung (faultstring) stellt die allgemeine Ursache des Problems dar.
protocol.http.Response306Reserved
HTTP-Statuscode:
502 Bad Gateway
Fehlermeldung:
Response Status code 306 is reserved, so can't be used.
Mögliche Ursache:
Dieser Fehler tritt auf, wenn der Backend-Server mit Apigee 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 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 gesendet wird, größer als die in Apigee zulässige Grenze ist.
Dieser Fehler tritt auf, wenn die Gesamtgröße aller Antwortheader, die vom Backend-Server als Teil der HTTP-Antwort an Apigee gesendet wurden, das zulässige Limit in Apigee überschreitet.
Dieser Fehler tritt auf, wenn die Größe der vom Backend-Server als Teil der HTTP-Antwort an Apigee gesendeten Antwortzeile das zulässige Limit in Apigee Edge überschreitet.
Dieser Fehler tritt auf, wenn der Header Content-Encoding, der vom Backend-Server als Teil der HTTP-Antwort gesendet wird, das Codierungs-/Nutzlastformat enthält, das von Apigee 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"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2024-05-21 (UTC)."],[],[]]