Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Lorsqu'une requête Firestore en mode Datastore aboutit, l'API renvoie un code d'état HTTP 200 OK avec les données demandées dans le corps de la réponse.
Lorsqu'une requête échoue, l'API Datastore renvoie un code d'état HTTP 4xx ou 5xx qui identifie l'échec de manière générique, ainsi qu'une réponse fournissant des informations plus spécifiques sur les erreurs ayant causé l'échec.
Le reste de cette page décrit la structure d'une erreur, énumère des codes d'erreur spécifiques et donne des conseils concernant leur gestion.
Voici la structure d'une réponse d'erreur pour une requête JSON :
L'objet de la réponse contient un seul champ error dont la valeur contient les éléments suivants :
Élément
Description
code
Un code d'état HTTP identifiant de manière générique l'échec de la requête.
message
Des informations spécifiques au sujet de la requête.
status
Le code d'erreur canonique (google.rpc.Code) pour les API Google. Les codes renvoyés par l'API Cloud Datastore sont répertoriés dans la section Codes d'erreur.
Voici un exemple de réponse d'erreur pour une requête JSON :
Si une requête effectuée avec un type de contenu application/x-protobuf génère une erreur, elle renvoie un message sérialisé google.rpc.Status en tant que charge utile.
Codes d'erreur
La méthode recommandée pour classer les erreurs consiste à inspecter la valeur du code d'erreur canonique (google.rpc.Code). Dans les erreurs JSON, ce code apparaît dans le champ status. Dans les erreurs application/x-protobuf, il se trouve dans le champ code.
Code d'erreur canonique
Description
Action recommandée
ABORTED
Indique que la requête entre en conflit avec une autre requête.
Pour une validation non transactionnelle : réessayez la requête ou restructurez vos entités pour réduire la contention.
Pour les requêtes faisant partie d'un commit transactionnel : réessayez l'intégralité de la transaction ou restructurez vos entités afin de réduire la contention.
ALREADY_EXISTS
Indique que la requête a tenté d'insérer une entité qui existe déjà.
Ne relancez pas la requête avant d'avoir résolu le problème.
DEADLINE_EXCEEDED
Un délai a été dépassé sur le serveur.
Relancez la requête avec un intervalle exponentiel entre les tentatives.
FAILED_PRECONDITION
Indique qu'une condition préalable à la requête n'a pas été remplie. Le champ "message" dans la réponse d'erreur fournit des informations sur la condition préalable ayant échoué. L'une des causes possibles peut être due à l'exécution d'une requête nécessitant un index pas encore défini.
Ne relancez pas la requête avant d'avoir résolu le problème.
INTERNAL
Le serveur a renvoyé une erreur.
Ne relancez pas cette requête plus d'une fois.
INVALID_ARGUMENT
Indique qu'un paramètre de requête inclut une valeur non valide. Le champ "message" dans la réponse d'erreur fournit des informations au sujet de la valeur non valide.
Ne relancez pas la requête avant d'avoir résolu le problème.
NOT_FOUND
Indique que la requête a tenté de mettre à jour une entité qui n'existe pas.
Ne relancez pas la requête avant d'avoir résolu le problème.
PERMISSION_DENIED
Indique que l'utilisateur n'était pas autorisé à effectuer la requête.
Ne relancez pas la requête avant d'avoir résolu le problème.
RESOURCE_EXHAUSTED
Indique que le projet a dépassé son quota ou la capacité régionale/multi-régionale.
Sinon, relancez la requête avec un intervalle exponentiel entre les tentatives.
UNAUTHENTICATED
Indique que la requête ne dispose pas d'identifiants d'authentification valides.
Ne relancez pas la requête avant d'avoir résolu le problème.
UNAVAILABLE
Le serveur a renvoyé une erreur.
Relancez la requête avec un intervalle exponentiel entre les tentatives.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/05 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 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."]]