Corriger les erreurs

L'API Google Drive renvoie deux niveaux d'informations sur les erreurs:

  • Codes d'erreur HTTP et messages d'en-tête
  • Un objet JSON dans le corps de la réponse avec des informations supplémentaires qui peuvent vous aider déterminer comment gérer l'erreur.

Les applications Google Drive doivent détecter et gérer toutes les erreurs susceptibles de se produire lorsque vous utilisez l'API REST. Ce guide explique comment résoudre le problème des erreurs spécifiques à l'API Drive.

Résumé du code d'état HTTP

Code d'erreur Description
200 - OK La requête aboutit (il s'agit de la réponse standard pour les requêtes HTTP qui aboutissent).
400 - Bad Request Impossible de traiter la requête en raison d'une erreur du client.
401 - Unauthorized La requête contient des identifiants non valides.
403 - Forbidden La requête a été reçue et comprise, mais l'utilisateur n'est pas autorisé à l'exécuter.
404 - Not Found Impossible de trouver la page demandée.
429 - Too Many Requests Trop de requêtes adressées à l'API.
500, 502, 503, 504 - Server Errors Une erreur inattendue se produit lors du traitement de la requête.

Erreurs 400

Ces erreurs signifient que la demande n'était pas acceptable, souvent en raison d'une absence paramètre obligatoire.

badRequest

Cette erreur peut se produire pour l'un des problèmes suivants dans votre code:

  • Un champ ou un paramètre obligatoire n'a pas été renseigné.
  • La valeur fournie ou une combinaison de champs fournis n'est pas valide.
  • Vous avez essayé d'ajouter un parent en double à un fichier Drive.
  • Vous avez essayé d'ajouter un parent qui créerait un cycle dans le graphique du répertoire.

L'exemple JSON suivant est une représentation de cette erreur:

{
  "error": {
    "code": 400,
    "errors": [
      {
        "domain": "global",
        "location": "orderBy",
        "locationType": "parameter",
        "message": "Sorting is not supported for queries with fullText terms. Results are always in descending relevance order.",
        "reason": "badRequest"
      }
    ],
    "message": "Sorting is not supported for queries with fullText terms. Results are always in descending relevance order."
  }
}

Pour corriger cette erreur, vérifiez le champ message et ajustez votre code en conséquence.

invalidSharingRequest

Cette erreur se produit pour plusieurs raisons. Pour en déterminer la cause, évaluez Champ reason du fichier JSON renvoyé. Cette erreur se produit le plus souvent pour les raisons suivantes:

  • Le partage a réussi, mais l'e-mail de notification n'a pas été distribué correctement.
  • La modification de la liste de contrôle d'accès (LCA) n'est pas autorisée pour cet utilisateur.

Le champ message indique l'erreur réelle.

Le partage a bien été effectué, mais l'e-mail de notification n'a pas été envoyé correctement

L'exemple JSON suivant est une représentation de cette erreur:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "invalidSharingRequest",
        "message": "Bad Request. User message: \"Sorry, the items were successfully shared but emails could not be sent to email@domain.com.\""
      }
    ],
    "code": 400,
    "message": "Bad Request"
  }
}

Pour corriger cette erreur, informez l'utilisateur (partageur) qu'il n'a pas pu partager, car l'e-mail de notification n'a pas pu être envoyé à l'adresse e-mail de destination. La l'utilisateur doit s'assurer qu'il possède la bonne adresse e-mail et qu'il peut recevoir des e-mails.

La modification de la LCA n'est pas autorisée pour cet utilisateur

L'exemple JSON suivant est une représentation de cette erreur:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "invalidSharingRequest",
        "message": "Bad Request. User message: \"ACL change not allowed.\""
      }
    ],
    "code": 400,
    "message": "Bad Request"
  }
}

Pour corriger cette erreur, consultez les paramètres du domaine Google Workspace auquel appartient le fichier. Les paramètres peuvent interdire le partage en dehors du domaine, ou le partage d'un Drive partagé risque de ne pas être autorisé.

