エラーを解決する。

Google Drive API は、次の 2 つのレベルのエラー情報を返します。

  • HTTP エラーコードとヘッダー メッセージ。
  • レスポンス本文の JSON オブジェクト。参考情報として、 エラーの処理方法を決定します

Google ドライブ アプリは、発生する可能性のあるすべてのエラーを検出して処理する必要があります。 注意すべき点がいくつかありますこのガイドでは、これらの問題を解決する方法について説明します。 エラーが表示されます。

HTTP ステータス コードの概要

エラーコード 説明
200 - OK リクエストは成功します(これは HTTP リクエストが正常に終了した場合の標準のレスポンスです)。
400 - Bad Request リクエストでクライアント エラーが発生したため、リクエストを処理できません。
401 - Unauthorized リクエストに無効な認証情報が含まれています。
403 - Forbidden リクエストは受信され、認識されましたが、ユーザーにリクエストを実行する権限がありません。
404 - Not Found リクエストされたページが見つかりませんでした。
429 - Too Many Requests API へのリクエスト数が多すぎます。
500, 502, 503, 504 - Server Errors リクエストの処理中に予期しないエラーが発生しました。

400 エラー

これらのエラーはリクエストが受け入れられないことを意味し、多くの場合、 必須パラメータ。

badRequest

このエラーは、コード内の次のいずれかの問題が原因で発生する可能性があります。

  • 必須項目またはパラメータが提供されていません。
  • 指定した値、または指定したフィールドの組み合わせが無効です。
  • 重複する親をドライブ ファイルに追加しようとしました。
  • ディレクトリ グラフにサイクルを作成する親を追加しようとしました。

次の JSON サンプルは、このエラーの表現です。

{
  "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."
  }
}

このエラーを修正するには、message フィールドを確認し、それに応じてコードを調整します。

invalidSharingRequest

このエラーは、いくつかの原因で発生します。原因を特定するには、 返された JSON の reason フィールド。このエラーは通常、次の場合に発生します。

  • 共有は成功しましたが、通知メールが正しく配信されませんでした。
  • このユーザーに対してアクセス制御リスト(ACL)の変更は許可されていません。

message フィールドは実際のエラーを示します。

共有は成功したが、通知メールが正しく配信されなかった

次の JSON サンプルは、このエラーの表現です。

{
  "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"
  }
}

このエラーを修正するには、次の理由で共有できなかったことをユーザー(共有者)に伝えます。 通知メールを宛先メールアドレスに送信できませんでした。「 正しいメールアドレスを持ち、そのアドレスから メールを受信します。

このユーザーに対して ACL の変更が許可されていません

次の JSON サンプルは、このエラーの表現です。

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

このエラーを解決するには、 設定 Google Workspace ドメインのグループです。この設定では、 ドメイン外との共有を禁止したり、共有ドライブの共有を 限りません。

401 エラー

これらのエラーは、リクエストに有効なアクセス トークンが含まれていないことを意味します。

authError

このエラーは、使用しているアクセス トークンの有効期限が切れているか、 無効です。このエラーは、サービス アカウントに対する認証が不足している場合にも スコープです。次の JSON サンプルは、このエラーの表現です。

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

このエラーを修正するには、有効期間の長い更新トークンを使用してアクセス トークンを更新します。 失敗した場合は、Choose Google Drive API のスコープ

403 エラー

これらのエラーは、使用量上限を超えているか、ユーザーに上限がないことを示しています 付与できます。原因を特定するには、次の reason フィールドを評価します。 返されます。

Drive API の制限について詳しくは、使用量上限をご覧ください。ドライブ フォルダについて詳しくは、 ファイルとフォルダの上限を参照してください。

activeItemCreationLimitExceeded

上限数に達すると activeItemCreationLimitExceeded エラーが発生する アカウントごとに作成されたアイテムの数が上限を超えています。ユーザーごとに最大 500 個の 100 万個にのぼります詳細については、User-item を参照 。

