Quando le richieste API vengono effettuate tramite Apigee, i componenti Apigee Router e Message Processor o i server di backend possono restituire errori alle applicazioni client.
Errori dal processore di messaggi
Il Message Processor è il componente principale di Apigee che elabora i criteri e interagisce con i server di backend. Può restituire errori se rileva problemi come:
Problemi di connettività di rete, errori di handshake TLS, mancata disponibilità del server di backend,
mancanza di risposta durante la comunicazione con il server di backend
Errori durante l'esecuzione dei criteri
Intestazioni HTTP, codifica, percorso non validi, mancata conformità alle specifiche HTTP, superamento
dei limiti del prodotto e così via:
Con una richiesta HTTP inviata dalle applicazioni client
OPPURE
Con la risposta HTTP inviata dal server di backend
E molti altri ancora
Esempio di errore del processore di messaggi
Il processore di messaggi restituisce sempre un codice di stato HTTP seguito da un messaggio di errore insieme a
un codice di errore in formato JSON come mostrato di seguito:
L'applicazione client riceve un codice di risposta come nell'esempio seguente:
HTTP/1.1 504 Gateway Timeout
Una risposta di errore dal processore di messaggi appare nel seguente formato:
Contiene il messaggio di errore che descrive la possibile causa dell'errore
errorcode
Codice di errore (chiamato anche codice di errore) associato al
errore
reason
Contiene un messaggio che indica il possibile motivo dell'errore
Catalogo di errori di runtime
Questo catalogo degli errori fornisce tutte le informazioni necessarie sul runtime
codici di errore (per errori diversi dai criteri) restituiti dal messaggio Apigee.
Componente processore. Include le seguenti informazioni per ciascuno dei codici di errore:
Codice di stato HTTP
Messaggio di errore
Motivo dell'errore (non tutti i messaggi di errore mostrano un
reason)
Possibili cause dell'errore
Eventuali specifiche HTTP e/o limiti di prodotto associati
Playbook e video che contengono istruzioni per diagnosticare la causa dell'errore e
soluzioni efficaci che puoi applicare per risolverlo autonomamente (se disponibili)
Correzione che puoi applicare per risolvere autonomamente l'errore
Sono incluse le seguenti categorie di codici di errore:
Utilizza la casella Cerca qui sotto per filtrare la tabella in modo da visualizzare le informazioni citate in precedenza
per ottenere uno specifico codice di errore. Puoi cercare il codice di stato o qualsiasi contenuto in qualsiasi campo
nella tabella.
searchRicerca
Codice di errore
Descrizione
Correggi
flow.*
flow.APITimedOut
Codice di stato HTTP:
504 Gateway Timeout
Messaggio di errore:
API timed out
Possibile causa:
Questo errore si verifica se:
Il server di backend non risponde entro il periodo di timeout configurato
dalla proprietà
api.timeout per il proxy API specifico.
Un criterio richiede molto tempo a causa di operazioni ad alta intensità di calcolo, un carico elevato o prestazioni scadenti.
flow.SharedFlowNotFound
Codice di stato HTTP:
500 Internal Server Error
Messaggio di errore:
Shared Flow {shared_flow_name} Not Found
Possibile causa:
Questo errore si verifica se il flusso condiviso specifico:
La codifica specificata nell'intestazione della richiesta HTTP
Content-Encoding è valido e supportato da Apigee,
MA
Il formato del payload inviato dal client nell'ambito della richiesta HTTP
non corrisponde al formato di codifica specificato nell'intestazione
Content-Encoding
La codifica specificata nel campo
L'intestazione della risposta HTTP Content-Encoding è valida e
supportate da Apigee,
BUT
Il formato del payload inviato dal server di backend/destinazione come
parte della risposta HTTP non corrisponde al formato di codifica specificato nella
Intestazione Content-Encoding
messaging.adaptors.http.flow.ErrorResponseCode
Codice di stato HTTP:
500
Messaggio di errore:
Il messaggio di errore e il formato possono variare in base al server di backend
implementazione.
Possibile causa:
Questo errore si verifica se il server di backend risponde con uno stato
il codice 500 in Apigee.
Codice di stato HTTP:
503
Messaggio di errore:
Il messaggio di errore e il formato possono variare in base al server di backend
implementazione.
Possibile causa:
Questo errore si verifica se il server di backend risponde con uno stato
il codice 503 in Apigee.
Codice di stato HTTP:
504
Messaggio di errore:
Il messaggio di errore e il formato possono variare in base al server di backend
implementazione.
Possibile causa:
Questo errore si verifica se il server di backend risponde con uno stato
il codice 504 in Apigee.
Nota: il codice di errore
messaging.adaptors.http.flow.ErrorResponseCode non viene restituito
nel messaggio di errore inviato alle applicazioni client. Questo accade
perché questo codice di errore viene impostato da Apigee ogni volta che il server di backend
risponde con un errore e uno dei codici di stato 4XX o 5XX. Puoi visualizzare questo codice di errore in API Monitoring
o un database di analisi.
messaging.adaptors.http.flow.GatewayTimeout
Codice di stato HTTP:
504 Gateway Timeout
Messaggio di errore:
Gateway Timeout
Motivo:
TARGET_READ_TIMEOUT
Possibile causa:
Questo errore si verifica se il server di backend non risponde
ad Apigee Message Processor entro il
periodo di timeout I/O configurato in Message Processor.
messaging.adaptors.http.flow.LengthRequired
Codice di stato HTTP:
411 Length Required
Messaggio di errore:
'Content-Length' is missing
Motivo:
CLIENT_REQUEST_CONTENT_LENGTH_REQUIRED
Possibile causa:
Questo errore si verifica se l'intestazione Content-Length non viene passata dall'applicazione client nell'ambito delle richieste HTTP POST e PUT inviate ad Apigee.
Nota: le richieste che non vanno a buon fine con questo
errore non possono essere acquisite nello strumento di monitoraggio, poiché il Message Processor esegue
questa convalida in una fase molto precoce, molto prima dell'elaborazione della richiesta e
dell'esecuzione di qualsiasi criterio nel proxy API.
Assicurati che l'applicazione client passi sempre l'intestazione
Content-Length nell'ambito di HTTP POST e
PUT richieste inviate ad Apigee. Ad esempio:
curl -X POST https://HOSTALIAS/PATH -d '{"name": "abc"}' -H "Content-Length: 15"
Anche se passi un payload vuoto con le richieste POST e
PUT, assicurati che l'intestazione
Content-Length: 0 venga passata. Ad esempio:
curl -X POST https://HOSTALIAS/PATH -H "Content-Length: 0"
messaging.adaptors.http.flow.NoActiveTargets
Codice di stato HTTP:
503 Service Unavailable
Messaggio di errore:
The Service is temporarily unavailable
Motivo:
TARGET_HEALTHCHECK_CONNECT_TIMEOUT
TARGET_HEALTHCHECK_CONNECTION_REFUSED
TARGET_HEALTHCHECK_HTTPS_REQUEST_OVER_HTTP
TARGET_HEALTHCHECK_UNEXPECTED_EOF
Possibile causa:
Questo errore si verifica in uno dei seguenti scenari,
se utilizzi
TargetServer in Apigee:
La risoluzione DNS errata dell'host del server di backend
da parte del server di autorizzazione personalizzato ha generato indirizzi IP non validi che hanno causato
errori di connessione.
Errori di timeout della connessione dovuti a:
La restrizione del firewall sul server di backend impedisce
di connettersi ad Apigee dal server di backend.
Problemi di connettività di rete tra Apigee
e il server di backend.
L'host specificato in TargetServer non è corretto o contiene caratteri indesiderati (ad esempio uno spazio).
Questo errore può verificarsi anche se i controlli di integrità configurati per monitorare l'integrità
dei server di destinazione non riesce.
messaging.adaptors.http.flow.RequestTimeOut
Codice di stato HTTP:
408 Request Timeout
Messaggio di errore:
Request timed out
Motivo:
CLIENT_READ_TIMEOUT
Possibile causa:
Questo errore si verifica se il processore di messaggi Apigee non riceve
e richiedere il payload dall'applicazione client
Periodo di timeout di I/O configurato nel componente del processore di messaggi.
Correggi
Assicurati che l'applicazione client invii il payload della richiesta entro il
Periodo di timeout I/O configurato nel componente Message Processor di Apigee.
messaging.adaptors.http.flow.ServiceUnavailable
Codice di stato HTTP:
503 Service Unavailable
Messaggio di errore:
The Service is temporarily unavailable
Motivo:
TARGET_CONNECT_TIMEOUT
TARGET_WRITE_BROKEN_PIPE
TARGET_WRITE_CONNECTION_RESET_BY_PEER
TARGET_CONNECT_CONNECTION_REFUSED
Possibile causa:
Questo errore si verifica in uno dei seguenti scenari:
La risoluzione DNS errata del server di backend
da un server di autorizzazione personalizzato ha generato indirizzi IP errati all'inizio
agli errori di connessione.
Errori di timeout della connessione dovuti a:
La limitazione del firewall sul server di backend impedisce
ad Apigee di connettersi al server di backend.
Problemi di connettività di rete tra Apigee e il server di backend.
L'host del server di destinazione specificato nell'endpoint di destinazione è
non è corretto o contiene caratteri indesiderati (ad esempio lo spazio).
Questo errore può verificarsi anche se il server di backend chiude prematuramente
mentre il processore di messaggi sta ancora inviando il payload di richiesta
di backend.
messaging.adaptors.http.flow.SslHandshakeFailed
Codice di stato HTTP:
503 Service Unavailable
Messaggio di errore:
SSL Handshake failed {error_message}
Possibile causa:
Questo errore si verifica durante il processo di handshake SSL tra le macchine virtuali
Processore di messaggi e server di backend se:
L'archivio attendibilità del processore di messaggi di Apigee:
Contiene una catena di certificati che non corrisponde alla catena di certificati completa del server di backend
OPPURE
Non contiene la catena di certificati completa del server di backend
La catena di certificati presentata dal server di backend:
Contiene un nome di dominio completo (FQDN) che non corrisponde al
nome host specificato nell'endpoint di destinazione
OPPURE
Contiene una catena di certificati errata/incompleta
Il server di backend rifiuta la versione TLS utilizzata da Apigee.
Ad esempio, se il server di backend accetta solo TLS versione 1.3, ma
server di destinazione sul lato Apigee abbia TLS 1.2 impostato nel
TLS Protocol (o non è impostata alcuna versione TLS, nel qual caso non è impostata la versione TLS)
Al momento Apigee non utilizzerà TLS 1.3 come versione predefinita),
connessione non riesce a causa di una mancata corrispondenza delle versioni del protocollo.
Questo errore si verifica in uno dei seguenti scenari:
TargetServer non è configurato correttamente per supportare le connessioni TLS/SSL
in Apigee.
Il server di backend potrebbe chiudere la connessione bruscamente,
mentre Apigee è in attesa di una risposta dal server di backend.
I timeout Keep-Alive sono configurati in modo errato su Apigee e sul server di backend.
messaging.runtime.*
messaging.runtime.RouteFailed
Codice di stato HTTP:
500 Internal Server Error
Messaggio di errore:
Unable to route the message to a TargetEndpoint
Possibile causa:
Questo errore si verifica se Apigee non può instradare la richiesta a uno dei
TargetEndpoint perché:
Non esiste una condizione della regola di route (<RouteRule>) che
corrisponde alla richiesta in un proxy
E
Nessuna regola di route predefinita definita nel ProxyEndpoint
(ad es. <RouteRule> senza alcuna condizione)
Correggi
Per risolvere questo errore, segui queste istruzioni:
Rivedi le regole di route definite in ProxyEndpoint e modificale per assicurarti che
è presente almeno una condizione della regola di route che corrisponde alla tua richiesta.
È buona prassi definire una regola di routing predefinita senza condizioni
quando sono presenti più RouteRules.
Assicurati che la regola di route predefinita sia sempre definita per ultima nell'elenco dei percorsi condizionali, in quanto le regole vengono valutate dall'alto verso il basso in ProxyEndpoint.
Per scoprire di più sulla definizione di condizioni <RouteRule> in un
ProxyEndpoint, vedi
Destinazioni condizionali.
protocol.http.* - Caused due to bad request
protocol.http.BadFormData
Codice di stato HTTP:
500 Internal Server Error
Messaggio di errore:
Bad Form Data
Possibile causa:
Questo errore si verifica solo se vengono soddisfatte tutte le seguenti condizioni:
La richiesta HTTP inviata dal client ad Apigee
contiene:
Content-Type: application/x-www-form-urlencoded,
e
Dati del modulo con il segno percentuale (%) o il segno percentuale (%) seguito da caratteri esadecimali non validi non consentiti come da
Moduli - Sezione 17.13.4.1.
Il proxy API in Apigee legge il modulo specifico
che contengono caratteri non consentiti utilizzando
ExtractVariables o il criterioAssignMessage nel flusso di richiesta.
protocol.http.DuplicateHeader
Codice di stato HTTP:
400 Bad Request
Messaggio di errore:
Duplicate Header "{header_name}"
Possibile causa:
Questo errore si verifica se un'intestazione HTTP specifica non può avere duplicati
in Apigee, compare più di una volta con valori uguali o diversi nell'ambito
Richiesta HTTP inviata dall'applicazione client ad Apigee.
Header {header_name} contains non ascii character {character}
Possibile causa:
Questo errore si verifica se il nome dell'intestazione inviato come parte della richiesta HTTP
dall'applicazione client ad Apigee contiene caratteri non ASCII.
Header {header_name} contains invalid character {character}
Possibile causa:
Questo errore si verifica se il nome dell'intestazione inviato nell'ambito della richiesta HTTP
dall'applicazione client ad Apigee contiene caratteri non validi come uguale (=), virgola (,), punto e virgola (;), tabulazione, CRLF e carattere di a capo.
Dove: {hostname} è dinamico e il suo valore
cambia rispetto al nome host specificato.
Motivo:
TARGET_CONNECT_HOST_NOT_REACHABLE
Possibile causa:
Questo errore si verifica se l'host del server di destinazione specificato è scorretto o contiene caratteri indesiderati (ad esempio uno spazio).
protocol.http.InvalidPath
Codice di stato HTTP:
400 Bad Request
Messaggio di errore:
Invalid path {path}
Possibile causa:
Questo errore si verifica se il percorso nell'URL della richiesta HTTP inviato dall'applicazione client
ad Apigee contiene caratteri non consentiti in base alla specifica
RFC 3986, sezione 3.3: Percorso.
Questo errore si verifica se le dimensioni del payload inviate dall'applicazione client nell'ambito della richiesta HTTP ad Apigee sono superiori al limite consentito in Apigee.
Le dimensioni totali di tutte le intestazioni di richiesta inviate dall'applicazione client nell'ambito della richiesta HTTP ad Apigee sono superiori al limite consentito in Apigee.
Questo errore si verifica se le dimensioni della riga di richiesta inviata dall'applicazione client
nell'ambito della richiesta HTTP ad Apigee sono superiori al limite consentito in
Apigee.
Questo errore si verifica se l'intestazione Content-Encoding inviata dal client
come parte della risposta HTTP contiene un formato di codifica/payload che non
supportate da Apigee.
Questo errore si verifica se l'URL della richiesta del server di backend, rappresentato dal
la variabile di flusso target.url, contiene un percorso che inizia con un punto interrogativo
(?) anziché una barra (/), che non è valida.
Questo errore si verifica se l'intestazione HTTP specifica che non è consentita la presenza di duplicati
in Apigee viene visualizzata più di una volta con valori uguali o diversi nell'ambito
della risposta HTTP inviata dal server di backend ad Apigee.
Questo errore si verifica se il nome dell'intestazione inviato dal server di backend nell'ambito della comunicazione HTTP
la risposta ad Apigee è vuota.
Questo errore si verifica se l'URL della richiesta HTTP del server di backend, rappresentato dalla variabile di flusso target.url, contiene un percorso vuoto.
Header {header_name} contains non ascii character {character}
Possibile causa:
Questo errore si verifica se il nome dell'intestazione inviato dal server di backend come parte
la risposta HTTP ad Apigee
Edge contiene caratteri non ASCII.
Header {header_name} contains invalid character {character}
Possibile causa:
Questo errore si verifica se il nome dell'intestazione inviato dal server di backend nell'ambito della risposta HTTP contiene caratteri non validi come il segno di uguale (=), la virgola (,), il punto e virgola (;), la tabulazione, il CRLF e il carattere di a capo.
Proxy refused to create tunnel with response status {status code}
Possibile causa:
Questo errore si verifica durante la creazione del tunnel tra Apigee e il
server di backend dal server proxy a causa di firewall, ACL (Access Control List), DNS
problemi, disponibilità della disponibilità del server di backend ecc.
Nota: il codice di stato nel messaggio di errore
(faultstring) fornisce la causa generale del problema.
protocol.http.Response306Reserved
Codice di stato HTTP:
502 Bad Gateway
Messaggio di errore:
Response Status code 306 is reserved, so can't be used.
Possibile causa:
Questo errore si verifica se il server di backend ha risposto con il codice di stato 306 ad Apigee.
Il codice di stato 306 è stato definito in una versione precedente della
specifica HTTP. In base alla specifica HTTP corrente, questo codice è riservato e non deve essere utilizzato.
Poiché il codice di stato 306 è riservato, assicurati che il tuo server di backend non utilizzi questo codice di stato durante l'invio di una risposta ad Apigee.
protocol.http.Response405WithoutAllowHeader
Codice di stato HTTP:
502 Bad Gateway
Messaggio di errore:
Received 405 Response without Allow Header
Possibile causa:
Il server di backend risponde con
un codice di stato 405 Method Not Allowed senza l'intestazione "Allow".
Questo errore si verifica se la risposta HTTP dal server di backend ad Apigee viene
204 No Content o
205 Reset Content ma contiene le
corpo della risposta e/o una o più delle seguenti intestazioni:
Questo errore si verifica se le dimensioni del payload inviate dall'applicazione client nell'ambito della richiesta HTTP ad Apigee sono superiori al limite consentito in Apigee.
Questo errore si verifica se la dimensione totale di tutte le intestazioni di risposta inviate dal
server di backend nell'ambito della risposta HTTP ad Apigee è superiore al
limite consentito in Apigee.
Questo errore si verifica se la dimensione della riga di risposta inviata dal server di backend come parte della risposta HTTP ad Apigee è superiore al limite consentito in Apigee Edge.
Questo errore si verifica se l'intestazione Content-Encoding inviata dal
server di backend nell'ambito della risposta HTTP contiene il formato di codifica/payload
non supportato da Apigee.
KeyAlias {KeyAlias_name} is not found in
Keystore {Keystore_Name}
Possibile causa:
Questo errore si verifica se al Keyalias specifico viene fatto riferimento nel TargetEndpoint
oppure TargetServer non trovato nell'archivio chiavi specifico.
Correggi
Assicurati che il KeyAlias specificato in TargetEndpoint o TargetServer
esiste e fa parte dell'archivio chiavi specifico.
security.util.TrustStoreWithNoCertificates
Codice di stato HTTP:
500 Internal Server Error
Messaggio di errore:
TrustStore {truststore_name} has no certificates
Possibile causa:
Questo errore si verifica se l'archivio di attendibilità specifico a cui viene fatto riferimento nell'endpoint di destinazione o
TargetServer non contiene certificati.
Correggi
Se vuoi convalidare il certificato del server di backend e
vuoi utilizzare il Truststore in un TargetEndpoint o TargetServer,
assicurati che il Truststore contenga i certificati validi del server di backend.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","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"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2024-10-15 UTC."],[],[]]