Los siguientes códigos de estado pueden mostrarse en las respuestas de gRPC. Esto se aplica a todas las versiones de gRPC documentadas en este sitio.
Código | Estado | Notas |
---|---|---|
0 | OK |
Regresa el Success |
1 | CANCELLED |
La operación se canceló (por lo general, la cancela el emisor). |
2 | UNKNOWN |
Por ejemplo, este error se puede mostrar cuando un valor de estado recibido de otro espacio de dirección pertenece a un espacio de error que no se conoce en este espacio de direcciones. Además, los errores generados por las APIs que no muestran suficiente información sobre el error pueden convertirse en este error. |
3 | INVALID_ARGUMENT |
El cliente especificó un argumento no válido. |
4 | DEADLINE_EXCEEDED |
El plazo venció antes de que se completara la operación. En el caso de las operaciones que cambian el estado del sistema, es posible que se muestre este error incluso si la operación se completa correctamente. Por ejemplo, una respuesta correcta de un servidor que se retrasó el tiempo suficiente para que venciera el plazo. |
5 | NOT_FOUND |
No se encontró alguna entidad solicitada. |
6 | ALREADY_EXISTS |
Ya existe la entidad que intentó crear un cliente. |
7 | PERMISSION_DENIED |
El llamador no tiene permiso para ejecutar la operación especificada. No uses PERMISSION_DENIED para los rechazos causados por el agotamiento de algún recurso; en su lugar, usa RESOURCE_EXHAUSTED para esos errores. No uses PERMISSION_DENIED si no se puede identificar al emisor (en su lugar, usa UNAUTHENTICATED para esos errores). Recibir un código de error PERMISSION_DENIED no implica que la solicitud sea válida, o que la entidad solicitada exista o cumpla con otras condiciones previas. |
8 | RESOURCE_EXHAUSTED |
Algunos recursos se agotaron, tal vez una cuota por usuario, o tal vez se agotó el espacio de todo el sistema de archivos. |
9 | FAILED_PRECONDITION |
La operación se rechazó debido a que el sistema no se encuentra en un estado necesario para la ejecución de la operación. Por ejemplo, el directorio que se borrará no está vacío o se aplica una operación rmdir a un directorio que no sea de directorio. |
10 | ABORTED |
La operación se anuló, generalmente debido a un problema de simultaneidad, como una falla en la verificación del secuenciador o la anulación de la transacción. |
11 | OUT_OF_RANGE |
La operación se intentó fuera del rango válido. |
12 | UNIMPLEMENTED |
La operación no se implementó, no se admite o no está habilitada en este servicio. |
13 | INTERNAL |
Errores internos. Esto significa que algunos invariantes que espera el sistema subyacente están rotos. Este código de error se reserva para errores graves. |
14 | UNAVAILABLE |
El servicio no está disponible actualmente. Lo más probable es que esta sea una condición transitoria que pueda corregirse si se vuelve a intentar con una retirada. |
15 | DATA_LOSS |
Daño o pérdida de datos no recuperable. |
16 | UNAUTHENTICATED |
La solicitud no tiene credenciales de autenticación válidas para la operación. |
A veces, es posible que se apliquen varios códigos de error. Los servicios deben mostrar el código de error más específico que corresponda. Por ejemplo, prioriza OUT_OF_RANGE
en lugar de FAILED_PRECONDITION
si se aplican ambos códigos.
Del mismo modo, prioriza NOT_FOUND
o ALREADY_EXISTS
en lugar de FAILED_PRECONDITION
.
FAILED_PRECONDITION, ABORTED o UNAVAILABLE
La siguiente es una prueba de fuego que puede ayudarte a decidir entre FAILED_PRECONDITION
, ABORTED
y UNAVAILABLE
:
- Usa
UNAVAILABLE
si el cliente puede reintentar solo la llamada con errores. - Usa
ABORTED
si el cliente debe reintentar en un nivel superior, como cuando falla una prueba y un conjunto especificados por el cliente, lo que indica que el cliente debe reiniciar una secuencia de lectura, modificación y escritura. - Usa
FAILED_PRECONDITION
si el cliente no debe volver a intentarlo hasta que el estado del sistema se corrija de forma explícita. Por ejemplo, si un "rmdir" falla porque el directorio no está vacío, es mejor mostrarFAILED_PRECONDITION
porque el cliente no debería volver a intentarlo, a menos que se borren los archivos del directorio.
INVALID_ARGUMENT, FAILED_PRECONDITION o OUT_OF_RANGE
La siguiente es una prueba de fuego que puede ayudarte a decidir entre INVALID_ARGUMENT
, FAILED_PRECONDITION
y OUT_OF_RANGE
:
- Usa
INVALID_ARGUMENT
si los argumentos son problemáticos, sin importar el estado del sistema. Por ejemplo, una URL con formato incorrecto. - Usa
OUT_OF_RANGE
si un valor está fuera del rango debido al estado del sistema. Por ejemplo, start_date es anterior astart_date_restrict
. - Usa
FAILED_PRECONDITION
si el valor no es válido debido al estado del sistema, pero no es un valorOUT_OF_RANGE
.