Condividi tramite


Gestione degli errori di acquisizione Zerobus

Gestione degli errori

Questa sezione descrive in che modo gli errori vengono restituiti dall'API Di inserimento Zerobus e come i client devono gestirli.

Formato risposta di errore

REST (JSON)

Le risposte di errore vengono restituite come JSON con un codice di stato HTTP appropriato:

{
  "error_code": "NOT_FOUND",
  "message": "Table \"catalog.schema.table\" cannot be found."
}
Campo Tipo Descrizione
error_code string Codice di errore leggibile dal computer che identifica la categoria di errore. Usare questa opzione per determinare come gestire l'errore a livello di codice.
message string Descrizione leggibile dell'errore. Può includere informazioni di diagnostica aggiuntive per la risoluzione dei problemi. Non analizzare questo campo a livello di codice. Il relativo formato può cambiare senza preavviso.

gPRC

Le risposte agli errori usano codici di stato gRPC standard, recapitati tramite trailer di risposta:

Trailer Descrizione
grpc-status Codice di stato numerico (ad esempio, 3 per INVALID_ARGUMENT). Usare questa opzione per determinare come gestire l'errore a livello di codice.
messaggio grpc Descrizione leggibile dell'errore. Può includere informazioni di diagnostica aggiuntive per la risoluzione dei problemi. Non analizzare questo campo a livello di codice. Il relativo formato può cambiare senza preavviso.

Codici di errore

Nella tabella seguente sono elencati tutti i codici di errore restituiti dall'API Di inserimento Zerobus, i codici a livello di protocollo corrispondenti e il comportamento consigliato del client.

Errori del client

Questi errori indicano un problema con la richiesta. Non riprovare senza modificare la richiesta.

Codice errore (REST) Codice gRPC Stato HTTP Descrizione Azione consigliata
INVALID_PARAMETER_VALUE INVALID_ARGUMENT(3) 400 La richiesta contiene input non valido o malformato, ad esempio un campo obbligatorio mancante, uno schema non valido o un formato di record non supportato. Correggere la richiesta e inviare di nuovo. Esaminare il message campo per informazioni dettagliate su quale parametro non è valido.
NOT_FOUND NOT_FOUND(5) 404 La risorsa richiesta non esiste. Ad esempio, non è possibile trovare la tabella specificata. Verificare che il nome della risorsa sia corretto e che esista.
NOT_IMPLEMENTED UNIMPLEMENTED(12) 501 L'operazione richiesta non è supportata. Ad esempio, la tabella usa una funzionalità o un formato di dati non supportato. Non riprovare. Controllare il message campo per informazioni dettagliate su ciò che non è supportato.

Errori di autenticazione e autorizzazione

Questi errori indicano problemi con l'identità o le autorizzazioni del chiamante. Non riprovare con le stesse credenziali.

Codice errore (REST) Codice gRPC Stato HTTP Descrizione Azione consigliata
UNAUTHENTICATED UNAUTHENTICATED(16) 401 La richiesta non dispone di credenziali di autenticazione valide. Il token potrebbe essere mancante, vuoto, scaduto o non valido. Aggiornare o fornire un token di autenticazione valido e riprovare.
PERMISSION_DENIED PERMISSION_DENIED(7) 403 Il chiamante non dispone di privilegi sufficienti per eseguire l'operazione richiesta sulla risorsa specificata. Verificare che il chiamante disponga dei privilegi necessari (ad esempio, MODIFY, SELECT, USE_CATALOG, , USE_SCHEMA) nella risorsa di destinazione.

Errori del server

Questi errori indicano un problema sul lato server. Riprovare con ritardo esponenziale e variabilità casuale.

Codice errore (REST) Codice gRPC Stato HTTP Descrizione
UNAVAILABLE UNAVAILABLE(14) 503 Il servizio non è temporaneamente in grado di gestire la richiesta. Si tratta in genere di una condizione temporanea. Riprovare con backoff esponenziale e instabilità.
RESOURCE_EXHAUSTED RESOURCE_EXHAUSTED(8) 429 Il servizio rifiuta le richieste a causa dei limiti delle risorse. Ridurre la concorrenza delle richieste, se possibile. Riprovare con backoff esponenziale e instabilità.
INTERNAL_ERROR INTERNAL_ERROR(13) 500 Si è verificato un errore interno imprevisto. Non riprovare. Contatta il supporto tecnico e fornisci la risposta completa all'errore per la diagnosi.