Gdy żądania do interfejsu API są wysyłane przez Apigee Edge, routery komponentów Edge i procesory wiadomości lub backend
serwery mogą zwracać błędy aplikacjom klienckim.
Błędy procesora wiadomości
Procesor wiadomości to podstawowy komponent Apigee Edge, który przetwarza zasady i
współdziała z serwerami backendu. Może zwrócić błędy, jeśli wykryje problemy takie jak:
Problemy z połączeniem sieciowym, błędy uzgadniania połączenia TLS, niedostępność serwera backendu
brak odpowiedzi w trakcie komunikacji z serwerem backendu
Błędy podczas wykonywania zasady
Nieprawidłowe nagłówki HTTP, kodowanie, ścieżka, brak zgodności ze specyfikacją HTTP, przekroczenie
limity produktów itp.:
Żądanie HTTP wysyłane przez aplikacje klienckie
LUB
Odpowiedź HTTP wysyłana przez serwer backendu
I wiele więcej
Przykładowy błąd z procesora wiadomości
Procesor wiadomości zawsze zwraca kod stanu HTTP, po którym następuje komunikat o błędzie wraz z
z kodem błędu w formacie JSON, jak poniżej:
Aplikacja kliencka otrzymuje kod odpowiedzi podobny do tego:
HTTP/1.1414Request-URI Too Long
Odpowiedź o błędzie z procesora wiadomości ma następujący format:
Zawiera komunikat o błędzie opisujący możliwą przyczynę błędu
errorcode
Kod błędu (nazywany też kodem błędu) powiązany z parametrem
błąd
Katalog błędów środowiska wykonawczego
Ten katalog błędów zawiera wszystkie informacje o środowisku wykonawczym
kody błędów (w przypadku błędów niezwiązanych z zasadami) zwracane przez Apigee Edge Message
Komponent procesora. Zawiera on następujące informacje dla każdego kodu błędu:
Kod stanu HTTP
Komunikat o błędzie
Możliwe przyczyny błędu
wszelkie powiązane specyfikacje HTTP lub limity produktów.
Poradniki i filmy zawierające instrukcje diagnozowania przyczyny błędu oraz
skutecznych rozwiązań, które można zastosować w celu samodzielnego usunięcia błędu (jeśli są dostępne).
Popraw, który możesz zastosować, aby samodzielnie naprawić błąd
Użyj pola Szukaj poniżej, aby przefiltrować tabelę i wyświetlić powyższe informacje
dla konkretnego kodu błędu. Możesz wyszukać kod stanu lub dowolną treść w dowolnym polu
w tabeli.
searchSieć wyszukiwania
Kod błędu
Opis
Napraw
flow.*
flow.APITimedOut
Kod stanu HTTP:
504 Gateway Timeout
Komunikat o błędzie:
API timed out
Możliwa przyczyna:
Ten błąd występuje, jeśli:
Serwer backendu nie odpowiada w skonfigurowanym okresie oczekiwania
przez obiekt
api.timeout dla określonego serwera proxy interfejsu API.
Działanie zasady trwa bardzo długo z powodu operacji intensywnie obliczeniowych, wysokie
lub niskiej wydajności.
Uwaga: ten poradnik zawiera instrukcje rozwiązywania problemów z kodem błędu.
messaging.adaptors.http.flow.GatewayTimeout; jednak możesz użyć
za pomocą tego samego poradnika do rozwiązywania problemów z kodem błędu flow.APITimedOut.
Komunikat o błędzie i jego format mogą się różnić w zależności od serwera backendu
implementacji.
Możliwa przyczyna:
Ten błąd występuje, jeśli serwer backendu odpowiada za pomocą stanu
z kodem 504 do Apigee Edge.
Uwaga: kod błędu
Nie zwrócono: messaging.adaptors.http.flow.ErrorResponseCode
jako część komunikatu o błędzie
wysyłanego do aplikacji klienckich. To jest
ponieważ ten kod błędu jest ustawiany przez Apigee Edge za każdym razem, gdy serwer backendu
odpowiada z błędem i dowolnym z 4XX lub 5XX
kodów stanu. Ten kod błędu możesz wyświetlić w usłudze API Monitoring, logach dostępu NGINX
czy bazy danych analitycznych.
messaging.adaptors.http.flow.GatewayTimeout
Kod stanu HTTP:
504 Gateway Timeout
Komunikat o błędzie:
Gateway Timeout
Możliwa przyczyna:
Ten błąd występuje, gdy serwer backendu nie odpowiada
do procesora wiadomości brzegowych Apigee w
Limit czasu wejścia-wyjścia skonfigurowany w procesorze wiadomości.
Ten błąd występuje, jeśli nagłówek Content-Length nie jest przekazywany przez
aplikację kliencką w ramach HTTP POST i PUT
Żądania wysłane do Apigee Edge
Uwaga: żądania z tym błędem.
nie może zostać przechwycona w narzędziu Trace, ponieważ
tę weryfikację jest bardzo wczesna, na długo przed rozpatrywaniem prośby i
wykonywania dowolnej zasady na serwerze proxy API.
Sprawdź, czy aplikacja kliencka zawsze przekazuje nagłówek
Content-Length w ramach protokołu HTTP POST oraz
Wysłano żądania (PUT) do Apigee Edge. Na przykład:
curl -X POST https://HOSTALIAS/PATH -d '{"name": "abc"}' -H "Content-Length: 15"
Nawet jeśli przekazujesz pusty ładunek za pomocą funkcji POST i
PUT żądań, upewnij się, że nagłówek
Content-Length: 0 zaliczono. Na przykład:
curl -X POST https://HOSTALIAS/PATH -H "Content-Length: 0"
messaging.adaptors.http.flow.NoActiveTargets
Kod stanu HTTP:
503 Service Unavailable
Komunikat o błędzie:
The Service is temporarily unavailable
Możliwa przyczyna:
Ten błąd występuje w jednym z tych scenariuszy:
jeśli używasz
Serwer docelowy w Apigee Edge:
Nieprawidłowa rozpoznawanie nazw DNS hosta serwera backendu
przez niestandardowy serwer autoryzacji spowodowały wystąpienie nieprawidłowych adresów IP, prowadzące do
błędów połączenia.
Błędy przekroczenia limitu czasu połączenia z powodu:
Ograniczenie zapory sieciowej na serwerze backendu uniemożliwia
Połączenie Apigee Edge z serwerem backendu.
Problemy z połączeniem sieciowym między Apigee Edge
i serwera backendu.
Host określony na serwerze docelowym jest nieprawidłowy lub
zawiera niechciane znaki (np. spację).
Ten błąd występuje, jeśli procesor komunikatów brzegowych Apigee nie otrzyma
żądania z aplikacji klienckiej dla
Limit czasu wejścia-wyjścia skonfigurowany w komponencie procesora wiadomości.
Napraw
Upewnij się, że aplikacja kliencka wysyła ładunek żądania w tagu
Limit czasu wejścia-wyjścia skonfigurowany w komponencie przetwarzania wiadomości Apigee Edge.
messaging.adaptors.http.flow.ServiceUnavailable
Kod stanu HTTP:
503 Service Unavailable
Komunikat o błędzie:
The Service is temporarily unavailable
Możliwa przyczyna:
Ten błąd występuje w jednym z tych scenariuszy:
Nieprawidłowa rozpoznawanie nazw DNS serwera backendu
Niestandardowy serwer autoryzacji spowodował wystąpienie nieprawidłowych adresów IP prowadzących do
na błędy połączenia.
Błędy przekroczenia limitu czasu połączenia z powodu:
Ograniczenie zapory sieciowej na serwerze backendu uniemożliwia
Połączenie Apigee Edge z serwerem backendu.
Problemy z połączeniem sieciowym między Apigee Edge a
z serwera backendu.
Host serwera docelowego określony w docelowym punkcie końcowym to
nieprawidłowe lub zawierają niechciane znaki (np. spacja).
Ten błąd może również wystąpić, jeśli serwer backendu przedwcześnie zamknie
gdy procesor wiadomości nadal wysyła ładunek żądania do
z serwera backendu.
Ten błąd występuje, jeśli Apigee Edge nie może skierować żądania do żadnej
TargetEndpoints, ponieważ:
Nie ma warunku trasy (<RouteRule>),
pasuje do żądania w serwerze proxy
ORAZ
W punkcie końcowym serwera proxy nie ma zdefiniowanej domyślnej reguły trasy
(np. <RouteRule> bez warunku)
Napraw
Aby rozwiązać ten problem, wykonaj te czynności:
Sprawdź reguły trasy zdefiniowane w punkcie końcowym proxy i zmodyfikuj je, by mieć pewność, że
istnieje co najmniej jeden warunek reguły trasy pasujący do Twojego żądania.
Warto zdefiniować domyślną regułę trasy bez warunku.
jeśli masz wiele reguł trasy.
Upewnij się, że domyślna reguła trasy jest zawsze zdefiniowana jako ostatnia na liście
Trasy warunkowe, ponieważ reguły są oceniane od góry w punkcie końcowym serwera proxy.
Więcej informacji o definiowaniu warunków <RouteRule> w
ProxyEndpoint, patrz
Cele warunkowe.
messaging.runtime.SenseRaiseFault
Kod stanu HTTP:
403 Forbidden
Komunikat o błędzie:
Sense Fault
Możliwa przyczyna:
Ten błąd występuje, jeśli żądanie do interfejsu API jest wysyłane z określonego adresu IP klienta.
który jest zablokowany w ramach reguł Apigee Sense.
Jeśli konkretny adres IP klienta nie jest blokowany, ale wciąż jesteś
zobaczysz ten błąd, skontaktuj się z zespołem pomocy Apigee Edge.
protocol.http.* - Caused due to bad request
protocol.http.BadFormData
Kod stanu HTTP:
500 Internal Server Error
Komunikat o błędzie:
Bad Form Data
Możliwa przyczyna:
Ten błąd występuje tylko wtedy, gdy są spełnione wszystkie poniższe warunki:
Żądanie HTTP wysłane przez klienta do Apigee Edge
zawiera:
Content-Type: application/x-www-form-urlencoded,
oraz
Dane formularza ze znakiem procentu (%) lub wartością procentową
znak (%), po którym występują nieprawidłowe, niedozwolone znaki szesnastkowe
zgodnie z
Formularze – artykuł 17.13.4.1.
Serwer proxy interfejsu API w Apigee Edge odczytuje określony formularz
parametrów zawierających wszelkie znaki, które nie są dozwolone przy użyciu parametru
Wyodrębnij z nich zmienne lub zasadę AssignMessage w przepływie żądań.
Ten błąd występuje, jeśli konkretny nagłówek HTTP nie może mieć duplikatów
w Apigee Edge występuje więcej niż raz z tymi samymi lub różnymi wartościami w ramach parametru
Żądanie HTTP wysłane przez aplikację kliencką do Apigee Edge.
Sprawdź, czy żądanie HTTP wysłane przez aplikację kliencką
do Apigee Edge zawsze zawiera prawidłową nazwę nagłówka, taką jak
RFC 7230, sekcja 3.2: Header Fields (pola nagłówka).
protocol.http.HeaderNameWithNonAsciiChar
Kod stanu HTTP:
400 Bad Request
Komunikat o błędzie:
Header {header_name} contains non ascii character {character}
Możliwa przyczyna:
Ten błąd występuje, jeśli nazwa nagłówka wysłana w ramach żądania HTTP
przez aplikację kliencką do Apigee Edge ze znaków innych niż ASCII.
Header {header_name} contains invalid character {character}
Możliwa przyczyna:
Ten błąd występuje, jeśli nazwa nagłówka wysłana w ramach żądania HTTP
przez aplikację kliencką do Apigee Edge zawiera nieprawidłowe znaki, takie jak
równa się (=), przecinek (,), średnik (;), tab, CRLF i znak nowego wiersza.
Ten błąd występuje, jeśli ścieżka w adresie URL żądania HTTP wysłanej przez aplikację kliencką
do Apigee Edge zawiera znaki, które są niedozwolone zgodnie ze specyfikacją
RFC 3986, sekcja 3.3: Ścieżka.
Sprawdź, czy ścieżka w adresie URL żądania HTTP wysłanego przez klienta
aplikacji do
Apigee Edge nie zawiera żadnych znaków, które są niedozwolone
zgodnie z sekcją 3.3 standardu RFC 3986:
protocol.http.TooBigBody
Kod stanu HTTP:
413 Request Entity Too Large
Komunikat o błędzie:
Body buffer overflow
Możliwa przyczyna:
Ten błąd występuje, jeśli rozmiar ładunku wysyłanego przez aplikację kliencką w ramach
Żądanie HTTP do Apigee Edge przekracza dozwolony limit w Apigee Edge.
Łączny rozmiar wszystkich nagłówków żądań wysłanych przez klienta
aplikacji w ramach żądania HTTP wysyłanego do Apigee Edge jest większa niż dozwolona
w Apigee Edge.
Ten błąd występuje, jeśli rozmiar wiersza żądania wysłanego przez aplikację kliencką
jako część żądania HTTP do Apigee Edge przekracza dozwolony limit w
Apigee Edge
Ten błąd występuje, jeśli nagłówek Content-Encoding wysłany przez klienta
ponieważ część odpowiedzi HTTP zawiera format kodowania/ładunku, który nie jest
obsługiwane przez Apigee Edge.
Ten błąd występuje, jeśli URL żądania serwera backendu, reprezentowany przez atrybut
zmienna przepływu target.url zawiera ścieżkę rozpoczynającą się od znaku zapytania
(?) zamiast ukośnika (/), co jest nieprawidłowe.
Ten błąd występuje, jeśli konkretny nagłówek HTTP nie może mieć duplikatów
w Apigee Edge pojawia się więcej niż raz z tymi samymi lub różnymi wartościami w ramach parametru
odpowiedź HTTP wysłana przez serwer backendu do Apigee Edge
Sprawdź, czy odpowiedź HTTP wysłana przez backend
z serwera Apigee Edge zawsze zawiera prawidłową nazwę nagłówka, taką jak
RFC 7230, sekcja 3.2: Header Fields (pola nagłówka).
protocol.http.EmptyPath
Kod stanu HTTP:
500 Internal Server Error
Komunikat o błędzie:
Request path cannot be empty
Możliwa przyczyna:
Ten błąd występuje, jeśli URL żądania HTTP serwera backendu, reprezentowany przez
zmienna przepływu target.url zawiera pustą ścieżkę.
Header {header_name} contains invalid character {character}
Możliwa przyczyna:
Ten błąd występuje, jeśli nazwa nagłówka wysłana przez serwer backendu w odpowiedzi HTTP
zawiera nieprawidłowe znaki, takie jak równa się (=), przecinek (,), średnik (;), tab,
CRLF i znak nowego wiersza.
Proxy refused to create tunnel with response status {status code}
Możliwa przyczyna:
Ten błąd występuje podczas tworzenia tunelu między Apigee Edge a
serwer backendu przez serwer proxy z powodu zapory sieciowej, listy kontroli dostępu (ACL) i DNS
problemy, dostępność serwera backendu itp.
Uwaga:kod stanu w komunikacie o błędzie
(faultstring) podaje główną przyczynę problemu.
Response Status code 306 is reserved, so can't be used.
Możliwa przyczyna:
Ten błąd występuje, jeśli serwer backendu odpowiedział z kodem
306 kod stanu do Apigee Edge.
Kod stanu 306 został zdefiniowany w poprzedniej wersji
Specyfikacja HTTP. Zgodnie z bieżącą specyfikacją HTTP ten kod jest
jest zarezerwowana i nie należy jej używać.
Ten błąd występuje, jeśli odpowiedź HTTP z serwera backendu do Apigee Edge to
204 No Content albo
205 Reset Content, ale zawiera
treść odpowiedzi lub co najmniej jeden z tych nagłówków:
Ten błąd występuje, jeśli rozmiar ładunku wysyłanego przez aplikację kliencką w ramach
Żądanie HTTP do Apigee Edge przekracza dozwolony limit w Apigee Edge.
Ten błąd występuje, jeśli łączny rozmiar wszystkich nagłówków odpowiedzi wysyłanych przez
Serwer backendu w odpowiedzi HTTP do Apigee Edge jest większy niż
dozwolony limit w Apigee Edge.
Ten błąd występuje, jeśli rozmiar wiersza odpowiedzi wysłanego przez serwer backendu jako
część odpowiedzi HTTP do Apigee Edge przekracza dozwolony limit w Apigee
Edge.
Ten błąd występuje, jeśli nagłówek Content-Encoding wysyłany przez
serwer backendu jako część odpowiedzi HTTP zawiera kodowanie/ładunek
w formacie innym niż
obsługiwane przez Apigee Edge.
KeyAlias {KeyAlias_name} is not found in
Keystore {Keystore_Name}
Możliwa przyczyna:
Ten błąd występuje, jeśli konkretny alias klucza, do którego odwołuje się docelowy punkt końcowy, występuje
lub serwera docelowego nie udało się znaleźć w konkretnym magazynie kluczy.
Napraw
Sprawdź, czy alias klucza określony w elemencie TargetEndpoint lub TargetServer
i jest częścią konkretnego magazynu kluczy.
security.util.TrustStoreWithNoCertificates
Kod stanu HTTP:
500 Internal Server Error
Komunikat o błędzie:
TrustStore {truststore_name} has no certificates
Możliwa przyczyna:
Ten błąd występuje, jeśli konkretny magazyn zaufania, do którego odwołuje się docelowy punkt końcowy lub
Serwer docelowy nie zawiera żadnych certyfikatów.
Napraw
Jeśli chcesz zweryfikować certyfikat serwera backendu i
chcesz użyć magazynu zaufania w punkcie końcowym lub serwerze docelowym,
upewnić się, że magazyn zaufania zawiera prawidłowe certyfikaty serwera backendu.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-04-10 UTC."],[],[]]