ত্রুটিগুলি সমাধান করুন

গুগল ড্রাইভ এপিআই দুই স্তরের ত্রুটির তথ্য প্রদান করে:

  • HTTP ত্রুটি কোড এবং হেডার বার্তা।
  • রেসপন্স বডিতে একটি JSON অবজেক্ট থাকে, যাতে অতিরিক্ত বিবরণ থাকে যা আপনাকে ত্রুটিটি কীভাবে সমাধান করতে হবে তা নির্ধারণ করতে সাহায্য করতে পারে।

REST API ব্যবহার করার সময় Google Drive অ্যাপগুলোর উচিত সম্ভাব্য সমস্ত ত্রুটি শনাক্ত করা এবং সেগুলোর সমাধান করা। এই নির্দেশিকাটিতে নির্দিষ্ট Drive API ত্রুটিগুলো কীভাবে সমাধান করা যায়, সে সম্পর্কে নির্দেশনা দেওয়া হয়েছে।

HTTP স্ট্যাটাস কোডের সারাংশ

ত্রুটি কোড বর্ণনা
200 - OK অনুরোধটি সফল হয়েছে (সফল HTTP অনুরোধের জন্য এটিই সাধারণ প্রতিক্রিয়া)।
400 - Bad Request অনুরোধে ক্লায়েন্টের ত্রুটির কারণে অনুরোধটি পূরণ করা সম্ভব হচ্ছে না।
401 - Unauthorized অনুরোধটিতে অবৈধ পরিচয়পত্র রয়েছে।
403 - Forbidden অনুরোধটি গ্রহণ ও অনুধাবন করা হয়েছে, কিন্তু ব্যবহারকারীর অনুরোধটি সম্পাদন করার অনুমতি নেই।
404 - Not Found অনুরোধ করা পৃষ্ঠাটি খুঁজে পাওয়া যায়নি।
429 - Too Many Requests এপিআই-তে অতিরিক্ত অনুরোধ পাঠানো হয়েছে।
500, 502, 503, 504 - Server Errors অনুরোধটি প্রক্রিয়াকরণ করার সময় অপ্রত্যাশিত ত্রুটি দেখা দেয়।

৪০০টি ত্রুটি

এই ত্রুটিগুলোর অর্থ হলো অনুরোধটি গ্রহণযোগ্য ছিল না, যার কারণ প্রায়শই কোনো প্রয়োজনীয় প্যারামিটারের অনুপস্থিতি।

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 ফিল্ডটি পরীক্ষা করুন এবং সেই অনুযায়ী আপনার কোড সংশোধন করুন।

illegalKeepForeverModification

"Keep Forever" হিসেবে চিহ্নিত কোনো ব্লব ফাইলের রিভিশনকে false এ সেট করার চেষ্টা করলে এই ত্রুটিটি ঘটে। নিম্নলিখিত JSON নমুনাটি এই ত্রুটির একটি প্রতিরূপ:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "illegalKeepForeverModification",
    "message": "Bad Request. Cannot update a revision to false that is marked as keepForever."
   }
  ],
  "code": 400,
  "message": "Bad Request. Cannot update a revision to false that is marked as keepForever."
 }
}

এই ত্রুটিটি সমাধান করতে, 'Keep Forever' সেটিংটি সরিয়ে ফেলার জন্য একটি ব্লব ফাইল রিভিশন স্থায়ীভাবে মুছে ফেলুন।

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

এই ত্রুটিটি সমাধান করতে, ফাইলটি যে গুগল ওয়ার্কস্পেস ডোমেইনের অন্তর্গত, তার শেয়ারিং সেটিংস পরীক্ষা করুন। সেটিংসে হয়তো ডোমেইনের বাইরে শেয়ার করা নিষিদ্ধ থাকতে পারে অথবা কোনো শেয়ার্ড ড্রাইভ শেয়ার করার অনুমতি নাও থাকতে পারে।

৪০১টি ত্রুটি

এই ত্রুটিগুলোর অর্থ হলো অনুরোধটিতে কোনো বৈধ অ্যাক্সেস টোকেন নেই।