{
 "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."
 }
}

このエラーを解決するには:

  1. ドライブではアカウントを作成できないことをユーザーに伝える 5 億個を超えるアイテムが 含まれます

  2. ユーザーが同じアカウントでアイテムを作成する必要がある場合は、次の手順をご案内します。 オブジェクトを完全に削除できます。それ以外の場合は、別のアカウントを使用できます。 要件を満たす必要があります

appNotAuthorizedToFile

このエラーは、そのファイルの ACL にアプリが登録されていない場合に発生します。このエラーは ユーザーがアプリでファイルを開けないようにします。次の JSON サンプルは、 次のエラーを表しています。

{
  "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}."
  }
}

このエラーを解決するには、次のいずれかを試してください。

  • Google ドライブの選択ツールを開く ファイルを開くようユーザーに促します。
  • ドライブの [アプリで開く] コンテキスト メニューを使用してファイルを開くようユーザーに指示します。 アプリの UI。
  • files.get メソッドを使用して、以下を行います。 ページの isAppAuthorized フィールドを確認します。 files リソースを使用して、 アプリによってファイルが作成または開かれました。

cannotModifyInheritedTeamDrivePermission

このエラーは、ユーザーが権限を継承した権限を 削除することもできます。継承された権限をアイテムから削除することはできません 。次の JSON サンプルは、このエラーの表現です。

{
  "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."
  }
}

このエラーを修正するには、ユーザーは直接的または間接的な権限の 継承された親アイテム。詳細については、次をご覧ください: 権限 伝播します。Google Chat では また、 permissions.permissionDetails この共有ドライブ アイテムに対する権限が継承されているかどうかを確認するには 直接適用できます。

dailyLimitExceeded

このエラーは、プロジェクトの API の上限に達した場合に発生します。次の JSON サンプルは、このエラーを表しています。

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

このエラーは、アプリケーションのオーナーが割り当て上限を cap に設定している場合に表示されます。 使用状況を把握することができます。このエラーを修正するには、 [秒間クエリ数]は 割り当て

domainPolicy

このエラーは、ユーザーのドメインのポリシーが アプリでドライブ。次の JSON サンプルは、トレーニング データの 確認します。

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

このエラーを解決するには:

  1. アプリが 。
  2. ドメイン管理者に問い合わせて、 説明します。

fileOwnerNotMemberOfTeamDrive

このエラーは、共有ドライブにファイルを移動しようとしたときに、 ファイルのオーナーはメンバーではありません。次の JSON サンプルは、この引数を error:

{
  "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."
  }
}

このエラーを解決するには:

  1. role=owner を使用して共有ドライブにメンバーを追加します。詳しくは ファイル、フォルダ、ドライブを共有するをご覧ください。

  2. ファイルを共有ドライブに追加します。詳しくは、Google Cloud コンソールで フォルダへの入力

fileWriterTeamDriveMoveInDisabled

このエラーは、ドメイン管理者が、パスワードの使用を許可していない アイテムを共有ドライブに移動するには、role=writerします。ユーザーが アイテムの権限が、移動先の共有ドライブで許可されている権限より少なくなっています。「 次の JSON サンプルは、このエラーを表しています。

{
  "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."
  }
}

このエラーを修正するには、移行元と移行先で同じ管理者ユーザー アカウントを使用してください 共有ドライブを構成します。

insufficientFilePermissions

このエラーは、ユーザーにファイルへの書き込みアクセス権がなく、 アプリがファイルを変更しようとしています。次の JSON サンプルは、 次のような表現になります。

{
  "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}."
  }
}

このエラーを修正するには、ファイルのオーナーに連絡してリクエストするようユーザーに伝えてください。 編集権限があります。また、 files.get メソッドを呼び出し、 権限がない場合に読み取り専用 UI を表示します。

myDriveHierarchyDepthLimitExceeded

