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 d'un autre espace d'adressage appartient à un espace d'erreur inconnu de cet espace d'adressage. En outre, les erreurs générées par des API qui ne renvoient pas suffisamment d'informations peuvent être converties en cette erreur. |
3 | INVALID_ARGUMENT |
Le client a spécifié un argument non valide. |
4 | DEADLINE_EXCEEDED |
Le délai a expiré avant la fin de l'opération. Pour les opérations qui modifient l'état du système, cette erreur peut être renvoyée même si l'opération a abouti. (par exemple, une réponse positive d'un serveur qui a été suffisamment retardée pour que le délai expire). |
5 | NOT_FOUND |
L'entité demandée est introuvable. |
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). Recevoir un code d'erreur PERMISSION_DENIED ne signifie pas que la requête est valide, que l'entité demandée existe ou qu'elle remplit d'autres conditions préalables. |
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 très probablement d'une condition temporaire qui peut être corrigée si vous effectuez de nouvelles tentatives avec 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 ne relancer que l'appel ayant échoué. - Utilisez
ABORTED
si le client doit effectuer de nouvelles tentatives à un niveau supérieur, par exemple en cas d'échec d'une opération de test et de définition spécifiée par le client, ce qui indique que le client doit redémarrer une séquence lecture-modification-écriture. - Utilisez
FAILED_PRECONDITION
si le client ne doit pas effectuer de nouvelle tentative tant que l'état du système n'a pas été explicitement corrigé. Par exemple, si un "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 réessayer, sauf si les fichiers sont 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 dont le format est incorrect) - Utilisez
OUT_OF_RANGE
si une valeur est en dehors de la plage en raison de l'état du système. Par exemple, la valeur start_date est antérieure austart_date_restrict
. - Utilisez
FAILED_PRECONDITION
si la valeur n'est pas valide en raison de l'état du système, mais qu'il ne s'agit pas d'une valeurOUT_OF_RANGE
.