authError

এই ত্রুটিটি ঘটে যখন আপনার ব্যবহৃত অ্যাক্সেস টোকেনটি মেয়াদোত্তীর্ণ বা অবৈধ হয়। অনুরোধ করা স্কোপগুলির জন্য অনুমোদনের অভাবের কারণেও এই ত্রুটিটি হতে পারে। নিম্নলিখিত JSON নমুনাটি এই ত্রুটির একটি প্রতিরূপ:

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

এই ত্রুটিটি সমাধান করতে, দীর্ঘস্থায়ী রিফ্রেশ টোকেন ব্যবহার করে অ্যাক্সেস টোকেনটি রিফ্রেশ করুন। যদি এটি ব্যর্থ হয়, তাহলে "গুগল ড্রাইভ এপিআই স্কোপ নির্বাচন করুন" অংশে বর্ণিত পদ্ধতি অনুযায়ী ব্যবহারকারীকে OAuth ফ্লো-এর মাধ্যমে পরিচালিত করুন।

fileNotDownloadable

গুগল ওয়ার্কস্পেস ডকুমেন্টে alt=media URL প্যারামিটার সহ revisions.get মেথডটি ব্যবহার করার চেষ্টা করলে এই ত্রুটিটি ঘটে। নিম্নলিখিত JSON নমুনাটি এই ত্রুটির একটি প্রতিরূপ:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "fileNotDownloadable",
        "message": "Only files with binary content can be downloaded. Use Export with Docs Editors files."
      }
    ],
    "code": 403,
    "message": "Only files with binary content can be downloaded. Use Export with Docs Editors files."
  }
}

এই ত্রুটিটি সমাধান করতে, নিম্নলিখিতগুলির যেকোনো একটি চেষ্টা করুন:

  • যদি আপনি কোনো নির্দিষ্ট রিভিশনের মেটাডেটা, যেমন মাইমটাইপ, দেখতে চান, তাহলে alt=media URL প্যারামিটারটি সরিয়ে দিন।
  • গুগল ওয়ার্কস্পেস ডকুমেন্টের বাইট কন্টেন্ট এক্সপোর্ট করতে files.export মেথডটি ব্যবহার করুন। আরও তথ্যের জন্য, গুগল ওয়ার্কস্পেস ডকুমেন্ট কন্টেন্ট এক্সপোর্ট দেখুন।

৪০৩টি ত্রুটি

এই ত্রুটিগুলোর অর্থ হলো ব্যবহারের সীমা অতিক্রম করা হয়েছে অথবা ব্যবহারকারীর সঠিক অধিকার নেই। কারণটি নির্ধারণ করতে, ফেরত আসা JSON-এর reason ফিল্ডটি মূল্যায়ন করুন।

ড্রাইভ এপিআই (API) সীমাবদ্ধতা সম্পর্কে তথ্যের জন্য, ব্যবহারের সীমাবদ্ধতা (Usage limits ) দেখুন। ড্রাইভ ফোল্ডার সীমাবদ্ধতা সম্পর্কে তথ্যের জন্য, ফাইল এবং ফোল্ডার সীমাবদ্ধতা (File and folder limits ) দেখুন।

activeItemCreationLimitExceeded

যখন প্রতি অ্যাকাউন্টে তৈরি করা আইটেমের সংখ্যার সীমা অতিক্রম করা হয়, তখন একটি activeItemCreationLimitExceeded ত্রুটি দেখা দেয়। প্রতিটি ব্যবহারকারীর জন্য একটি অ্যাকাউন্ট থেকে সর্বোচ্চ ৫০ কোটি আইটেম তৈরি করা যেতে পারে। আরও তথ্যের জন্য, ব্যবহারকারীর আইটেম সীমা (User-item limit ) দেখুন।

