Codici di risposta di stato

I seguenti codici di stato possono essere restituiti nelle risposte gRPC. Questo vale per tutte le versioni di gRPC documentate su questo sito.

Codice Stato Note
0 OK Ritorno il giorno Success
1 CANCELLED L'operazione è stata annullata, in genere dal chiamante.
2 UNKNOWN Ad esempio, questo errore può essere restituito quando un valore di stato ricevuto da un altro spazio degli indirizzi appartiene a uno spazio di errore non noto in questo spazio degli indirizzi. Anche gli errori generati da API che non restituiscono informazioni sufficienti sugli errori possono essere convertiti in questo errore.
3 INVALID_ARGUMENT Il client ha specificato un argomento non valido.
4 DEADLINE_EXCEEDED La scadenza è scaduta prima del completamento dell'operazione. Per le operazioni che modificano lo stato del sistema, questo errore può essere restituito anche se l'operazione è stata completata correttamente. Ad esempio, una risposta corretta da un server che ha subito un ritardo sufficientemente lungo da far scadere la scadenza.
5 NOT_FOUND Alcune entità richieste non sono state trovate.
6 ALREADY_EXISTS L'entità che un client ha tentato di creare esiste già.
7 PERMISSION_DENIED Il chiamante non dispone dell'autorizzazione per eseguire l'operazione specificata. Non utilizzare PERMISSION_DENIED per i rifiuti causati dall'esaurimento di una risorsa; utilizza invece RESOURCE_EXHAUSTED per questi errori. Non utilizzare PERMISSION_DENIED se non è possibile identificare l'utente che ha effettuato la chiamata (per questi errori, utilizza UNAUTHENTICATED). La ricezione di un codice di errore PERMISSION_DENIED non implica che la richiesta sia valida o che l'entità richiesta esista o soddisfi altre pre-condizioni.
8 RESOURCE_EXHAUSTED Una risorsa è stata esaurita, ad esempio una quota per utente, oppure l'intero file system non dispone di spazio.
9 FAILED_PRECONDITION L'operazione è stata rifiutata perché il sistema non è nello stato richiesto per l'esecuzione dell'operazione. Ad esempio, la directory da eliminare non è vuota o un'operazione rmdir viene applicata a una non directory.
10 ABORTED L'operazione è stata interrotta, in genere a causa di un problema di concorrenza, ad esempio un errore di controllo del sequenziatore o l'interruzione della transazione.
11 OUT_OF_RANGE L'operazione è stata tentata oltre l'intervallo valido.
12 UNIMPLEMENTED L'operazione non è implementata o non è supportata/attivata in questo servizio.
13 INTERNAL Errori interni. Ciò significa che alcune invarianti previste dal sistema sottostante sono state violate. Questo codice di errore è riservato agli errori gravi.
14 UNAVAILABLE Il servizio non è al momento disponibile. Molto probabilmente si tratta di una condizione temporanea che può essere corretta se si ritenta con un backoff.
15 DATA_LOSS Perdita di dati non recuperabili o danneggiamento dei dati.
16 UNAUTHENTICATED La richiesta non ha credenziali di autenticazione valide per l'operazione.

A volte possono essere applicati più codici di errore. I servizi devono restituire il codice di errore più specifico applicabile. Ad esempio, preferisci OUT_OF_RANGE a FAILED_PRECONDITION se si applicano entrambi i codici. Analogamente, preferisci NOT_FOUND o ALREADY_EXISTS rispetto a FAILED_PRECONDITION.

FAILED_PRECONDITION, ABORTED e UNAVAILABLE

Di seguito è riportato un test di verifica che può aiutarti a scegliere tra FAILED_PRECONDITION, ABORTED e UNAVAILABLE:

  • Utilizza UNAVAILABLE se il cliente può riprovare solo la chiamata non riuscita.
  • Utilizza ABORTED se il client deve riprovare a un livello superiore, ad esempio quando un test-and-set specificato dal client non va a buon fine, il che indica che il client deve riavviare una sequenza di lettura, modifica e scrittura.
  • Utilizza FAILED_PRECONDITION se il client non deve riprovare finché lo stato del sistema non è stato corretto esplicitamente. Ad esempio, se un comando "rmdir" non va a buon fine perché la directory non è vuota, è meglio restituire FAILED_PRECONDITION perché il client non deve riprovare a meno che i file non vengano eliminati dalla directory.

INVALID_ARGUMENT, FAILED_PRECONDITION e OUT_OF_RANGE

Di seguito è riportato un test di verifica che può aiutarti a scegliere tra INVALID_ARGUMENT, FAILED_PRECONDITION e OUT_OF_RANGE:

  • Utilizza INVALID_ARGUMENT se gli argomenti sono problematici indipendentemente dall'estado del sistema. Ad esempio, un URL con formato non valido
  • Utilizza OUT_OF_RANGE se un valore è fuori intervallo a causa dello stato del sistema. Ad esempio, la data di inizio è precedente al giorno start_date_restrict.
  • Utilizza FAILED_PRECONDITION se il valore non è valido a causa dello stato del sistema, ma non è un valore OUT_OF_RANGE.