Les codes d'état ci-dessous peuvent être renvoyés dans les réponses gRPC. Ces données s'appliquent à l'ensemble des versions de gRPC documentées sur ce site.
Code | État | Remarques |
---|---|---|
0 | OK |
Retour le Success |
1 | CANCELLED |
L'opération a été annulée, généralement par l'appelant. |
2 | UNKNOWN |
Par exemple, cette erreur peut être renvoyée lorsqu'une valeur d'état reçue en provenance d'un autre espace d'adressage appartient à un espace d'erreurs inconnu dans cet espace d'adressage. De plus, les erreurs des API qui ne renvoient pas suffisamment d'informations relatives aux erreurs peuvent être converties dans cette erreur. |
3 | INVALID_ARGUMENT |
Le client a spécifié un argument non valide. |
4 | DEADLINE_EXCEEDED |
Le délai a expiré avant que l'opération ne soit terminée. Pour les opérations qui modifient l'état du système, cette erreur peut être affichée même si l'opération s'est terminée avec succès. Par exemple, une réponse réussie d'un serveur qui a été retardée suffisamment longtemps pour que le délai expire. |
5 | NOT_FOUND |
Impossible de trouver l'entité demandée. |
6 | ALREADY_EXISTS |
L'entité qu'un client a essayé de créer existe déjà. |
7 | PERMISSION_DENIED |
L'appelant n'est pas autorisé à exécuter l'opération spécifiée. N'utilisez pas PERMISSION_DENIED pour les refus causés par l'épuisement d'une ressource. Utilisez plutôt RESOURCE_EXHAUSTED pour ces erreurs. N'utilisez pas PERMISSION_DENIED si l'appelant ne peut pas être identifié (utilisez plutôt UNAUTHENTICATED pour ces erreurs). Le fait de recevoir un code d'erreur PERMISSION_DENIED n'implique pas que la requête soit valide ni que l'entité demandée existe ou qu'elle répond à d'autres prérequis. |
8 | RESOURCE_EXHAUSTED |
Certaines ressources ont été épuisées ; par exemple, un quota par utilisateur a été atteint ou le système de fichiers dans son intégralité manque d'espace. |
9 | FAILED_PRECONDITION |
L'opération a été rejetée car le système n'est pas dans un état requis pour exécuter l'opération. Par exemple, le répertoire à supprimer n'est pas vide ou une opération rmdir est appliquée à un emplacement qui n'est pas un répertoire. |
10 | ABORTED |
L'opération a été abandonnée, généralement en raison d'un problème de simultanéité, tel qu'un échec de vérification du séquenceur ou un abandon de transaction. |
11 | OUT_OF_RANGE |
L'opération a été tentée au-delà de la plage valide. |
12 | UNIMPLEMENTED |
L'opération n'est pas mise en œuvre ou n'est pas prise en charge/activée dans ce service. |
13 | INTERNAL |
Erreurs internes. Cela signifie que certains invariants attendus par le système sous-jacent n'ont pas été respectés. Ce code d'erreur est réservé aux erreurs graves. |
14 | UNAVAILABLE |
Le service est actuellement indisponible. Il s'agit probablement d'une condition temporaire qui peut être corrigée en réessayant après avoir laissé passer un intervalle entre les tentatives. |
15 | DATA_LOSS |
Perte ou corruption de données irrécupérable. |
16 | UNAUTHENTICATED |
La requête ne dispose pas d'identifiants d'authentification valides pour l'opération. |
Parfois, plusieurs codes d'erreur peuvent s'appliquer. Dans ce cas, le service doit renvoyer le code qui s'applique le plus spécifiquement. Par exemple, préférez OUT_OF_RANGE
à FAILED_PRECONDITION
si les deux codes s'appliquent.
De même, préférez NOT_FOUND
ou ALREADY_EXISTS
à FAILED_PRECONDITION
.
Comparaison des codes FAILED_PRECONDITION, ABORTED et UNAVAILABLE
Voici un test décisif qui peut vous aider à choisir entre FAILED_PRECONDITION
, ABORTED
et UNAVAILABLE
:
- Utilisez
UNAVAILABLE
si le client peut retenter uniquement l'appel qui a échoué. - Utilisez
ABORTED
si le client doit effectuer une nouvelle tentative à un niveau supérieur, par exemple lorsqu'un test-and-set spécifié par le client échoue, indiquant que le client doit redémarrer une séquence lecture-modification-écriture. - Utilisez
FAILED_PRECONDITION
si le client ne doit pas retenter l'appel tant que l'état du système n'a pas été explicitement corrigé. Par exemple, si une opération "rmdir" échoue parce que le répertoire n'est pas vide, il est préférable de renvoyerFAILED_PRECONDITION
, car le client ne doit pas retenter l'appel tant que les fichiers n'ont pas été supprimés du répertoire.
Comparaison des codes INVALID_ARGUMENT, FAILED_PRECONDITION et OUT_OF_RANGE
Voici un test décisif qui peut vous aider à choisir entre INVALID_ARGUMENT
, FAILED_PRECONDITION
et OUT_OF_RANGE
:
- Utilisez
INVALID_ARGUMENT
si les arguments posent problème quel que soit l'état du système. (par exemple, une URL mal rédigée) - Utilisez
OUT_OF_RANGE
si une valeur est en dehors de la plage en raison de l'état du système. Par exemple, la date de début est antérieure àstart_date_restrict
. - Utilisez
FAILED_PRECONDITION
si la valeur n'est pas valide en raison de l'état du système, mais ne correspond pas à une valeurOUT_OF_RANGE
.