Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Cuando una solicitud de Firestore en modo Datastore se completa de forma correcta, la API mostrará un código de estado HTTP 200 OK, junto con los datos solicitados en el cuerpo de la respuesta.
Cuando falla una solicitud, la API de Datastore muestra un código de estado HTTP 4xx o 5xx que identifica de forma genérica la falla y una respuesta que proporciona información más específica sobre los errores que la causaron.
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:
Si una solicitud realizada con un tipo de contenido de application/x-protobuf genera un error, se mostrará un mensaje google.rpc.Status en serie como la 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 de JSON, este código aparece en el campo status. En los errores application/x-protobuf, está 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: Reintenta la solicitud o estructura tus entidades a fin de reducir la contención.
Para solicitudes que forman parte de una confirmación transaccional: Vuelve a intentar la transacción completa o estructura tus entidades a fin de 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 proyecto superó su cuota, o la capacidad de la región o la multirregión.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-09-05 (UTC)"],[[["\u003cp\u003eSuccessful Firestore in Datastore mode requests return an HTTP \u003ccode\u003e200 OK\u003c/code\u003e status code with the requested data.\u003c/p\u003e\n"],["\u003cp\u003eFailed requests return an HTTP \u003ccode\u003e4xx\u003c/code\u003e or \u003ccode\u003e5xx\u003c/code\u003e status code and an error response containing \u003ccode\u003ecode\u003c/code\u003e, \u003ccode\u003emessage\u003c/code\u003e, and \u003ccode\u003estatus\u003c/code\u003e fields.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003estatus\u003c/code\u003e field within error responses represents the canonical error code, crucial for classifying and understanding the nature of the error.\u003c/p\u003e\n"],["\u003cp\u003eThe content type of the request (\u003ccode\u003eapplication/x-protobuf\u003c/code\u003e or JSON) will determine the structure of the error in response, with the \u003ccode\u003ecode\u003c/code\u003e field being different depending on the content.\u003c/p\u003e\n"],["\u003cp\u003eSpecific error codes, such as \u003ccode\u003eABORTED\u003c/code\u003e, \u003ccode\u003eALREADY_EXISTS\u003c/code\u003e, or \u003ccode\u003eDEADLINE_EXCEEDED\u003c/code\u003e, provide detailed reasons for failure and guide appropriate actions like retrying or fixing the request.\u003c/p\u003e\n"]]],[],null,["# Errors and Error Handling\n\nWhen a Firestore in Datastore mode request is successful, the API will return an HTTP\n`200 OK` status code along with the requested data in the body of the response.\n| **Note:** The errors and status codes described in this page are returned by the low-level Datastore API. Note that client libraries may or may not return these same values.\n\nWhen a request fails, the Datastore API will return an HTTP\n`4xx` or `5xx` status code that generically identifies the failure as well as a\nresponse that provides more specific information about the error(s) that caused\nthe failure.\n\nThe rest of this page describes the structure of an error, enumerates specific\nerror codes, and recommends how to handle them.\n\nThe following is the structure of an error response for a JSON request: \n\n {\n \"error\": {\n \"code\": \"integer\",\n \"message\": \"string\",\n \"status\": \"string\"\n }\n }\n\nThe response object contains a single field `error` whose value contains the\nfollowing elements:\n\nHere's an example of an error response for a JSON request: \n\n {\n \"error\": {\n \"code\": 400,\n \"message\": \"Key path is incomplete: [Person: null]\",\n \"status\": \"INVALID_ARGUMENT\"\n }\n }\n\nIf a request made with a content type of `application/x-protobuf` results in an\nerror, it will return a serialized [`google.rpc.Status`](https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto) message as the\npayload.\n| **Note:** The text provided in the message could change at any time so applications should not depend on the actual text.\n\nError Codes\n-----------\n\nThe recommended way to classify errors is inspect the value of the\n[canonical error code](https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto) (`google.rpc.Code`). In JSON errors, this code appears\nin the `status` field. In `application/x-protobuf` errors, it's in the `code`\nfield."]]