Catalogo di errori di runtime

Questa pagina si applica ad Apigee e Apigee hybrid.

Visualizza la documentazione di Apigee Edge.

Errori in Apigee

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 del processore di messaggi

Message Processor è il componente principale di Apigee che elabora i criteri e interagisce con i server di backend. Può restituire errori se rileva problemi quali:

  • 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 della policy
  • Intestazioni HTTP, codifica, percorso non validi, mancato rispetto delle specifiche HTTP, superamento dei limiti dei prodotti e così via:
    • Con la 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 simile al seguente esempio:

  HTTP/1.1 504 Gateway Timeout

Una risposta di errore del processore di messaggi viene visualizzata nel seguente formato:

{
  "fault": {
    "faultstring": "Gateway Timeout",
    "detail": {
      "errorcode": "messaging.adaptors.http.flow.GatewayTimeout"
      "reason": "TARGET_READ_TIMEOUT"
    }
  }
}

Descrizione dei campi nella risposta di errore:

Campo Descrizione
faultstring Contiene il messaggio di errore che descrive la possibile causa dell'errore
errorcode Codice di errore (chiamato anche codice di guasto) associato all'errore
reason Contiene un messaggio che indica il possibile motivo dell'errore

Catalogo degli errori di runtime

Questo catalogo degli errori fornisce tutte le informazioni necessarie sui codici di errore di runtime (per errori non relativi alle norme) restituiti dal componente Apigee Message Processor. 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 risolvere l'errore autonomamente (se disponibili)
  • Correzione che puoi applicare per risolvere l'errore autonomamente

Vengono trattate le seguenti categorie di codici di errore:

Utilizza la casella di ricerca di seguito per filtrare la tabella e visualizzare le informazioni riportate sopra per un codice di errore specifico. Puoi cercare il codice di stato o qualsiasi contenuto in qualsiasi campo della tabella.

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, carico elevato o prestazioni scarse.

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:

  • Non esiste
  • OPPURE

  • Esiste, ma non è implementato

messaging.adaptors.http.flow

messaging.adaptors.http.flow.DecompressionFailureAtRequest

  • Codice di stato HTTP:
400 Bad Request
  • Messaggio di errore:
Decompression failure at request
  • Motivo:

CLIENT_READ_CONTENT_NOT_IN_GZIP_FORMAT

  • Possibile causa:

Questo errore si verifica solo se:

  • La codifica specificata nell'intestazione della richiesta HTTP Content-Encoding è valida e supportata da Apigee,
  • MA

  • Il formato del payload inviato dal client come parte della richiesta HTTP non corrisponde al formato di codifica specificato nell'intestazione Content-Encoding

messaging.adaptors.http.flow.DecompressionFailureAtResponse

  • Codice di stato HTTP:
502 Bad Gateway
  • Messaggio di errore:
Decompression failure at response
  • Motivo:

TARGET_READ_CONTENT_NOT_IN_GZIP_FORMAT

TARGET_READ_INCORRECT_HEADER_CHECK

  • Possibile causa:

Questo errore si verifica solo se:

  • La codifica specificata nell'intestazione della risposta HTTP Content-Encoding del server di backend/di destinazione è valida e supportata da Apigee.
  • MA

  • Il formato del payload inviato dal server di backend/di destinazione come parte della risposta HTTP non corrisponde al formato di codifica specificato nell'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 a seconda dell'implementazione del server di backend.
  • Possibile causa:
Questo errore si verifica se il server di backend risponde ad Apigee con il codice di stato 500.
  • Codice di stato HTTP:
503
  • Messaggio di errore:
Il messaggio di errore e il formato possono variare a seconda dell'implementazione del server di backend.
  • Possibile causa:
Questo errore si verifica se il server di backend risponde ad Apigee con il codice di stato 503.
  • Codice di stato HTTP:
504
  • Messaggio di errore:
Il messaggio di errore e il formato possono variare a seconda dell'implementazione del server di backend.
  • Possibile causa:
Questo errore si verifica se il server di backend risponde ad Apigee con il codice di stato 504.