myDriveHierarchyDepthLimitExceeded エラーは、 ネストされたフォルダのレベル数が上限を超えました。ユーザーの My ドライブ内のフォルダのネストレベルは 100 レベルまでです。対象 詳細については、フォルダ深度を参照 。

{
 "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."
 }
}

このエラーを解決するには:

  1. ドライブで保存できるフォルダ数が上限を超えることをユーザーに通知する 深さ 100 階。
  2. ネストされたフォルダをもう 1 つ作成する必要がある場合は、フォルダを再編成するよう指示します。 親フォルダの階層を 100 レベル未満にするか、 要件をすでに満たしている別の親フォルダなどです

numChildrenInNonRootLimitExceeded

このエラーは、フォルダの子(フォルダ、 ファイル、ショートカット)の上限を超えました。アイテム数の上限は 500,000 個です フォルダ、ファイル、ショートカットをフォルダ内に 直接作成することができますサブフォルダにネストされたアイテム 500,000 個のアイテム制限にはカウントされませんこのモジュールの ドライブ フォルダの制限については、フォルダの制限 Google ドライブ

次の JSON サンプルは、このエラーの表現です。

{
 "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."
 }
}

このエラーを解決するには、次のいずれかを試してください。

  • ドライブではフォルダ数が上限まで 500,000 個のアイテム。
  • ユーザーが完全なフォルダにアイテムを追加する必要がある場合は、次の手順を案内します。 アイテム数が 500,000 個未満になるようにフォルダを再編成するか、 すでにアイテムの数が減っているフォルダです。

rateLimitExceeded

このエラーは、プロジェクトのレート制限に達した場合に発生します。この上限 はリクエストの種類によって異なります。次の JSON サンプルは、 次のような表現になります。

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

このエラーを解決するには、次のいずれかを試してください。

sharingRateLimitExceeded

このエラーは、ユーザーが共有の制限に達した場合に発生します。多くの場合、リンクされています。 メール数の上限があります。次の JSON サンプルは、この引数を error:

{
 "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"
 }
}

このエラーを解決するには:

  1. 大量のファイルを共有している場合はメールを送信しない。
  2. 1 人のユーザーが多数のユーザーの代理として多数のリクエストを行う場合、 (ドメイン全体のサービス アカウントを使用) 委任 quotaUser を使用 パラメータです。

storageQuotaExceeded

このエラーは、ユーザーが保存容量の上限に達した場合に発生します。次の JSON サンプルは、このエラーを表しています。

{
 "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."
 }
}

このエラーを解決するには:

  1. ドライブ アカウントの保存容量の上限をご確認ください。詳細 詳しくは、Google Workspace の保存容量とアップロード 制限します

  2. Google ドライブのファイルを管理する ストレージです。

  3. Google に追加購入 ストレージです。

teamDriveFileLimitExceeded

このエラーは、ユーザーが厳格な商品アイテム数を超えようとしたときに発生します できます。ユーザーの共有ドライブ内のフォルダあたりのアイテム数の上限は 500,000 個で、 ファイル、フォルダ、ショートカットなどです。この上限はアイテム数に基づきます。 予測します。詳しくは、共有ドライブの制限 Google ドライブ

次の JSON サンプルは、このエラーの表現です。

{
  "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."
  }
}

このエラーを修正するには、共有ドライブ内のアイテムの数を減らしてください。共有ドライブ 整理や検索が難しくなる場合があります。

teamDriveHierarchyTooDeep

teamDriveHierarchyTooDeep エラーは、インスタンス数の上限に達すると、 共有ドライブのネストされたフォルダ階層の上限数を超えています。ユーザーの共有ドライブが ネストされたフォルダが 100 レベルを超える場合。詳細については、次をご覧ください: フォルダの深さの上限

{
 "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."
 }
}