Erreurs 401

Ces erreurs signifient que la requête ne contient pas de jeton d'accès valide.

authError

Cette erreur se produit lorsque le jeton d'accès que vous utilisez a expiré ou non valide. Cette erreur peut également être due à l'absence d'autorisation pour les niveaux d'accès demandés. L'exemple JSON suivant est une représentation de cette erreur:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "authError",
        "message": "Invalid Credentials",
        "locationType": "header",
        "location": "Authorization",
      }
    ],
    "code": 401,
    "message": "Invalid Credentials"
  }
}

Pour corriger cette erreur, actualisez le jeton d'accès à l'aide du jeton d'actualisation de longue durée. En cas d'échec, dirigez l'utilisateur vers le flux OAuth, comme décrit dans la section Choisir Champs d'application des API Google Drive

Erreurs 403

Ces erreurs signifient qu'une limite d'utilisation a été dépassée ou que l'utilisateur n'a pas les droits appropriés. Pour déterminer la cause, évaluez le champ reason de le fichier JSON renvoyé.

Pour en savoir plus sur les limites de l'API Drive, consultez Limites d'utilisation. Pour en savoir plus sur le dossier Drive consultez Limites des fichiers et des dossiers.

activeItemCreationLimitExceeded

Une erreur activeItemCreationLimitExceeded se produit lorsque la limite du nombre Le nombre d'articles créés par compte a été dépassé. Chaque utilisateur peut avoir jusqu'à 500 millions d'éléments créés par un compte. Pour plus d'informations, voir User-item limite.

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "activeItemCreationLimitExceeded",
    "message": "This account has exceeded the creation limit of 500 million items. To create more items, permanently delete some items."
   }
  ],
  "code": 403,
  "message": "This account has exceeded the creation limit of 500 million items. To create more items, permanently delete some items."
 }
}

Solution :

  1. Informez l'utilisateur que Drive empêche la création de comptes. plus de 500 millions d'éléments.

  2. Si l'utilisateur doit créer des éléments dans ce même compte, demandez-lui de supprimer définitivement certains objets. Sinon, il peut utiliser un autre compte qui répond déjà aux exigences.

appNotAuthorizedToFile

Cette erreur se produit lorsque votre application ne figure pas dans la LCA du fichier. Cette erreur empêche l'utilisateur d'ouvrir le fichier avec votre application. L'exemple JSON suivant est une représentation de cette erreur:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "appNotAuthorizedToFile",
        "message": "The user has not granted the app {appId} {verb} access to the file {fileId}."
      }
    ],
    "code": 403,
    "message": "The user has not granted the app {appId} {verb} access to the file {fileId}."
  }
}

Pour corriger cette erreur, essayez l'une des solutions suivantes:

  • Ouvrir l'outil de sélection Google Drive et inviter l'utilisateur à ouvrir le fichier.
  • Demandez à l'utilisateur d'ouvrir le fichier à l'aide du menu contextuel Ouvrir avec dans Drive. UI de votre application
  • Utilisez la méthode files.get pour vérifiez le champ isAppAuthorized files pour vérifier application a créé ou ouvert le fichier.

cannotModifyInheritedTeamDrivePermission

Cette erreur se produit lorsqu'un utilisateur tente de modifier les autorisations héritées élément d'un Drive partagé. Impossible de supprimer les autorisations héritées pour un élément dans un Drive partagé. L'exemple JSON suivant est une représentation de cette erreur:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "cannotModifyInheritedTeamDrivePermission",
        "message": "Cannot update or delete an inherited permission on a shared drive item."
      }
    ],
    "code": 403,
    "message": "Cannot update or delete an inherited permission on a shared drive item."
  }
}

