Google Apps Scriptで「We’re sorry, a server error occurred. Please wait a bit and try again.」が出る原因と対処法

この記事の内容について、業務や開発でお困りの場合は個別に対応できます。

Google Apps Script(GAS)を実行した際、実行ログに以下のようなエラーが表示され、処理が止まってしまうことがあります。

We're sorry, a server error occurred. Please wait a bit and try again.

場合によっては、同時に TypeError: Cannot read properties of undefined が表示されることもあります。

このメッセージは一見すると「Google側の一時的なサーバー障害」のように見えますが、実際にはスクリプトの設定や権限、書き方に問題があるケースがほとんどです。

この記事では、このエラーが発生する主な原因と、具体的な対処法を解説します。

このエラーの正体

このエラーメッセージは、GASの実行環境が「具体的なエラー原因を特定できなかった(または表示できなかった)」場合に表示される汎用的なメッセージです。

特に DriveApp(Googleドライブ操作)や外部API連携を行う際に頻発します。本当の原因は「権限不足」や「設定ミス」であっても、表面上はすべて「サーバーエラー」として丸められてしまうため、デバッグが難しくなります。

主な原因と対処法

発生頻度の高い順に、原因と解決策を紹介します。

1. 標準GCPプロジェクトを使用しているが、Drive APIが無効

GASプロジェクトを「標準のGoogle Cloud Platform(GCP)プロジェクト」に紐付けている場合、GCP側で明示的にAPIを有効化しないと、このエラーが発生することがあります。

対処法:

  1. GASエディタの「プロジェクトの設定」から、紐付いているGCPプロジェクト番号を確認します。
  2. Google Cloud Consoleを開き、該当プロジェクトを選択します。
  3. 「APIとサービス」>「ライブラリ」へ移動します。
  4. Google Drive API を検索し、「有効にする」をクリックします。
  5. GASエディタに戻り、「サービス」の「+」ボタンから Drive API を追加します。

2. ライブラリのバージョンが「HEAD(開発モード)」になっている

外部ライブラリを使用している場合、バージョン指定を「HEAD(最新)」にしていると、スクリプトのオーナー以外が実行した際にこのエラーが発生することがあります。

対処法:

  1. GASエディタの「ライブラリ」設定を開きます。
  2. 使用しているライブラリのバージョンを「HEAD」から特定の数字(固定バージョン)に変更して保存します。

3. 実行ユーザーにファイルのアクセス権限がない

DriveApp.getFileById(id) などで指定したファイルやフォルダに対して、現在の実行ユーザーがアクセス権を持っていない場合にも発生します。

  • 手動実行: あなたのアカウントに権限はありますか?
  • トリガー実行: トリガーを作成したユーザー(実行主体)に権限はありますか?
  • Webアプリ: Execute as(実行ユーザー)の設定は Me ですか? User accessing the web app ですか?

対処法:

  • 対象ファイルの共有設定を確認し、実行ユーザーに「閲覧者」以上の権限を付与してください。
  • 共有ドライブ内のファイルの場合、組織のポリシーで外部からのアクセスが制限されていないか確認してください。

4. 存在しないIDや不正なIDを指定している

getFileById に渡しているIDが間違っている、またはファイルが削除されている場合、通常は「Exception: File not found」になりますが、状況によっては「Server error」として表示されることがあります。

対処法:

  • IDが正しいか、余計なスペースが含まれていないか確認してください。
  • try-catch 構文を使用して、エラーを正しく捕捉できるか試してください。
function checkFile() {
  const fileId = 'xxxxxxxx_your_file_id_xxxxxxxx';
  try {
    const file = DriveApp.getFileById(fileId);
    Logger.log(file.getName());
  } catch (e) {
    Logger.log('Error caught: ' + e.message);
  }
}

5. 本当にGoogle側の障害(稀なケース)

上記のいずれにも該当しない場合、本当にGoogleのバックエンドで一時的な障害が発生している可能性があります。

対処法:

  • 数分〜数時間待ってから再実行してください。
  • Google Workspace Status Dashboard を確認してください。

まとめ

「We're sorry, a server error occurred」が出たときは、Googleのせいにせず、まずは以下の設定を疑ってください。

  1. GCPプロジェクト連携時のAPI有効化忘れ(Drive APIなど)
  2. ライブラリのHEAD指定(オーナー以外実行時)
  3. ファイル・フォルダのアクセス権限

これらを見直すことで、多くの場合は解決します。

Category: GAS Tips

References:

  1. Google Apps Script – Drive Service https://developers.google.com/apps-script/reference/drive/drive-app
  2. Google Cloud Console – API Library https://console.cloud.google.com/apis/library

ZIDOOKA!

この記事の内容について、対応できます

この記事に関連する技術トラブルや開発上の問題について個別対応を行っています。

個別対応は3,000円〜 内容・工数により事前にお見積りします
最後までお読みいただきありがとうございました

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

AI活用に関するポリシー

当サイトでは、記事の執筆補助にAIを活用する場合がありますが、全面的な委任は行いません。