このエラーを解決するには:

  1. 共有ドライブではフォルダ数が上限数を超え、 深さ 100 階。
  2. ネストされたフォルダをもう 1 つ作成する必要がある場合は、フォルダを再編成するよう指示します。 親フォルダの階層を 100 レベル未満にするか、 要件をすでに満たしている別の親フォルダなどです

teamDriveMembershipRequired

このエラーは、自身がオーナーである共有ドライブにユーザーがアクセスしようとしたときに発生します。 メンバーではありません。次の JSON サンプルは、このエラーの表現です。

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

このエラーを解決するには、次のいずれかを試してください。

  1. 共有ドライブの管理者に、適切な 必要な権限のみを残します。

  2. ドライブのロールと アクセス、管理できるユーザーを確認する できます。アクセスレベルに関する追加情報については、このモジュールの 共有の ドライブ

teamDrivesFolderMoveInNotSupported

このエラーは、ユーザーが [マイページ] からフォルダを移動しようとした場合に発生します。 共有ドライブに移動します。次の JSON サンプルは、 次のような表現になります。

{
  "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."
  }
}

このエラーを解決するには、次のいずれかを試してください。

teamDrivesParentLimit

このエラーは、ユーザーが できます。次の JSON サンプルは、このエラーの表現です。

{
  "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."
  }
}

このエラーを修正するには、ドライブのショートカットを使用して複数のリンクを 表示されます。ショートカットの親は 1 つだけですが、ショートカットファイルは コピーされます。詳細については、Terraform で ドライブ ファイルへのショートカットを作成する

UrlLeaseLimitExceeded

このエラーは、 説明します。次の JSON サンプルは、このエラーの表現です。

{
 "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."
 }
}

このエラーを修正するには、スナップショットを作成する前に、スナップショットのアップロードを完了またはキャンセルしてください できます。

userRateLimitExceeded

このエラーは、ユーザーごとの上限に達した場合に発生します。たとえば Google Cloud コンソールから、またはドライブから バックエンドです。次の JSON サンプルは、このエラーの表現です。

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

このエラーを解決するには、次のいずれかを試してください。

Drive API の制限について詳しくは、使用量上限をご覧ください。

404 エラー

これらのエラーは、リクエストされたリソースにアクセスできないか、存在しないことを意味します。

notFound

このエラーは、ユーザーにファイルへの読み取りアクセス権がない、またはファイルに対する読み取りアクセス権がない場合に発生します。 ありません。次の JSON サンプルは、このエラーの表現です。

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

このエラーを解決するには:

  1. ファイルが共有ドライブにあり、 files.get メソッドを使う場合は、 supportsAllDrives クエリ パラメータが true に設定されている。
  2. 対象のファイルまたはファイルに対する読み取りアクセス権がないことをユーザーに伝える ありません。
  3. ファイルのオーナーに連絡し、 表示されます。

429 エラー

これらのエラーは、あまりに多くのリクエストが API にあまりにも早く送信されたことを意味します。

rateLimitExceeded

このエラーは、ユーザーが特定の期間に送信したリクエストが多すぎる場合に発生します。 できます。次の JSON サンプルは、このエラーの表現です。

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

このエラーを修正するには、指数関数的 backoff を使用してリクエストを再試行します。

500、502、503、504 エラー

これらのエラーは、 リクエストできます。これらのエラーは、リクエストのタイミングなど、さまざまな問題が原因で発生する可能性があります。 他のリクエストと重複している、またはサポートされていないアクションのリクエスト。たとえば、 ではなく、Google サイトで 1 つのページの権限を更新しようとします。 できます。

5xx エラーは次のとおりです。

  • 500 バックエンド エラー
  • 502 Bad Gateway(不正なゲートウェイ)
  • 503 Service Unavailable(サービス利用不可)
  • 504 Gateway Timeout(ゲートウェイ タイムアウト)

このエラーを修正するには、指数関数的 backoff を使用してリクエストを再試行します。