{
 "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. ব্যবহারকারীকে জানান যে, ড্রাইভ কোনো অ্যাকাউন্টকে ৫০ কোটিরও বেশি আইটেম তৈরি করতে বাধা দেয়।

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

এই ত্রুটিটি সমাধান করতে, নিম্নলিখিতগুলির যেকোনো একটি চেষ্টা করুন:

  • গুগল ড্রাইভ পিকারটি খুলুন এবং ব্যবহারকারীকে ফাইলটি খুলতে বলুন।
  • ব্যবহারকারীকে আপনার অ্যাপের ড্রাইভ UI-তে থাকা ‘Open with’ কনটেক্সট মেনু ব্যবহার করে ফাইলটি খুলতে নির্দেশ দিন।
  • আপনার অ্যাপটি ফাইলটি তৈরি বা খুলেছে কিনা, তা যাচাই করতে files রিসোর্সের isAppAuthorized ফিল্ডটি পরীক্ষা করার জন্য files.get মেথডটি ব্যবহার করুন।

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

এই ত্রুটিটি সমাধান করতে, একজন ব্যবহারকারীকে অবশ্যই সেই প্রত্যক্ষ বা পরোক্ষ প্যারেন্ট আইটেমের অনুমতিগুলো সামঞ্জস্য করতে হবে যেখান থেকে অনুমতিগুলো উত্তরাধিকারসূত্রে প্রাপ্ত হয়েছে। আরও তথ্যের জন্য, ‘অনুমতি কীভাবে কাজ করে’ দেখুন। এই শেয়ার করা ড্রাইভ আইটেমের অনুমতিগুলো উত্তরাধিকারসূত্রে প্রাপ্ত নাকি সরাসরি প্রয়োগ করা হয়েছে, তা দেখতে আপনি permissions রিসোর্সটিও পুনরুদ্ধার করতে পারেন।

dailyLimitExceeded

আপনার প্রোজেক্টের API সীমা পূর্ণ হয়ে গেলে এই ত্রুটিটি ঘটে। নিম্নলিখিত JSON নমুনাটি এই ত্রুটির একটি প্রতিরূপ:

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

এই ত্রুটিটি দেখা দেয় যখন অ্যাপ্লিকেশনটির মালিক কোনো নির্দিষ্ট রিসোর্সের ব্যবহার সীমিত করার জন্য একটি কোটা সীমা নির্ধারণ করেন। এই ত্রুটিটি সমাধান করতে, 'Queries per day' কোটার জন্য থাকা যেকোনো ব্যবহারের সীমা তুলে দিন

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. আপনার অ্যাপের অ্যাক্সেসের জন্য অনুরোধ করতে ব্যবহারকারীকে ডোমেইন অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করতে নির্দেশ দিন।

downloadRestrictedForRevision

যখন ব্যবহারকারী কোনো ব্লব ফাইল রিভিশন ডাউনলোড করতে পারেন না, তখন এই ত্রুটিটি ঘটে। নিম্নলিখিত JSON নমুনাটি এই ত্রুটির একটি প্রতিরূপ:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "download_restricted_for_revision",
        "message": "This revision cannot be downloaded by the authenticated user."
      }
    ],
    "code": 403,
    "message": "This revision cannot be downloaded by the authenticated user."
  }
}

এই ত্রুটিটি সমাধান করতে, ব্যবহারকারীকে জানান যে ব্লব ফাইলের রিভিশনগুলো ডাউনলোড করার একমাত্র উপায় হলো সেগুলোকে "চিরতরে রাখুন" (Keep Forever) হিসেবে চিহ্নিত করা। আরও তথ্যের জন্য, " স্বয়ংক্রিয় মুছে ফেলা থেকে সংরক্ষণ করার জন্য রিভিশন নির্দিষ্ট করুন" (Specify revisions to save from auto delete) দেখুন।

fileNotExportable

ব্যবহারকারী যখন একটি গুগল ভিডস ফাইল এক্সপোর্ট করার চেষ্টা করেন, তখন এই ত্রুটিটি ঘটে। নিম্নলিখিত JSON নমুনাটি এই ত্রুটির একটি প্রতিরূপ:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "fileNotExportable",
        "message": "Google Vids does not support files.export. Use files.download with Vids files."
      }
    ],
    "code": 403,
    "message": "Google Vids does not support files.export. Use files.download with Vids files."
  }
}

