Code

I codici di errore canonici per le API gRPC.

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

Enum
OK

Non è un errore, ma è stato restituito al meglio.

Mappatura HTTP: 200 OK

CANCELLED

L'operazione è stata annullata, in genere dal chiamante.

Mappatura HTTP: richiesta 499 chiusa dal client

UNKNOWN

Errore sconosciuto. Ad esempio, questo errore può essere restituito quando un valore Status ricevuto da un altro spazio di indirizzi appartiene a uno spazio non noto in questo spazio. Anche gli errori generati da API che non restituiscono informazioni sufficienti sull'errore potrebbero essere convertiti in questo errore.

Mappatura HTTP: errore server interno 500

INVALID_ARGUMENT

Il client ha specificato un argomento non valido. Tieni presente che è diverso da FAILED_PRECONDITION. INVALID_ARGUMENT indica gli argomenti problematici indipendentemente dallo stato del sistema (ad esempio un nome file non corretto).

Mappatura HTTP: richiesta 400 non valida

DEADLINE_EXCEEDED

La scadenza è scaduta prima del completamento dell'operazione. Per operazioni che modificano lo stato del sistema, questo errore potrebbe essere restituito anche se l'operazione è stata completata correttamente. Ad esempio, una risposta riuscita da parte di un server potrebbe aver subito un ritardo sufficiente alla scadenza della scadenza.

Mappatura HTTP: timeout del gateway 504

NOT_FOUND

Alcune entità richieste (ad es. file o directory) non sono state trovate.

Nota per gli sviluppatori di server. Se una richiesta viene rifiutata per un'intera classe di utenti, ad esempio l'implementazione graduale di una funzionalità o una lista consentita non documentata, è possibile che venga utilizzato NOT_FOUND. Se una richiesta viene rifiutata per alcuni utenti all'interno di una classe di utenti, ad esempio il controllo dell'accesso basato sugli utenti, è necessario utilizzare PERMISSION_DENIED.

Mappatura HTTP: 404 non trovata

ALREADY_EXISTS

L'entità che un client ha tentato di creare (ad es. un file o una directory) esiste già.

Mappatura HTTP: conflitto 409

PERMISSION_DENIED

Il chiamante non dispone dell'autorizzazione per eseguire l'operazione specificata. PERMISSION_DENIED non deve essere utilizzato per i rifiuti causati dall'esaurimento di alcune risorse (utilizza invece RESOURCE_EXHAUSTED per questi errori). PERMISSION_DENIED non deve essere utilizzato se il chiamante non può essere identificato (utilizza invece UNAUTHENTICATED per questi errori). Questo codice di errore non lascia intendere che la richiesta sia valida o che l'entità richiesta esista o soddisfi altre precondizioni.

Mappatura HTTP: 403 Accesso negato

UNAUTHENTICATED

La richiesta non ha credenziali di autenticazione valide per l'operazione.

Mappatura HTTP: 401 Non autorizzato

RESOURCE_EXHAUSTED

Una risorsa è stata esaurita, forse una quota per utente o forse l'intero file system ha esaurito lo spazio.

Mappatura HTTP: numero di richieste 429 eccessivo

FAILED_PRECONDITION

L'operazione è stata rifiutata perché il sistema non è in uno stato richiesto per l'esecuzione dell'operazione. Ad esempio, la directory da eliminare non è vuota, un'operazione rmdir viene applicata a una non directory e così via.

Gli implementatori di servizi possono utilizzare le seguenti linee guida per decidere tra FAILED_PRECONDITION, ABORTED e UNAVAILABLE: (a) utilizza UNAVAILABLE se il client può riprovare solo la chiamata in errore. (b) Utilizza ABORTED se il client deve riprovare a un livello superiore. Ad esempio, quando un test e un set specificati dal client hanno esito negativo, il client deve riavviare una sequenza di lettura, modifica e scrittura. (c) Utilizza FAILED_PRECONDITION se il client non deve riprovare fino a quando lo stato del sistema non è stato esplicitamente risolto. Ad esempio, se l'operazione di "rmdir" non va a buon fine perché la directory non è vuota, FAILED_PRECONDITION dovrebbe essere restituito poiché il client non dovrebbe riprovare a meno che i file non vengano eliminati dalla directory.

Mappatura HTTP: richiesta 400 non valida

ABORTED

L'operazione è stata interrotta, in genere a causa di un problema di contemporaneità come un controllo di sequenza non riuscito o un'interruzione della transazione.

Consulta le linee guida sopra per decidere tra FAILED_PRECONDITION, ABORTED e UNAVAILABLE.

Mappatura HTTP: conflitto 409

OUT_OF_RANGE

L'operazione è stata tentata dopo l'intervallo valido. Ad esempio, eseguire ricerche o leggere oltre la fine del file.

A differenza di INVALID_ARGUMENT, questo errore indica un problema che potrebbe essere risolto se lo stato del sistema cambia. Ad esempio, un file system a 32 bit genererà INVALID_ARGUMENT se viene richiesto di leggere con un offset non compreso nell'intervallo [0,2^32-1], ma genera OUT_OF_RANGE se viene richiesto di leggere da un offset dopo la dimensione del file corrente.

Esiste una discreta sovrapposizione tra FAILED_PRECONDITION e OUT_OF_RANGE. Consigliamo di utilizzare OUT_OF_RANGE, l'errore più specifico, quando viene applicato, in modo che i chiamanti che eseguono l'iterazione tramite uno spazio possano cercare facilmente un errore di OUT_OF_RANGE per rilevare quando hanno finito.

Mappatura HTTP: richiesta 400 non valida

UNIMPLEMENTED

L'operazione non è implementata o non è supportata/attivata in questo servizio.

Mappatura HTTP: 501 non implementata

INTERNAL

Errori interni. Ciò significa che alcune varianti previste dal sistema sottostante sono state interrotte. Questo codice è riservato agli errori gravi.

Mappatura HTTP: errore server interno 500

UNAVAILABLE

Il servizio non è al momento disponibile. Si tratta molto probabilmente di una condizione temporanea, che può essere corretta riprovando con un backoff. Tieni presente che non è sempre sicuro riprovare a eseguire operazioni non idempotenti.

Consulta le linee guida sopra per decidere tra FAILED_PRECONDITION, ABORTED e UNAVAILABLE.

Mappatura HTTP: servizio 503 non disponibile

DATA_LOSS

Perdita o danneggiamento dei dati non recuperabili.

Mappatura HTTP: errore server interno 500