Gdy żądania do interfejsu API są wysyłane przez Apigee Edge, routery i procesory wiadomości Apigee Edge z komponentów Apigee Edge lub serwery backendu mogą zwracać błędy do aplikacji klienckich.
Błędy procesora wiadomości
Procesor wiadomości jest podstawowym komponentem Apigee Edge, który przetwarza zasady i komunikuje się z serwerami backendu. Funkcja zwraca błędy, jeśli wykryje jakiekolwiek problemy, na przykład:
Problemy z połączeniem sieciowym, błędy uzgadniania połączenia TLS, niedostępność serwera backendu, brak odpowiedzi podczas komunikacji z serwerem backendu
Zawiera komunikat o błędzie z opisem jego możliwej przyczyny
errorcode
Kod błędu (nazywany też kodem błędu) powiązany z błędem
Katalog błędów środowiska wykonawczego
Ten katalog błędów zawiera wszystkie potrzebne informacje o kodach błędów środowiska wykonawczego (w przypadku błędów niezwiązanych z zasadami) zwracanych przez komponent procesora wiadomości Apigee Edge. Zawiera on te informacje o każdym z kodów błędów:
Kod stanu HTTP
Komunikat o błędzie
Możliwe przyczyny błędu
Wszelkie powiązane specyfikacje HTTP lub limity usług
Poradniki i filmy zawierające instrukcje diagnozowania przyczyny błędu oraz skuteczne rozwiązania, które możesz zastosować, aby samodzielnie rozwiązać problem (jeśli są dostępne)
Rozwiązanie, które możesz zastosować, aby samodzielnie rozwiązać problem
Użyj pola Szukaj poniżej, aby przefiltrować tabelę tak, aby wyświetlić powyższe informacje o konkretnym kodzie błędu. Możesz wyszukać kod stanu lub dowolną treść w dowolnym polu 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 okresie oczekiwania skonfigurowanym przez właściwość api.timeout dla określonego serwera proxy interfejsu API.
Zasada zajmuje dużo czasu z powodu intensywnych operacji obliczeniowych, dużego obciążenia lub niskiej wydajności.
Uwaga: ten scenariusz zawiera instrukcje dotyczące rozwiązywania problemów z kodem błędu messaging.adaptors.http.flow.GatewayTimeout. Możesz jednak użyć tego samego scenariusza do rozwiązywania problemów z kodem błędu flow.APITimedOut.
Komunikat o błędzie i format mogą się różnić w zależności od implementacji serwera backendu.
Możliwa przyczyna:
Ten błąd występuje, jeśli serwer backendu wysyła kod stanu 504 do Apigee Edge.
Uwaga: w komunikacie o błędzie wysłanym do aplikacji klienckich nie zwracamy kodu błędu messaging.adaptors.http.flow.ErrorResponseCode. Wynika to z tego, że ten kod błędu jest ustawiany przez Apigee Edge za każdym razem, gdy serwer backendu zwróci błąd i dowolny z kodów stanu 4XX lub 5XX. Możesz wyświetlić ten kod błędu w monitorowaniu interfejsów API, logach dostępu NGINX lub analitycznej bazie danych.
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, jeśli serwer backendu nie odpowiada na procesor komunikatów Apigee Edge w ciągu
limitu czasu oczekiwania wejścia/wyjścia skonfigurowanego w tym procesorze wiadomości.
Ten błąd występuje, jeśli nagłówek Content-Length nie jest przekazywany przez aplikację kliencką w ramach żądań HTTP POST i PUT wysyłanych do Apigee Edge.
Uwaga: żądań, w przypadku których wystąpił ten błąd, nie można przechwytywać w narzędziu do śledzenia, ponieważ podmiot przetwarzający wiadomości przeprowadza weryfikację na bardzo wczesnej fazie, na długo przed przetworzeniem żądania i wykonaniem jakiejkolwiek zasady w serwerze proxy interfejsu API.
Upewnij się, że aplikacja kliencka zawsze przekazuje nagłówek Content-Length jako część żądań HTTP POST i PUT wysyłanych 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 z żądaniami POST i PUT, zadbaj o to, by nagłówek Content-Length: 0 został przekazany. 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
serwera docelowego w Apigee Edge:
Niepoprawne rozpoznawanie nazw DNS hosta serwera backendu przez niestandardowy serwer autoryzacji spowodowało nieprawidłowe adresy IP i błędy połączenia.
Błędy przekroczenia limitu czasu połączenia z następujących powodów:
Ograniczenie zapory sieciowej na serwerze backendu uniemożliwia Apigee Edge nawiązanie połączenia z serwerem backendu.
Problemy z połączeniem sieciowym między Apigee Edge a serwerem backendu.
Host określony w serwerze docelowym jest nieprawidłowy lub zawiera niechciane znaki (takie jak spacja).
Ten błąd występuje, jeśli procesor wiadomości Apigee Edge nie otrzyma ładunku żądania z aplikacji klienckiej przez
okres oczekiwania wejścia-wyjścia skonfigurowany w komponencie Message Processor.
Napraw
Upewnij się, że aplikacja kliencka wysyła ładunek żądania w ramach
limitu czasu wejścia-wyjścia skonfigurowanego w komponencie Message Processor w 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:
Niepoprawne rozpoznawanie nazw DNS hosta serwera backendu przez niestandardowy serwer autoryzacji spowodowało nieprawidłowe adresy IP i błędy połączenia.
Błędy związane z przekroczeniem limitu czasu połączenia z tych powodów:
Ograniczenie zapory sieciowej na serwerze backendu uniemożliwia Apigee Edge nawiązanie połączenia z serwerem backendu.
Problemy z połączeniem sieciowym między Apigee Edge a serwerem backendu.
Host serwera docelowego określony w docelowym punkcie końcowym jest nieprawidłowy lub zawiera niechciane znaki (takie jak spacja).
Ten błąd może również wystąpić, jeśli serwer backendu przedwcześnie zamknie połączenie, gdy procesor wiadomości nadal wysyła ładunek żądania do serwera backendu.
Ten błąd występuje, jeśli Apigee Edge nie może przekierować żądania do żadnego z docelowych punktów końcowych, ponieważ:
Nie ma warunku reguły trasy (<RouteRule>), który pasuje do żądania na serwerze proxy
ORAZ
W punkcie końcowym ProxyEndpoint nie ma zdefiniowanej domyślnej reguły trasy (np. <RouteRule> bez warunku)
Napraw
Aby naprawić ten błąd, wykonaj następujące czynności:
Sprawdź reguły trasy zdefiniowane w punkcie ProxyEndpoint i zmodyfikuj te reguły, aby mieć pewność, że istnieje co najmniej 1 warunek reguły trasy zgodny z Twoim żądaniem.
Jeśli masz wiele reguł trasy, warto zdefiniować domyślną regułę trasy bez warunku.
Sprawdź, czy domyślna reguła trasy jest zawsze definiowana na końcu na liście tras warunkowych, ponieważ reguły są oceniane z góry w punkcie końcowym ProxyEndpoint.
Więcej informacji o definiowaniu warunków <RouteRule> w punkcie końcowym ProxyEndpoint znajdziesz w sekcji dotyczącej
celów warunkowych.
messaging.runtime.SenseRaiseFault
Kod stanu HTTP:
403 Forbidden
Komunikat o błędzie:
Sense Fault
Możliwa przyczyna:
Ten błąd występuje, gdy żądanie do interfejsu API jest wysyłane z określonego adresu IP klienta, który jest zablokowany przez reguły Apigee Sense.
Napraw
Aby naprawić ten błąd, wykonaj następujące czynności:
Jeśli konkretny adres IP klienta nie jest zablokowany, ale nadal występuje 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 te warunki:
Żądanie HTTP wysłane przez klienta do Apigee Edge zawiera:
Content-Type: application/x-www-form-urlencoded i
Dane formularzy ze znakiem procentu (%) lub znakiem procentu (%), po którym następują nieprawidłowe znaki szesnastkowe, które są niedozwolone zgodnie z
Formularzami – sekcja 17.13.4.1.
Serwer proxy interfejsu API w Apigee Edge odczytuje określone parametry formularza zawierające wszelkie znaki niedozwolone za pomocą zasady ExtractVariables lub zasady AssignMessage w przepływie żądania.
Ten błąd występuje, gdy konkretny nagłówek HTTP, który nie może mieć duplikatów w Apigee Edge, pojawia się więcej niż raz z takimi samymi lub różnymi wartościami w żądaniu HTTP wysłanym przez aplikację kliencką do Apigee Edge.
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ówność (=), przecinek (,), średnik (;), tabulator, CRLF i znak nowego wiersza.
Sprawdź, czy żądanie HTTP wysłane przez aplikację kliencką do Apigee Edge nie zawiera żadnych nieprawidłowych znaków w nazwach nagłówków zgodnie z
RFC 7230, sekcja 3.2.6: komponenty wartości pola.
protocol.http.InvalidPath
Kod stanu HTTP:
400 Bad Request
Komunikat o błędzie:
Invalid path {path}
Możliwa przyczyna:
Ten błąd występuje, jeśli ścieżka w adresie URL żądania HTTP wysłana przez aplikację kliencką do Apigee Edge zawiera znaki niedozwolone zgodnie ze specyfikacją RFC 3986, sekcja 3.3: Ścieżka.
Upewnij się, że ścieżka w adresie URL żądania HTTP wysłana przez aplikację kliencką do Apigee Edge nie zawiera żadnych znaków niedozwolonych jako
zgodnie z sekcją 3.3: Ścieżka w dokumencie 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łany przez aplikację kliencką w ramach żądania HTTP do Apigee Edge przekracza dozwolony limit w Apigee Edge.
Łączny rozmiar wszystkich nagłówków żądań wysyłanych przez aplikację kliencką w ramach żądania HTTP do Apigee Edge jest większy niż dozwolony limit w Apigee Edge.
Ten błąd występuje, jeśli rozmiar wiersza żądania wysyłanego przez aplikację kliencką w ramach żą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 w ramach odpowiedzi HTTP zawiera format kodowania/ładunku, który nie jest
obsługiwany przez Apigee Edge.
Ten błąd występuje, jeśli URL żądania serwera backendu, reprezentowany przez zmienną przepływu target.url, zawiera ścieżkę rozpoczynającą się znakiem zapytania (?) zamiast ukośnikiem (/), co jest nieprawidłowe.
Ten błąd występuje, gdy konkretny nagłówek HTTP, który nie może mieć duplikatów w Apigee Edge, pojawia się więcej niż raz z takimi samymi lub różnymi wartościami w odpowiedzi HTTP wysłanej przez serwer backendu do Apigee Edge.
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ówność (=), przecinek (,), średnik (;), tabulator, 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 serwerem backendu przez serwer proxy z powodu zapory sieciowej, listy kontroli dostępu (listy kontroli dostępu), problemów z DNS, dostępności dostępności serwera backendu itp.
Uwaga:kod stanu w komunikacie o błędzie (faultstring) zawiera ogólną 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 stanu 306 do Apigee Edge.
Kod stanu 306 był zdefiniowany w poprzedniej wersji specyfikacji HTTP. Zgodnie z bieżącą specyfikacją HTTP ten kod jest zarezerwowany i nie należy go używać.
Ten błąd występuje, jeśli odpowiedź HTTP z serwera backendu do Apigee Edge ma postać 204 No Content lub 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łany przez aplikację kliencką w ramach żądania HTTP do Apigee Edge przekracza dozwolony limit w Apigee Edge.
Ten błąd występuje, gdy łączny rozmiar wszystkich nagłówków odpowiedzi wysyłanych przez serwer backendu w ramach odpowiedzi HTTP do Apigee Edge jest większy niż dozwolony limit w Apigee Edge.
Ten błąd występuje, jeśli rozmiar wiersza odpowiedzi wysyłanego przez serwer backendu w ramach odpowiedzi HTTP do Apigee Edge jest większy niż dozwolony limit w Apigee Edge.
Ten błąd występuje, jeśli nagłówek Content-Encoding wysyłany przez serwer backendu w ramach odpowiedzi HTTP zawiera format kodowania/ładunku, który nie jest
obsługiwany przez Apigee Edge.
KeyAlias {KeyAlias_name} is not found in
Keystore {Keystore_Name}
Możliwa przyczyna:
Ten błąd występuje, jeśli w określonym magazynie kluczy nie znaleziono określonego aliasu klucza, do którego odwołuje się docelowy punkt końcowy lub serwer docelowy.
Napraw
Sprawdź, czy alias klucza określony w punkcie docelowym lub serwerze docelowym istnieje 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 określony 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żywać magazynu Trust Store w punkcie docelowym lub serwerze docelowym, sprawdź, czy magazyn zaufania zawiera prawidłowe certyfikaty serwera backendu.