Pour corriger cette erreur, un utilisateur doit modifier les autorisations sur les accès directs ou indirects élément parent dont ils ont été hérités. Pour en savoir plus, consultez Autorisation la propagation. Vous pouvez récupèrent également permissions.permissionDetails ressource pour voir si les autorisations sur cet élément du Drive partagé sont héritées ou directement appliquées.

dailyLimitExceeded

Cette erreur se produit lorsque la limite d'API pour votre projet a été atteinte. Les éléments suivants : Un exemple JSON est une représentation de cette erreur:

{
  "error": {
    "errors": [
      {
        "domain": "usageLimits",
        "reason": "dailyLimitExceeded",
        "message": "Daily Limit Exceeded"
      }
    ],
    "code": 403,
    "message": "Daily Limit Exceeded"
  }
}

Cette erreur apparaît lorsque le propriétaire de l'application a défini une limite de quota d'une ressource donnée. Pour corriger cette erreur, supprimez les limites d'utilisation pour la colonne "Requêtes par jour" quota.

domainPolicy

Cette erreur se produit lorsque la règle du domaine de l'utilisateur n'autorise pas l'accès à Passez à côté de votre application. L'exemple JSON suivant est une représentation de cette erreur:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "domainPolicy",
        "message": "The domain administrators have disabled Drive apps."
      }
    ],
    "code": 403,
    "message": "The domain administrators have disabled Drive apps."
  }
}

Solution :

  1. Informez l'utilisateur que le domaine n'autorise pas votre application à accéder aux fichiers de Drive.
  2. Demandez à l'utilisateur de contacter l'administrateur du domaine pour demander l'accès à votre application.

fileOwnerNotMemberOfTeamDrive

Cette erreur se produit lorsque vous essayez de déplacer un fichier vers un Drive partagé et que le propriétaire du fichier n'est pas membre. L'exemple JSON suivant est une représentation de ce erreur:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "fileOwnerNotMemberOfTeamDrive",
        "message": "Cannot move a file into a shared drive as a writer when the owner of the file is not a member of that shared drive."
      }
    ],
    "code": 403,
    "message": "Cannot move a file into a shared drive as a writer when the owner of the file is not a member of that shared drive."
  }
}

Solution :

  1. Ajoutez le membre au Drive partagé avec role=owner. Pour plus d'informations, consultez Partager des fichiers, des dossiers et des Drive.

  2. Ajoutez le fichier au Drive partagé. Pour en savoir plus, consultez la section Créer et créer des dossiers.

fileWriterTeamDriveMoveInDisabled

Cette erreur se produit lorsqu'un administrateur de domaine n'a pas autorisé les utilisateurs avec role=writer pour déplacer des éléments vers un Drive partagé. L'utilisateur qui tente de déplacer le éléments ont moins d'autorisations que celles autorisées sur le Drive partagé de destination. La L'exemple JSON suivant est une représentation de cette erreur:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "fileWriterTeamDriveMoveInDisabled",
        "message": "The domain administrator has not allowed writers to move items into a shared drive."
      }
    ],
    "code": 403,
    "message": "The domain administrator has not allowed writers to move items into a shared drive."
  }
}

Pour corriger cette erreur, utilisez le même compte administrateur et les Drive partagés de destination.

insufficientFilePermissions

Cette erreur se produit lorsque l'utilisateur ne dispose pas d'un accès en écriture à un fichier et que votre l'application tente de modifier le fichier. L'exemple de code JSON suivant est un représentation de cette erreur:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "insufficientFilePermissions",
        "message": "The user does not have sufficient permissions for file {fileId}."
      }
    ],
    "code": 403,
    "message": "The user does not have sufficient permissions for file {fileId}."
  }
}

Pour corriger cette erreur, demandez à l'utilisateur de contacter le propriétaire du fichier et de lui demander les droits de modification. Vous pouvez également vérifier les niveaux d'accès des utilisateurs dans les métadonnées récupérées par la méthode files.get et affiche une en lecture seule lorsque les autorisations sont manquantes.