Nota: il codice di errore messaging.adaptors.http.flow.ErrorResponseCode non viene restituito come parte del messaggio di errore inviato alle applicazioni client. Questo 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 nel monitoraggio API o nel 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 al processore di messaggi Apigee entro il periodo di timeout I/O configurato nel processore di messaggi.

messaging.adaptors.http.flow.InternalServerError

  • Codice di stato HTTP:
500 Internal Server Error
  • Messaggio di errore:
Internal server error at backend
  • Motivo:
SERVER_ERROR
  • Possibile causa:
Questo errore si verifica in uno dei seguenti scenari:
  1. L'applicazione di backend ha rilevato un'eccezione o un errore non gestito durante l'elaborazione della richiesta da Apigee. Ciò potrebbe derivare da problemi come logica errata, input imprevisti o altri problemi di runtime all'interno del codice dell'applicazione.
  2. Il server di backend potrebbe non essere riuscito a connettersi al database o una query del database potrebbe non essere riuscita. Ciò può verificarsi a causa della connettività di rete, di credenziali del database errate, del downtime del server di database o di problemi con lo schema o i dati del database.
  3. Se il server di backend dipende da altri servizi interni o esterni, come API, code di messaggi o sistemi di memorizzazione nella cache, un errore in una di queste dipendenze può causare la restituzione di un errore 500 ad Apigee. Il backend potrebbe non essere in grado di comunicare con il servizio dipendente o potrebbe ricevere risposte di errore.
  4. Il server di backend potrebbe essere sovraccarico a causa di traffico elevato, memoria (RAM) insufficiente, utilizzo eccessivo della CPU o spazio su disco insufficiente. Quando il server non dispone di risorse adeguate, non può elaborare le richieste e risponde con un errore 500.
  5. Impostazioni errate sul server di backend possono causare errori imprevisti durante l'elaborazione delle richieste. Sono inclusi problemi relativi a configurazioni del server, impostazioni dell'applicazione o configurazioni di deployment.
  6. Potrebbe esserci un bug sottostante nel codice dell'applicazione di backend attivato dalla richiesta specifica di Apigee. Questi bug potrebbero non essere evidenti in circostanze normali, ma vengono esposti da determinati pattern di richieste o dati.

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 trasmessa dall'applicazione client nell'ambito delle richieste HTTP POST e PUT inviate ad Apigee.

Nota:le richieste non riuscite con questo errore non possono essere acquisite nello strumento Trace, poiché il processore di messaggi esegue questa convalida in una fase molto iniziale, molto prima di elaborare la richiesta ed eseguire qualsiasi criterio nel proxy API.

  • Specifica HTTP:
Sezione 3.3.2 dell'RFC: Content-Length

Correggi

Per risolvere questo errore, segui questi passaggi:

  1. Assicurati che l'applicazione client trasmetta sempre l'intestazione Content-Length come parte delle richieste HTTP POST e PUT inviate ad Apigee. Ad esempio:

    curl -X POST https://HOSTALIAS/PATH -d '{"name": "abc"}' -H "Content-Length: 15"
    
  2. Anche se trasmetti un payload vuoto con le richieste POST e PUT, assicurati che venga trasmessa l'intestazione Content-Length: 0. 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:

  1. La risoluzione DNS errata dell'host del server di backend da parte del server di autorizzazione personalizzato ha comportato indirizzi IP errati che hanno causato errori di connessione.
  2. Errori di timeout della connessione dovuti a:
    1. La limitazione del firewall sul server di backend impedisce ad Apigee di connettersi al server di backend.
    2. Problemi di connettività di rete tra Apigee e il server di backend.
  3. 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 il controllo di integrità dei server di destinazione non vanno a buon fine.

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 il payload della richiesta dall'applicazione client per il periodo di timeout 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 componenteprocessore di messaggir 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:

  1. La risoluzione DNS errata dell'host del server di backend da parte del server di autorizzazione personalizzato ha comportato indirizzi IP errati che hanno causato errori di connessione.
  2. Errori di timeout della connessione dovuti a:
    1. La limitazione del firewall sul server di backend impedisce ad Apigee di connettersi al server di backend.
    2. Problemi di connettività di rete tra Apigee e il server di backend.
  3. L'host del server di destinazione specificato nell'endpoint di destinazione non è corretto o contiene caratteri indesiderati (ad esempio uno spazio).