এই ত্রুটিটি সমাধান করতে, ব্যবহারকারীকে জানান যে Google Vids ফাইলগুলি অবশ্যই files.download পদ্ধতিতে ডাউনলোড করতে হবে, কারণ files.export পদ্ধতিটি সমর্থিত নয়। আরও তথ্যের জন্য, ফাইল ডাউনলোড এবং এক্সপোর্ট দেখুন।

fileOwnerNotMemberOfTeamDrive

কোনো ফাইলকে শেয়ার্ড ড্রাইভে সরানোর চেষ্টা করার সময় এই ত্রুটিটি ঘটে, যদি ফাইলটির মালিক সেই ড্রাইভের সদস্য না হন। নিম্নলিখিত JSON নমুনাটি এই ত্রুটির একটি প্রতিনিধিত্বমূলক চিত্র:

{
  "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. ফাইলটি শেয়ার্ড ড্রাইভে যুক্ত করুন। আরও তথ্যের জন্য, ফোল্ডার তৈরি ও তাতে ডেটা যুক্ত করা দেখুন।

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 Drive-এ ১০০টির বেশি নেস্টেড ফোল্ডার লেভেল থাকতে পারে না। আরও তথ্যের জন্য, ফোল্ডার-ডেপথ লিমিট দেখুন।

{
 "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/workspace/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/workspace/drive/api/guides/handle-errors#nested-folder-levels."
 }
}

এই ত্রুটিটি সমাধান করতে:

  1. ব্যবহারকারীকে জানান যে ড্রাইভ ১০০ স্তরের বেশি গভীরে ফোল্ডার তৈরি করতে বাধা দেয়।
  2. যদি ব্যবহারকারীকে আরেকটি নেস্টেড ফোল্ডার তৈরি করতেই হয়, তবে তাকে উদ্দিষ্ট প্যারেন্ট ফোল্ডারটিকে ১০০ স্তরের কম গভীর করে পুনর্বিন্যাস করতে অথবা এমন একটি ভিন্ন প্যারেন্ট ফোল্ডার ব্যবহার করতে নির্দেশ দিন যা ইতিমধ্যেই এই শর্ত পূরণ করে।

numChildrenInNonRootLimitExceeded

এই ত্রুটিটি ঘটে যখন একটি ফোল্ডারের অধীনস্থ আইটেমগুলোর (ফোল্ডার, ফাইল এবং শর্টকাট) সংখ্যার সীমা অতিক্রম করা হয়। একটি ফোল্ডারের সরাসরি ভেতরের ফোল্ডার, ফাইল এবং শর্টকাটগুলোর জন্য ৫,০০,০০০ আইটেমের একটি সীমা রয়েছে। সাবফোল্ডারের ভেতরের আইটেমগুলো এই ৫,০০,০০০ আইটেমের সীমার মধ্যে গণনা করা হয় না। ড্রাইভ ফোল্ডারের সীমা সম্পর্কে আরও তথ্যের জন্য, "গুগল ড্রাইভে ফোল্ডারের সীমা" দেখুন।

নিম্নলিখিত 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."
 }
}

এই ত্রুটিটি সমাধান করতে, নিম্নলিখিতগুলির যেকোনো একটি চেষ্টা করুন:

  • ব্যবহারকারীকে জানান যে ড্রাইভ ৫০০,০০০-এর বেশি আইটেমযুক্ত ফোল্ডার তৈরি করতে বাধা দেয়।
  • যদি ব্যবহারকারীকে পূর্ণ ফোল্ডারটিতে আরও আইটেম যোগ করতেই হয়, তবে তাকে ফোল্ডারটি এমনভাবে পুনর্বিন্যাস করতে নির্দেশ দিন যাতে আইটেমের সংখ্যা পাঁচ লক্ষের কম হয়, অথবা এমন একটি অনুরূপ ফোল্ডার ব্যবহার করতে বলুন যাতে আগে থেকেই এর চেয়ে কম আইটেম রয়েছে।

rateLimitExceeded