myDriveHierarchyDepthLimitExceeded

Une erreur myDriveHierarchyDepthLimitExceeded se produit lorsque la limite du le nombre de niveaux de dossiers imbriqués a été dépassé. L'objet My d'un utilisateur Drive ne peut pas contenir plus de 100 niveaux de dossiers imbriqués. Pour Pour en savoir plus, consultez la section Niveau de profondeur des dossiers limite.

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "myDriveHierarchyDepthLimitExceeded",
    "message": "Your My Drive can't contain more than 100 levels of folders. For details, see https://developers.google.com/drive/api/guides/handle-errors#nested-folder-levels."
   }
  ],
  "code": 403,
  "message": "Your My Drive can't contain more than 100 levels of folders. For details, see https://developers.google.com/drive/api/guides/handle-errors#nested-folder-levels."
 }
}

Solution :

  1. Informez l'utilisateur que Drive empêche de placer des dossiers au-delà de jusqu'à 100 niveaux.
  2. Si l'utilisateur doit créer un autre dossier imbriqué, demandez-lui de le réorganiser que le dossier parent prévu comporte moins de 100 niveaux ou utilise un autre dossier parent qui répond déjà à cette exigence.

numChildrenInNonRootLimitExceeded

Cette erreur se produit lorsque le nombre maximal d'enfants (dossiers, et les raccourcis). La limite de 500 000 éléments est dossiers, fichiers et raccourcis directement dans un dossier. Éléments imbriqués dans des sous-dossiers ne sont pas comptabilisées dans cette limite de 500 000 éléments. Pour en savoir plus sur Limites des dossiers Drive, consultez Limites des dossiers dans Google Drive

L'exemple JSON suivant est une représentation de cette erreur:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "numChildrenInNonRootLimitExceeded",
    "message": "The limit for this folder's number of children (files and folders) has been exceeded."
   }
  ],
  "code": 403,
  "message": "The limit for this folder's number of children (files and folders) has been exceeded."
 }
}

Pour corriger cette erreur, essayez l'une des solutions suivantes:

  • Informez l'utilisateur que Drive empêche les dossiers contenant plus de 500 000 éléments.
  • Si l'utilisateur doit ajouter d'autres éléments au dossier complet, demandez-lui de réorganiser le dossier pour qu'il contienne moins de 500 000 éléments ou utiliser un dossier contenant déjà moins d'éléments.

rateLimitExceeded

Cette erreur se produit lorsque la limite de débit du projet a été atteinte. Cette limite varie en fonction du type de demande. L'exemple de code JSON suivant est un représentation de cette erreur:

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "message": "Rate Limit Exceeded",
    "reason": "rateLimitExceeded",
   }
  ],
  "code": 403,
  "message": "Rate Limit Exceeded"
 }
}

Pour corriger cette erreur, essayez l'une des solutions suivantes:

sharingRateLimitExceeded

Cette erreur se produit lorsque l'utilisateur atteint une limite de partage et qu'il est souvent associé. avec une limite d'e-mails. L'exemple JSON suivant est une représentation de ce erreur:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "message": "Rate limit exceeded. User message: \"These item(s) could not be shared because a rate limit was exceeded: filename",
    "reason": "sharingRateLimitExceeded",
   }
  ],
  "code": 403,
  "message": "Rate Limit Exceeded"
 }
}

Solution :

  1. N'envoyez pas d'e-mails lorsque vous partagez de grandes quantités de fichiers.
  2. Si un utilisateur envoie de nombreuses demandes au nom de plusieurs utilisateurs d'un compte Google Workspace, envisagez d'utiliser un compte de service avec accès à l'échelle du domaine délégation à l'aide de l'quotaUser .

storageQuotaExceeded

Cette erreur se produit lorsque l'utilisateur atteint sa limite de stockage. Les éléments suivants : Un exemple JSON est une représentation de cette erreur:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "message": "The user's Drive storage quota has been exceeded.",
    "reason": "storageQuotaExceeded",
   }
  ],
  "code": 403,
  "message": "The user's Drive storage quota has been exceeded."
 }
}