Correggi

Per diagnosticare e risolvere il problema, consulta la guida relativa all'errore 503 Service Unavailable con TARGET_CONNECT_TIMEOUT.

Questo errore può verificarsi anche se il server di backend chiude prematuramente la connessione mentre il processore di messaggi sta ancora inviando il payload della richiesta al server 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 il processore di messaggi di Apigee e il server di backend se:

  1. Il truststore 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
  2. 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
  3. Il server di backend rifiuta la versione TLS utilizzata da Apigee.

    Ad esempio, se il server di backend accetta solo la versione 1.3 di TLS, ma il server di destinazione sul lato Apigee ha impostato la versione 1.2 di TLS nel campo TLS Protocol (o non è impostata alcuna versione di TLS, nel qual caso Apigee attualmente non utilizza la versione 1.3 di TLS come predefinita), la connessione non riesce a causa di una mancata corrispondenza delle versioni del protocollo.

messaging.adaptors.http.flow.UnexpectedEOFAtTarget

  • Codice di stato HTTP:
502 Bad Gateway
  • Messaggio di errore:
Unexpected EOF at target
  • Motivo:
TARGET_READ_UNEXPECTED_EOF
  • Possibile causa:

Questo errore si verifica in uno dei seguenti scenari:

  1. TargetServer non è configurato correttamente per supportare le connessioni TLS/SSL in Apigee.
  2. Il server di backend potrebbe chiudere bruscamente la connessione, mentre Apigee attende una risposta dal server di backend.
  3. Timeout keep-alive configurati in modo errato su Apigee e sul server di backend.

messaging.adaptors.http.flow.BadGateway

  • Codice di stato HTTP:
502 Bad Gateway
  • Messaggio di errore:
Bad Gateway
  • Possibile causa:

Questo errore si verifica se il server di destinazione invia una risposta HTTP non corretta ad Apigee.

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 riesce a indirizzare la richiesta a nessuno dei TargetEndpoint perché:

  • Non esiste una condizione della regola di routing (<RouteRule>) che corrisponda alla richiesta in un proxy
  • E

  • Non è definita alcuna regola di route predefinita in ProxyEndpoint (ovvero <RouteRule> senza alcuna condizione)

Correggi

Per risolvere questo errore, segui queste istruzioni:

  1. Rivedi le regole di routing definite in ProxyEndpoint e modificale per assicurarti che esista almeno una condizione della regola di routing che corrisponda alla tua richiesta.
  2. È buona prassi definire una regola di routing predefinita senza condizioni quando hai più RouteRules.
  3. Assicurati che la regola di routing predefinita sia sempre definita per ultima nell'elenco dei percorsi condizionali, perché le regole vengono valutate dall'alto verso il basso in ProxyEndpoint.

Per scoprire di più sulla definizione delle condizioni <RouteRule> in un ProxyEndpoint, consulta Target 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 se e solo se sono soddisfatte tutte le seguenti condizioni:

  1. La richiesta HTTP inviata dal client ad Apigee contiene:
    • Content-Type: application/x-www-form-urlencoded, e
    • Dati del modulo con il simbolo di percentuale (%) o il simbolo di percentuale (%) seguito da caratteri esadecimali non validi che non sono consentiti in base a Forms - Section 17.13.4.1.
  2. Il proxy API in Apigee legge i parametri specifici del modulo contenenti caratteri non consentiti utilizzando i criteri ExtractVariables o AssignMessage 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 che non può avere duplicati in Apigee viene visualizzata più di una volta con valori uguali o diversi nell'ambito della richiesta HTTP inviata dall'applicazione client ad Apigee.
  • Specifica HTTP:
RFC 7230, sezione 3.2.2: Ordine dei campi

protocol.http.EmptyHeaderName

  • Codice di stato HTTP:
400 Bad Request
  • Messaggio di errore:
Header name cannot be empty
  • Possibile causa:
Questo errore si verifica se il nome dell'intestazione inviato come parte della richiesta HTTP dall'applicazione client ad Apigee è vuoto.
  • Specifica HTTP:
RFC 7230, sezione 3.2: Campi di intestazione

Correggi

Assicurati che la richiesta HTTP inviata dall'applicazione client ad Apigee contenga sempre un nome di intestazione valido in base alla sezione 3.2 del documento RFC 7230: Header Fields (Campi di intestazione).

protocol.http.HeaderNameWithNonAsciiChar

  • Codice di stato HTTP:
400 Bad Request
  • Messaggio di errore:
Header {header_name} contains non ascii 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 ASCII.
  • Specifica HTTP:

RFC 7230, sezione 3.2: Header Fields e RFC 7230, sezione 3.2.6: Field Value Components

Correggi

Assicurati che la richiesta HTTP del client inviata ad Apigee non contenga caratteri non ASCII nei nomi delle intestazioni in base a RFC 7230, sezione 3.2.6: Field Value Components.

protocol.http.HeaderWithInvalidChar

  • Codice di stato HTTP:
400 Bad Request
  • Messaggio di errore:
Header {header_name} contains invalid 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 validi come uguale (=), virgola (,), punto e virgola (;), tabulazione, CRLF e carattere di nuova riga.
  • Specifica HTTP:

RFC 7230, sezione 3.2: Header Fields e RFC 7230, sezione 3.2.6: Field Value Components

Correggi

Assicurati che la richiesta HTTP inviata dall'applicazione client ad Apigee non contenga caratteri non validi nei nomi delle intestazioni in base alla RFC 7230, sezione 3.2.6: Componenti del valore del campo

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 inviata dall'applicazione client ad Apigee contiene caratteri non consentiti in base alla specifica RFC 3986, sezione 3.3: Path.
  • Specifica HTTP:

RFC 3986, sezione 3: Syntax Components e RFC 3986, sezione 3.3: Path

Correggi

Assicurati che il percorso nell'URL della richiesta HTTP inviata dall'applicazione client ad Apigee non contenga caratteri non consentiti come per la sezione 3.3: Path della specifica RFC 3986.

protocol.http.MessageReadError

  • Codice di stato HTTP:
502 Bad Gateway
  • Messaggio di errore:
Unexpected I/O after message headers have been read.
  • Possibile causa:
Questo raro errore si verifica quando l'MP riceve I/O su un canale quando non se lo aspetta. Il MP sta leggendo una richiesta, ha letto tutte le intestazioni ed è impostato per leggere il payload della richiesta. Poi rileva un evento I/O che sembra riguardare le stesse intestazioni.

Correggi

Individua il messaggio di log per ulteriori informazioni su quanto sta accadendo.

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.NoResolvedHost

  • Codice di stato HTTP:
503 Service Unavailable
  • Messaggio di errore:

Unable to resolve host {hostname}

Dove: {hostname} è dinamico e il suo valore cambierà rispetto al nome host fornito.

  • Motivo:
TARGET_CONNECT_HOST_NOT_REACHABLE
  • Possibile causa:
Questo errore si verifica se l'host del server di destinazione specificato non è corretto o contiene caratteri indesiderati (ad esempio uno spazio).

protocol.http.TooBigBody

  • Codice di stato HTTP:
413 Request Entity Too Large
  • Messaggio di errore:
Body buffer overflow
  • Possibile causa:
Questo errore si verifica se le dimensioni del payload inviato dall'applicazione client come parte della richiesta HTTP ad Apigee sono superiori al limite consentito in Apigee.
  • Limiti:
Limiti di Apigee

protocol.http.TooBigHeaders

  • Codice di stato HTTP:
431 Request Header Fields Too Large
  • Messaggio di errore:
request headers size exceeding {limit}
  • Possibile causa:
La dimensione totale di tutte le intestazioni delle richieste inviate dall'applicazione client nell'ambito della richiesta HTTP ad Apigee è superiore al limite consentito in Apigee.
  • Specifica HTTP:
RFC 6585, sezione 5: 431 Request Header Fields Too Large
  • Limiti:
Limiti di Apigee

protocol.http.TooBigLine

  • Codice di stato HTTP:
414 Request-URI Too Long
  • Messaggio di errore:
request line size exceeding {limit}
  • Possibile causa:
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.
  • Limiti:
Limiti di Apigee

protocol.http.UnsupportedEncoding

  • Codice di stato HTTP:
415 Unsupported Media
  • Messaggio di errore:
Unsupported Encoding "{encoding}"
  • Possibile causa:
Questo errore si verifica se l'intestazione Content-Encoding inviata dal client come parte della risposta HTTP contiene un formato di codifica/payload non supportato da Apigee.
  • Specifica HTTP:
RFC 7231, sezione 6.5.13: 415 Unsupported Media Type

protocol.http.* - Caused by target

protocol.http.BadPath

  • Codice di stato HTTP:
500 Internal Server Error
  • Messaggio di errore:
Invalid request path
  • Possibile causa:
Questo errore si verifica se l'URL della richiesta del server di backend, rappresentato dalla variabile di flusso target.url, contiene un percorso che inizia con un punto interrogativo (?) anziché una barra (/) che è non valida.
  • Specifica HTTP:

RFC 3986, sezione 3: Syntax Components e RFC 3986, sezione 3.3: Path

protocol.http.DuplicateHeader

  • Codice di stato HTTP:
502 Bad Gateway
  • Messaggio di errore:
Duplicate Header "{header_name}"
  • Possibile causa:
Questo errore si verifica se l'intestazione HTTP specifica a cui non è consentito avere duplicati in Apigee, viene visualizzata più di una volta con valori uguali o diversi come parte della risposta HTTP inviata dal server di backend ad Apigee.
  • Specifica HTTP:
RFC 7230, sezione 3.2.2: Ordine dei campi

protocol.http.EmptyHeaderName

  • Codice di stato HTTP:
502 Bad Gateway
  • Messaggio di errore:
Header name cannot be empty
  • Possibile causa:
Questo errore si verifica se il nome dell'intestazione inviato dal server di backend come parte della risposta HTTP ad Apigee è vuoto.
  • Specifica HTTP:
RFC 7230, sezione 3.2: Campi di intestazione

Correggi

Assicurati che la risposta HTTP inviata dal server di backend ad Apigee contenga sempre un nome di intestazione valido come da RFC 7230, sezione 3.2: Header Fields.

protocol.http.EmptyPath

  • Codice di stato HTTP:
500 Internal Server Error
  • Messaggio di errore:
Request path cannot be empty
  • Possibile causa:
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.
  • Specifica HTTP:

RFC 3986, sezione 3: Syntax Components e RFC 3986, sezione 3.3: Path

protocol.http.HeaderNameWithNonAsciiChar

  • Codice di stato HTTP:
502 Bad Gateway
  • Messaggio di errore:
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 della risposta HTTP a Apigee Edge contiene caratteri non ASCII.
  • Specifica HTTP:

RFC 7230, sezione 3.2: Header Fields e RFC 7230, sezione 3.2.6: Field Value Components

Correggi

Assicurati che la risposta HTTP del server di backend inviata ad Apigee non contenga caratteri non ASCII nei nomi delle intestazioni in base alla RFC 7230, sezione 3.2.6: Componenti del valore del campo.

protocol.http.HeaderWithInvalidChar

  • Codice di stato HTTP:
502 Bad Gateway
  • Messaggio di errore:
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 uguale (=), virgola (,), punto e virgola (;), tabulazione, CRLF e carattere di nuova riga.
  • Specifica HTTP:

RFC 7230, sezione 3.2: Header Fields e RFC 7230, sezione 3.2.6: Field Value Components

Correggi

