Errores y manejo de errores

Cuando una solicitud de Google Cloud Datastore se ejecuta de forma correcta, la API muestra un código de estado HTTP 200 OK junto con los datos solicitados en el cuerpo de la respuesta.

Cuando una solicitud falla, la API de Cloud Datastore muestra un código de estado HTTP 4xx o 5xx que identifica genéricamente la falla, así como una respuesta que proporciona información más específica sobre los errores que la generaron.

En el resto de esta página, se describe la estructura de un error, se detallan códigos de error específicos y se recomienda cómo manejarlos.

A continuación, se muestra la estructura de una respuesta de error para una solicitud JSON:

{
  "error": {
    "code": "integer",
    "message": "string",
    "status": "string"
  }
}

El objeto de respuesta contiene un solo error de campo, cuyo valor contiene los siguientes elementos:

Elemento Descripción
code Un código de estado HTTP que identifica genéricamente la falla de la solicitud.
message Información específica sobre la falla de la solicitud.
status El código de error canónico (google.rpc.Code) de las API de Google. Los códigos que muestra la API de Cloud Datastore se describen en la sección Códigos de error.

Este es un ejemplo de una respuesta de error para una solicitud JSON:

{
  "error": {
    "code": 400,
    "message": "Key path is incomplete: [Person: null]",
    "status": "INVALID_ARGUMENT"
  }
}

Si una solicitud realizada con un tipo de contenido de application/x-protobuf genera un error, se mostrará un mensaje serializado google.rpc.Status como carga útil.

Códigos de error

La forma recomendada de clasificar los errores es inspeccionar el valor del código de error canónico (google.rpc.Code). En los errores JSON, este código aparece en el campo status. En los errores de application/x-protobuf, aparece en el campo code.

Código de error canónico Descripción Acción recomendada
ABORTED Indica que la solicitud entró en conflicto con otra. Para una confirmación no transaccional:
Vuelve a intentar la solicitud o estructura tus entidades para reducir la contención.

Para solicitudes que forman parte de una confirmación transaccional:
Vuelve a intentar la transacción completa o estructura las entidades para reducir la contención.
ALREADY_EXISTS Indica que la solicitud intentó insertar una entidad que ya existe. No vuelvas a intentar la operación sin solucionar el problema.
DEADLINE_EXCEEDED Se superó la fecha límite en el servidor. Vuelve a intentarlo con una retirada exponencial.
FAILED_PRECONDITION Indica que no se cumplió una condición previa para la solicitud. El campo de mensaje en la respuesta de error proporciona información sobre la condición previa que falló. Una causa posible es ejecutar una consulta que requiere un índice aún no definido. No vuelvas a intentar la operación sin solucionar el problema.
INTERNAL El servidor mostró un error. No vuelvas a intentar esta solicitud más de una vez.
INVALID_ARGUMENT Indica que un parámetro de solicitud tiene un valor no válido. El campo de mensaje en la respuesta de error proporciona información sobre el valor que no fue válido. No vuelvas a intentar la operación sin solucionar el problema.
NOT_FOUND Indica que la solicitud intentó actualizar una entidad que no existe. No vuelvas a intentar la operación sin solucionar el problema.
PERMISSION_DENIED Indica que el usuario no estaba autorizado a realizar la solicitud. No vuelvas a intentar la operación sin solucionar el problema.
RESOURCE_EXHAUSTED Indica que el usuario superó la cuota del proyecto. No vuelvas a intentar la operación sin solucionar el problema. Para obtener información sobre cómo aumentar la cuota del proyecto, consulta Precios y cuota.
UNAUTHENTICATED Indica que la solicitud no tenía credenciales de autenticación válidas. No vuelvas a intentar la operación sin solucionar el problema.
UNAVAILABLE El servidor mostró un error. Vuelve a intentarlo con una retirada exponencial.
¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Documentación de Cloud Datastore