Solution :

  1. Vérifiez les limites de stockage de votre compte Drive. Pour plus pour plus d'informations, consultez Stockage et importation dans Google Workspace limites.

  2. Gérez vos fichiers dans Google Drive stockage.

  3. Achetez plus de produits Google stockage.

teamDriveFileLimitExceeded

Cette erreur se produit lorsqu'un utilisateur tente de dépasser la limite stricte d'éléments pour une Drive partagé. Dans le Drive partagé d'un utilisateur,chaque dossier est limité à 500 000 éléments, y compris des fichiers, dossiers et raccourcis. Cette limite est basée sur le nombre d'éléments, et non sur l'utilisation de l'espace de stockage. Pour en savoir plus, consultez Limites des Drive partagés dans Google Drive

L'exemple JSON suivant est une représentation de cette erreur:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "teamDriveFileLimitExceeded",
        "message": "The file limit for this shared drive has been exceeded."
      }
    ],
    "code": 403,
    "message": "The file limit for this shared drive has been exceeded."
  }
}

Pour corriger cette erreur, réduisez le nombre d'éléments dans le Drive partagé. Drive partagés contenant trop de fichiers peut être difficile à organiser et à rechercher.

teamDriveHierarchyTooDeep

Une erreur teamDriveHierarchyTooDeep se produit lorsque la limite du nombre les niveaux de dossiers imbriqués du Drive partagé ont été dépassés. Le Drive partagé d'un utilisateur ne peut pas contiennent plus de 100 niveaux de dossiers imbriqués. Pour en savoir plus, consultez Limite de profondeur de dossier.

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "teamDriveHierarchyTooDeep",
    "message": "The shared drive hierarchy depth will exceed the limit."
   }
  ],
  "code": 403,
  "message": "The shared drive hierarchy depth will exceed the limit."
 }
}

Solution :

  1. Informez l'utilisateur que les Drive partagés ne permettent pas de placer des dossiers au-delà de jusqu'à 100 niveaux.
  2. Si l'utilisateur doit créer un autre dossier imbriqué, demandez-lui de le réorganiser que le dossier parent prévu comporte moins de 100 niveaux ou utilise un autre dossier parent qui répond déjà à cette exigence.

teamDriveMembershipRequired

Cette erreur se produit lorsqu'un utilisateur tente d'accéder à un Drive partagé dans lequel non membre. L'exemple JSON suivant est une représentation de cette erreur:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "teamDriveMembershipRequired",
        "message": "The attempted action requires shared drive membership."
      }
    ],
    "code": 403,
    "message": "The attempted action requires shared drive membership."
  }
}

Pour corriger cette erreur, essayez l'une des solutions suivantes:

  1. Demandez à l'administrateur du Drive partagé de vous ajouter avec le compte approprié pour l'action à effectuer.

  2. Passez en revue la section Rôles et autorisations pour savoir qui peut accéder aux accès et les gérer Drive partagés. Des informations supplémentaires sur les niveaux d'accès sont également disponibles dans l'article Créer un en voiture.

teamDrivesFolderMoveInNotSupported

Cette erreur se produit lorsqu'un utilisateur tente de déplacer un dossier de d'accéder à un Drive partagé ; L'exemple de code JSON suivant est un représentation de cette erreur:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "teamDrivesFolderMoveInNotSupported",
        "message": "Moving folders into shared drives is not supported."
      }
    ],
    "code": 403,
    "message": "Moving folders into shared drives is not supported."
  }
}

Pour corriger cette erreur, essayez l'une des solutions suivantes:

teamDrivesParentLimit

Cette erreur se produit lorsqu'un utilisateur tente d'ajouter plusieurs parents à un élément dans un Drive partagé. L'exemple JSON suivant est une représentation de cette erreur:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "teamDrivesParentLimit",
        "message": "A shared drive item must have exactly one parent."
      }
    ],
    "code": 403,
    "message": "A shared drive item must have exactly one parent."
  }
}

