Gdy żądania do interfejsu API są wysyłane przez Apigee Edge, komponenty Apigee Edge, czyli routery i procesory wiadomości, lub serwery backendu mogą zwracać błędy do aplikacji klienckich.
Błędy procesora wiadomości
Procesor wiadomości to podstawowy komponent Apigee Edge, który przetwarza zasady i wchodzi w interakcje z serwerami backendu. Może zwracać błędy, jeśli wykryje problemy, takie jak:
problemy z połączeniem sieciowym, nieudane uzgadnianie połączenia TLS, niedostępność serwera backendu, brak odpowiedzi podczas komunikacji z serwerem backendu.
Zawiera komunikat o błędzie opisujący możliwą przyczynę błędu.
errorcode
Kod błędu (nazywany też kodem usterki) powiązany z błędem.
Katalog błędów środowiska wykonawczego
Ten katalog błędów zawiera wszystkie informacje o kodach błędów środowiska wykonawczego (w przypadku błędów niezwiązanych z zasadami) zwracanych przez komponent Apigee Edge Message Processor. Zawiera on te informacje o każdym kodzie błędu:
Kod stanu HTTP
Komunikat o błędzie
Możliwe przyczyny błędu
wszelkie powiązane specyfikacje HTTP lub limity produktów;
Przewodniki i filmy zawierające instrukcje diagnozowania przyczyny błędu oraz skuteczne rozwiązania, które możesz zastosować, aby samodzielnie go wyeliminować (jeśli są dostępne).
poprawkę, którą możesz zastosować, aby samodzielnie rozwiązać problem;
Użyj pola Szukaj poniżej, aby przefiltrować tabelę i wyświetlić powyższe informacje dotyczące 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
właściwości
api.timeout dla konkretnego serwera proxy interfejsu API.
Zasady są stosowane przez długi czas z powodu operacji wymagających dużej mocy obliczeniowej, dużego obciążenia lub niskiej wydajności.
Uwaga: ten przewodnik zawiera instrukcje rozwiązywania problemów z kodem błędu messaging.adaptors.http.flow.GatewayTimeout. Możesz jednak użyć tego samego przewodnika, aby rozwiązać problemy z kodem błędu flow.APITimedOut.
Kodowanie określone w nagłówku odpowiedzi HTTP Content-Encoding serwera backendu lub serwera docelowego jest prawidłowe i
obsługiwane przez Apigee Edge.
BUT
Format ładunku wysłanego przez serwer backendu lub serwer docelowy w ramach odpowiedzi HTTP nie pasuje do formatu kodowania określonego w nagłówku Content-Encoding.
Komunikat o błędzie i jego format mogą się różnić w zależności od implementacji serwera backendu.
Możliwa przyczyna:
Ten błąd występuje, gdy serwer backendu odpowiada na Apigee Edge kodem stanu 504.
Uwaga: kod błędu
messaging.adaptors.http.flow.ErrorResponseCode nie jest zwracany
w ramach komunikatu o błędzie wysyłanego do aplikacji klienckich. Dzieje się tak, ponieważ ten kod błędu jest ustawiany przez Apigee Edge, gdy serwer backendu odpowiada błędem i jednym z kodów stanu 4XX lub 5XX. Ten kod błędu możesz wyświetlić w usłudze API Monitoring, dziennikach dostępu NGINX lub w bazie 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 procesorowi wiadomości Apigee Edge w
okresie oczekiwania na wejście/wyjście skonfigurowanym w procesorze wiadomości.
Ten błąd występuje, jeśli aplikacja kliencka nie przekazuje nagłówka Content-Length w ramach żądań HTTP POST i PUT wysyłanych do Apigee Edge.
Uwaga: żądań, które kończą się tym błędem, nie można przechwycić w narzędziu do śledzenia, ponieważ procesor wiadomości przeprowadza tę weryfikację na bardzo wczesnym etapie, na długo przed przetworzeniem żądania i wykonaniem jakichkolwiek zasad w proxy interfejsu API.
Upewnij się, że aplikacja kliencka zawsze przekazuje nagłówek Content-Length w ramach żą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, upewnij się, że przekazywany jest nagłówek Content-Length: 0. 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 przypadków, jeśli używasz
TargetServer w Apigee Edge:
Nieprawidłowe rozpoznawanie DNS hosta serwera backendu przez niestandardowy serwer autoryzacji spowodowało nieprawidłowe adresy IP, co doprowadziło do błędów połączenia.
Błędy przekroczenia limitu czasu połączenia z powodu:
Ograniczenie zapory sieciowej na serwerze backendu uniemożliwia Apigee Edge łączenie się z serwerem backendu.
Problemy z połączeniem sieciowym między Apigee Edge a serwerem backendu.
Host określony w elemencie TargetServer jest nieprawidłowy lub zawiera niepożądane znaki (np. spację).
Ten błąd występuje, gdy procesor wiadomości Apigee Edge nie otrzyma ładunku żądania z aplikacji klienckiej w
okresie limitu czasu wejścia/wyjścia skonfigurowanym w komponencie procesora wiadomości.
Napraw
Upewnij się, że aplikacja kliencka wysyła ładunek żądania w
okresie limitu czasu wejścia/wyjścia skonfigurowanym w komponencie Message Processor 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 przypadków:
Nieprawidłowe rozpoznawanie DNS hosta serwera backendu przez niestandardowy serwer autoryzacji spowodowało nieprawidłowe adresy IP, co doprowadziło do błędów połączenia.
Błędy przekroczenia limitu czasu połączenia z powodu:
Ograniczenie zapory sieciowej na serwerze backendu uniemożliwia Apigee Edge łączenie się z serwerem backendu.
Problemy z połączeniem sieciowym między Apigee Edge a serwerem backendu.
Host serwera docelowego określony w punkcie końcowym jest nieprawidłowy lub zawiera niepożądane znaki (np. spację).
Ten błąd może też 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 elementów TargetEndpoint, ponieważ:
W serwerze proxy nie ma warunku reguły trasy (<RouteRule>), który pasuje do żądania.
ORAZ
W ProxyEndpoint nie zdefiniowano reguły trasy domyślnej (tzn. <RouteRule> bez żadnych warunków).
Napraw
Aby rozwiązać ten problem, wykonaj te czynności:
Sprawdź reguły routingu zdefiniowane w punkcie ProxyEndpoint i zmodyfikuj je tak, aby istniał co najmniej 1 warunek reguły routingu, który pasuje do Twojego żądania.
Jeśli masz wiele reguł RouteRule, warto zdefiniować domyślną regułę trasy bez warunku.
Upewnij się, że domyślna reguła trasy jest zawsze zdefiniowana jako ostatnia na liście tras warunkowych, ponieważ reguły są oceniane od góry do dołu w usłudze ProxyEndpoint.
Więcej informacji o definiowaniu warunków <RouteRule> w usłudze ProxyEndpoint znajdziesz w artykule
Warunkowe lokalizacje docelowe.
messaging.runtime.SenseRaiseFault
Kod stanu HTTP:
403 Forbidden
Komunikat o błędzie:
Sense Fault
Możliwa przyczyna:
Ten błąd występuje, gdy żądanie interfejsu API jest wysyłane z określonego adresu IP klienta, który jest blokowany w ramach reguł Apigee Sense.
Jeśli konkretny adres IP klienta nie jest zablokowany, ale ten błąd nadal występuje, 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 formularza zawierające znak procenta (%) lub znak procenta (%) z nieprawidłowymi znakami szesnastkowymi, które są niedozwolone zgodnie z
Formularze – sekcja 17.13.4.1.
Serwer proxy interfejsu API w Apigee Edge odczytuje konkretne parametry formularza zawierające niedozwolone znaki, korzystając z zasad ExtractVariables lub AssignMessage w przepływie żądania.
Ten błąd występuje, gdy określony nagłówek HTTP, który 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 żądania HTTP wysłanego 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 znak równości (=), przecinek (,), średnik (;), tabulator, CRLF i znak nowego wiersza.
Ten błąd występuje, jeśli ścieżka w adresie URL żądania HTTP wysłanego przez aplikację kliencką do Apigee Edge zawiera znaki, które nie są dozwolone zgodnie ze specyfikacją RFC 3986, sekcja 3.3: Ścieżka.
Sprawdź, czy ścieżka w adresie URL żądania HTTP wysyłanego przez aplikację kliencką do Apigee Edge nie zawiera znaków, które nie są dozwolone zgodnie z
sekcją 3.3 standardu RFC 3986: Ścieżka.
protocol.http.MessageReadError
Kod stanu HTTP:
502 Bad Gateway
Komunikat o błędzie:
Unexpected I/O after message headers have been read.
Możliwa przyczyna:
Ten rzadki błąd występuje, gdy MP odbiera dane wejściowe/wyjściowe na kanale, gdy nie jest to oczekiwane. Procesor wiadomości odczytuje żądanie, odczytał wszystkie nagłówki i jest skonfigurowany do odczytywania ładunku żądania. Następnie napotyka zdarzenie wejścia/wyjścia, które wydaje się dotyczyć tych samych nagłówków.
Napraw
Znajdź komunikat dziennika, aby uzyskać więcej informacji o tym, co się dzieje.
logger.atSevere().log(
"Unexpected I/O after message headers have been read. Channel diagnostics=%s."
+ " HeartBeat=%s",
input.client().getDiagnostic(), message.getHeaders().isHeartBeat());
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, gdy rozmiar ładunku wysłanego przez aplikację kliencką w ramach żądania HTTP do Apigee Edge przekracza dozwolony limit w Apigee Edge.
Łączny rozmiar wszystkich nagłówków żądań wysł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, gdy rozmiar wiersza żądania wysłanego 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 nagłówek Content-Encoding wysłany przez klienta w ramach odpowiedzi HTTP zawiera kodowanie lub format ładunku, który nie jest
obsługiwany przez Apigee Edge.
Ten błąd występuje, jeśli adres URL żądania serwera backendu, reprezentowany przez zmienną przepływu target.url, zawiera ścieżkę, która zaczyna się od znaku zapytania (?) zamiast od ukośnika (/), co jest nieprawidłowe.
Ten błąd występuje, jeśli określony nagłówek HTTP, który 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 odpowiedzi HTTP wysłanej przez serwer backendu do Apigee Edge.
Sprawdź, czy odpowiedź HTTP wysyłana przez serwer backendu do Apigee Edge zawsze zawiera prawidłową nazwę nagłówka zgodnie z
RFC 7230, sekcja 3.2: 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 adres URL żądania HTTP serwera backendu, reprezentowany przez zmienną 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 ramach odpowiedzi HTTP zawiera nieprawidłowe znaki, takie jak znak równości (=), przecinek (,), średnik (;), tabulator, CRLF i znak nowego wiersza.
Upewnij się, że odpowiedź HTTP serwera backendu wysłana do Apigee Edge nie zawiera żadnych nieprawidłowych znaków w nazwach nagłówków zgodnie z
RFC 7230, sekcja 3.2.6: Składniki wartości pola.
protocol.http.ProxyTunnelCreationFailed
Kod stanu HTTP:
503 Service Unavailable
Komunikat o błędzie:
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 problemów z zaporą, listą ACL (listą kontroli dostępu), DNS, 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ł na Apigee Edge kodem stanu 306.
Kod stanu 306 został zdefiniowany we wcześniejszej wersji specyfikacji HTTP. Zgodnie z obecną 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 wartość 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, gdy rozmiar ładunku wysłanego 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 wysłanych przez serwer backendu w ramach odpowiedzi HTTP do Apigee Edge przekracza dozwolony limit w Apigee Edge.
Ten błąd występuje, gdy rozmiar wiersza odpowiedzi wysłanego przez serwer backendu w ramach odpowiedzi HTTP do Apigee Edge przekracza dozwolony limit w Apigee Edge.
Ten błąd występuje, jeśli nagłówek Content-Encoding wysłany przez serwer backendu w ramach odpowiedzi HTTP zawiera format kodowania lub ł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 konkretny alias klucza, do którego odwołuje się TargetEndpoint lub TargetServer, nie zostanie znaleziony w konkretnym magazynie kluczy.
Napraw
Sprawdź, czy alias klucza określony w elementach TargetEndpoint lub TargetServer 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 konkretny magazyn zaufanych certyfikatów, do którego odwołuje się TargetEndpoint lub TargetServer, nie zawiera żadnych certyfikatów.
Napraw
Jeśli chcesz zweryfikować certyfikat serwera backendu i użyć magazynu zaufanych certyfikatów w elemencie TargetEndpoint lub TargetServer, upewnij się, że zawiera on 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-08-08 UTC."],[],[],null,[]]