ErrorDetail en los detalles del estado, y dice lo que
POST /secure/send habría respondido a la misma petición. Así que todo lo
escrito sobre los errores de REST se aplica también aquí: el código gRPC es la forma que tiene el
transporte de decirlo, y ErrorDetail es el detalle.
Leer ErrorDetail
Viaja en el trailer estándar de estado enriquecido (grpc-status-details-bin). Léalo con la función
auxiliar de su biblioteca:
En un
SendStream el mismo
ErrorDetail llega en línea en el campo error del resultado, junto al code numérico.
Ramifique según
code, no según message. El mensaje es para una persona que lee un log y puede
redactarse de otra forma en una versión posterior; los códigos forman parte del contrato congelado.
Cuando reintentar ayuda, se empaqueta un google.rpc.RetryInfo estándar junto a ErrorDetail con el
mismo retardo, para las bibliotecas cliente que lo respetan.
Envío
Nada rechazado se cobra, y nada rechazado cuenta para su límite de tasa.
OUTCOME_UNKNOWN: reintente solo con client_ref
Por el mismo motivo, si configura una política de reintentos en su biblioteca cliente (un
retryPolicy en la configuración de servicio de gRPC), incluya en ella UNAVAILABLE y
RESOURCE_EXHAUSTED y nunca UNKNOWN.
Sesiones y la propia API
UNAUTHENTICATED cubre tres situaciones distintas, así que lea ErrorDetail.code: solo
SESSION_EXPIRED se resuelve volviendo a iniciar sesión. Consulte
Autenticación y sesiones.
Acuses
Un
Ack que nombra un acuse que ya no existe no es un error: se cuenta en already_gone. Consulte
Acuses de entrega por gRPC.
Relacionado
Errores de la API REST
Los mismos rechazos, como estados HTTP.
Gestión de errores
Construir para el acuse en lugar de para la respuesta.