Pour corriger cette erreur, utilisez les raccourcis Drive afin d'ajouter plusieurs liens à une . Bien qu'un raccourci ne puisse avoir qu'un seul parent, un fichier de raccourci peut être copiées vers les emplacements supplémentaires. Pour en savoir plus, consultez la section Créer un un raccourci vers un fichier Drive.

UrlLeaseLimitExceeded

Cette erreur se produit lorsque vous essayez d'enregistrer des données de jeu Google Play via votre application. L'exemple JSON suivant est une représentation de cette erreur:

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "UrlLeaseLimitExceeded",
    "message": "Too many pending uploads for this snapshot. Please finish or cancel some before creating more."
   }
  ],
  "code": 403,
  "message": "Too many pending uploads for this snapshot. Please finish or cancel some before creating more."
 }
}

Pour corriger cette erreur, terminez ou annulez toutes les importations d'un instantané avant de créer plus encore.

userRateLimitExceeded

Cette erreur se produit lorsque la limite par utilisateur a été atteinte. Il peut s'agir dans la console Google Cloud ou depuis Drive. backend. L'exemple JSON suivant est une représentation de cette erreur:

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "userRateLimitExceeded",
    "message": "User Rate Limit Exceeded"
   }
  ],
  "code": 403,
  "message": "User Rate Limit Exceeded"
 }
}

Pour corriger cette erreur, essayez l'une des solutions suivantes:

Pour en savoir plus sur les limites de l'API Drive, consultez Limites d'utilisation.

Erreurs 404

Ces erreurs signifient que la ressource demandée n'est pas accessible ou n'existe pas.

notFound

Cette erreur se produit lorsque l'utilisateur ne dispose pas d'un accès en lecture à un fichier n'existe pas. L'exemple JSON suivant est une représentation de cette erreur:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "notFound",
        "message": "File not found {fileId}"
      }
    ],
    "code": 404,
    "message": "File not found: {fileId}"
  }
}

Solution :

  1. Si le fichier se trouve dans un Drive partagé et que vous utilisez le files.get, assurez-vous que le Le paramètre de requête supportsAllDrives est défini sur true.
  2. Informer l'utilisateur qu'il ne dispose pas d'un accès en lecture au fichier ou au fichier n'existe pas.
  3. Demandez à l'utilisateur de contacter le propriétaire du fichier et de lui demander l'autorisation .

Erreurs 429

Ces erreurs signifient que trop de requêtes ont été envoyées à l'API trop rapidement.

rateLimitExceeded

Cette erreur se produit lorsque l'utilisateur a envoyé trop de requêtes au cours d'une de temps. L'exemple JSON suivant est une représentation de cette erreur:

{
  "error": {
    "errors": [
      {
        "domain": "usageLimits",
        "reason": "rateLimitExceeded",
        "message": "Rate Limit Exceeded"
      }
    ],
    "code": 429,
    "message": "Rate Limit Exceeded"s
  }
}

Pour corriger cette erreur, utilisez entre les tentatives pour relancer la requête.

Erreurs 500, 502, 503, 504

Ces erreurs se produisent lorsqu'une erreur inattendue du serveur se produit lors du traitement du requête. Différents problèmes peuvent être à l'origine de ces erreurs, y compris la chronologie d'une requête en chevauchement avec une autre demande ou une demande concernant une action non acceptée, par exemple de mettre à jour les autorisations d'une seule page dans Google Sites au lieu de l'ensemble du site.

Voici une liste d'erreurs 5xx:

  • 500 Erreur de backend
  • 502 Passerelle incorrecte
  • 503 Service indisponible.
  • 504 Expiration du délai de la passerelle

Pour corriger cette erreur, utilisez entre les tentatives pour relancer la requête.