Assicurati che la risposta HTTP del server di backend inviata ad Apigee non contenga caratteri non validi nei nomi delle intestazioni, come indicato nella RFC 7230, sezione 3.2.6: Componenti del valore del campo

protocol.http.ProxyTunnelCreationFailed

  • Codice di stato HTTP:
503 Service Unavailable
  • Messaggio di errore:
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 da parte del server proxy a causa di problemi di firewall, ACL (elenco di controllo dell'accesso), DNS, disponibilità del server di backend e così via.

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 ad Apigee con il codice di stato 306.

Il codice di stato 306 è stato definito in una versione precedente della specifica HTTP. In base alla specifica HTTP attuale, questo codice è riservato e non deve essere utilizzato.

  • Specifica HTTP:
RFC 7231, sezione 6.3.5: 306 Reserved

Correggi

Poiché il codice di stato 306 è riservato, assicurati che il 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 il codice di stato 405 Method Not Allowed senza l'intestazione "Allow".
  • Specifica HTTP:

RFC 7231, sezione 6.5.5: 405 Method Not Allowed e RFC 7231, sezione 7.4.1: Allow

protocol.http.ResponseWithBody

  • Codice di stato HTTP:
502 Bad Gateway
  • Messaggio di errore:
Received {status_code} Response with message body
  • Possibile causa:

Questo errore si verifica se la risposta HTTP dal server di backend ad Apigee è 204 No Content o 205 Reset Content, ma contiene il corpo della risposta e/o una o più delle seguenti intestazioni:

  • Content-Length
  • Content-Encoding
  • Transfer-Encoding
  • Specifica HTTP:

RFC 7231, sezione 6.3.5: 204 No Content e RFC 7231, sezione 6.3.6: 205 Reset Content

protocol.http.TooBigBody

  • Codice di stato HTTP:
502 Bad Gateway
  • Messaggio di errore:
Body buffer overflow
  • Possibile causa:
Questo errore si verifica se le dimensioni del payload inviato dall'applicazione client come parte della richiesta HTTP ad Apigee sono superiori al limite consentito in Apigee.
  • Limiti:
Limiti di Apigee

protocol.http.TooBigHeaders

  • Codice di stato HTTP:
502 Bad Gateway
  • Messaggio di errore:
response headers size exceeding {limit}
  • Possibile causa:
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.
  • Limiti:
Limiti di Apigee

protocol.http.TooBigLine

  • Codice di stato HTTP:
502 Bad Gateway
  • Messaggio di errore:
response line size exceeding {limit}
  • Possibile causa:
Questo errore si verifica se le dimensioni della riga di risposta inviata dal server di backend come parte della risposta HTTP ad Apigee sono superiori al limite consentito in Apigee Edge.
  • Limiti:
Limiti di Apigee

protocol.http.UnsupportedEncoding

  • Codice di stato HTTP:
415 Unsupported Media
  • Messaggio di errore:
Unsupported Encoding "{encoding}"
  • Possibile causa:
Questo errore si verifica se l'intestazione Content-Encoding inviata dal server di backend come parte della risposta HTTP contiene il formato di codifica/payload non supportato da Apigee.
  • Specifica HTTP:
RFC 7231, sezione 6.5.13: 415 Unsupported Media Type

security.util.*

security.util.KeyAliasNotFound

  • Codice di stato HTTP:
500 Internal Server Error
  • Messaggio di errore:
KeyAlias {KeyAlias_name} is not found in Keystore {Keystore_Name}
  • Possibile causa:

Questo errore si verifica se l'alias della chiave specifico a cui viene fatto riferimento in TargetEndpoint o TargetServer non viene trovato nel keystore specifico.

Correggi

Assicurati che KeyAlias specificato in TargetEndpoint o TargetServer esista e faccia 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 il Truststore specifico a cui viene fatto riferimento in TargetEndpoint o TargetServer non contiene certificati.

Correggi

Se vuoi convalidare il certificato del server di backend e utilizzare il Truststore in un TargetEndpoint o TargetServer, assicurati che contenga i certificati validi del server di backend.