প্রকল্পের রেট লিমিটে পৌঁছে গেলে এই ত্রুটিটি ঘটে। অনুরোধের ধরনের ওপর নির্ভর করে এই সীমা পরিবর্তিত হয়। নিম্নলিখিত JSON নমুনাটি এই ত্রুটির একটি প্রতিরূপ:

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

এই ত্রুটিটি সমাধান করতে, নিম্নলিখিতগুলির যেকোনো একটি চেষ্টা করুন:

sharingRateLimitExceeded

এই ত্রুটিটি ঘটে যখন ব্যবহারকারী শেয়ারিং সীমায় পৌঁছে যান এবং এটি প্রায়শই ইমেল সীমার সাথে সম্পর্কিত। নিম্নলিখিত JSON নমুনাটি এই ত্রুটির একটি প্রতিরূপ:

{
 "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. যদি একজন ব্যবহারকারী একটি গুগল ওয়ার্কস্পেস অ্যাকাউন্টের অনেক ব্যবহারকারীর পক্ষ থেকে অসংখ্য অনুরোধ করেন, তাহলে 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. আপনার ড্রাইভ অ্যাকাউন্টের স্টোরেজ সীমা পর্যালোচনা করুন। আরও তথ্যের জন্য, গুগল ওয়ার্কস্পেস স্টোরেজ এবং আপলোড সীমা দেখুন।

  2. ড্রাইভ, জিমেইল ও গুগল ফটোতে আপনার স্টোরেজ পরিচালনা করুন

  3. আরও গুগল স্টোরেজ কিনুন

teamDriveFileLimitExceeded

যখন কোনো ব্যবহারকারী একটি শেয়ার করা ড্রাইভের নির্ধারিত আইটেম সীমা অতিক্রম করার চেষ্টা করেন, তখন এই ত্রুটিটি ঘটে। ব্যবহারকারীর শেয়ার করা ড্রাইভের প্রতিটি ফোল্ডারে ফাইল, ফোল্ডার এবং শর্টকাট সহ মোট ৫,০০,০০০টি আইটেমের সীমা রয়েছে। এই সীমাটি আইটেমের সংখ্যার উপর ভিত্তি করে নির্ধারিত, স্টোরেজ ব্যবহারের উপর নয়। আরও তথ্যের জন্য, গুগল ড্রাইভে শেয়ার করা ড্রাইভের সীমা দেখুন।

নিম্নলিখিত 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 ত্রুটি দেখা দেয়। একজন ব্যবহারকারীর শেয়ার্ড ড্রাইভে ১০০টির বেশি নেস্টেড ফোল্ডার লেভেল থাকতে পারে না। আরও তথ্যের জন্য, ফোল্ডার-গভীরতার সীমা দেখুন।

{
 "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. ব্যবহারকারীকে জানান যে শেয়ার্ড ড্রাইভে ১০০ স্তরের বেশি গভীরে ফোল্ডার রাখা যায় না।
  2. যদি ব্যবহারকারীকে আরেকটি নেস্টেড ফোল্ডার তৈরি করতেই হয়, তবে তাকে উদ্দিষ্ট প্যারেন্ট ফোল্ডারটিকে ১০০ স্তরের কম গভীর করে পুনর্বিন্যাস করতে অথবা এমন একটি ভিন্ন প্যারেন্ট ফোল্ডার ব্যবহার করতে নির্দেশ দিন যা ইতিমধ্যেই এই শর্ত পূরণ করে।

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

এই ত্রুটিটি সমাধান করতে, নিম্নলিখিতগুলির যেকোনো একটি চেষ্টা করুন:

  • Drive API ব্যবহার করে ফোল্ডার থেকে প্রতিটি আইটেম একটি শেয়ার্ড ড্রাইভে সরান। My Drive এবং শেয়ার্ড ড্রাইভ উভয়ের সমর্থন বোঝাতে supportsAllDrives=true প্যারামিটারটি সেট করুন।

  • যদি আপনাকে ফোল্ডারটি কোনো শেয়ার্ড ড্রাইভে সরাতেই হয়, তাহলে ড্রাইভ UI ব্যবহার করুন। আরও তথ্যের জন্য, ‘অ্যাডমিন হিসেবে শেয়ার্ড ড্রাইভে ফোল্ডার সরানো’ দেখুন।

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

এই ত্রুটিটি সমাধান করতে, একটি ফাইলে একাধিক লিঙ্ক যোগ করার জন্য ড্রাইভ শর্টকাট ব্যবহার করুন। যদিও একটি শর্টকাটের কেবল একটিই প্যারেন্ট থাকতে পারে, একটি শর্টকাট ফাইল অতিরিক্ত স্থানগুলিতে কপি করা যেতে পারে। আরও তথ্যের জন্য, "ড্রাইভ ফাইলের শর্টকাট তৈরি করুন" দেখুন।

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

ব্যবহারকারী-ভিত্তিক সীমা পূর্ণ হয়ে গেলে এই ত্রুটিটি ঘটে। এই সীমাটি গুগল ক্লাউড কনসোল বা ড্রাইভ ব্যাকএন্ডের হতে পারে। নিম্নলিখিত JSON নমুনাটি এই ত্রুটির একটি প্রতিরূপ:

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

এই ত্রুটিটি সমাধান করতে, নিম্নলিখিতগুলির যেকোনো একটি চেষ্টা করুন:

Drive API-এর সীমাবদ্ধতা সম্পর্কে তথ্যের জন্য, ব্যবহারের সীমাবদ্ধতা দেখুন।

৪০৪ ত্রুটি

এই ত্রুটিগুলোর অর্থ হলো, অনুরোধ করা রিসোর্সটি অ্যাক্সেসযোগ্য নয় অথবা সেটির অস্তিত্ব নেই।

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. ব্যবহারকারীকে ফাইলটির মালিকের সাথে যোগাযোগ করে ফাইলটির ব্যবহারের অনুমতি চাইতে নির্দেশ দিন।

৪২৯টি ত্রুটি

এই ত্রুটিগুলোর অর্থ হলো, এপিআই-তে খুব দ্রুত অতিরিক্ত অনুরোধ পাঠানো হয়েছিল।

rateLimitExceeded

ব্যবহারকারী একটি নির্দিষ্ট সময়ের মধ্যে অনেক বেশি অনুরোধ পাঠালে এই ত্রুটিটি ঘটে। নিম্নলিখিত JSON নমুনাটি এই ত্রুটির একটি প্রতিরূপ:

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

এই ত্রুটিটি সমাধান করতে, অনুরোধটি পুনরায় চেষ্টা করার জন্য এক্সপোনেনশিয়াল ব্যাকঅফ ব্যবহার করুন।

৫০০, ৫০২, ৫০৩, ৫০৪ ত্রুটি

অনুরোধটি প্রক্রিয়া করার সময় কোনো অপ্রত্যাশিত সার্ভার ত্রুটি দেখা দিলে এই ত্রুটিগুলো ঘটে। বিভিন্ন কারণে এই ত্রুটিগুলো হতে পারে, যার মধ্যে রয়েছে একটি অনুরোধের সময় অন্য কোনো অনুরোধের সময়ের সাথে মিলে যাওয়া অথবা কোনো অসমর্থিত কাজের জন্য অনুরোধ করা; যেমন, পুরো সাইটের পরিবর্তে গুগল সাইটসের (Google Sites) একটিমাত্র পৃষ্ঠার অনুমতি হালনাগাদ করার চেষ্টা করা।

নিচে 5xx ত্রুটিগুলোর একটি তালিকা দেওয়া হলো:

  • ৫০০ ব্যাকএন্ড ত্রুটি
  • ৫০২ ত্রুটিপূর্ণ গেটওয়ে
  • ৫০৩ পরিষেবা অনুপলব্ধ
  • ৫০৪ গেটওয়ে টাইমআউট

এই ত্রুটিটি সমাধান করতে, অনুরোধটি পুনরায় চেষ্টা করার জন্য এক্সপোনেনশিয়াল ব্যাকঅফ ব্যবহার করুন।