GAS を使って Gmail を PDF 化したり、スプレッドシートの大量処理を自動化していると、突然メールで “Your script has recently failed to finish successfully.” といった通知が届くことがあります。実行回数を見ると 20 件以上落ちているケースもあり、放置すると業務が止まるタイプのエラーです。ここでは、代表的な 3 種類のエラー——「Exceeded maximum execution time」「DEADLINE_EXCEEDED」「INTERNAL」——がなぜ起こるのか、そしてどう防ぐかを整理します。
実行時間の上限は GAS の性質上避けられず、特に PDF 生成・Drive 書き込み・Gmail 読み込みなど “重い処理” を組み合わせたスクリプトでは発生しやすい問題です。処理をいくつかに分割したり、API 呼び出しをまとめたり、トリガーで段階実行することで、多くのケースは安定化できます。
実際に問題が出ていた環境では、Gmail → PDF 変換 → Drive 保存を 1 プロセスにまとめていたため、メール内容のサイズや添付の扱いによって負荷が一気に上昇し、実行時間の上限を超えて停止していました。同じ失敗を避けるために必要なのは「まとめすぎない」設計と、小さな単位への分割です。
最後に、GAS の 6 分制限は“工夫すれば回避できる壁”です。バッチ処理・分割実行・トリガー制御を組み合わせれば、日常的に使う自動化スクリプトでも安定して動かせます。まずは「処理を小さくする」「API 呼び出しを減らす」から始めてみてください。
参考 URL(生リンク)
- Google Apps Script 実行制限まとめ
https://jido-ka.com/about-gas-execution-limits - 実行時間超過の基本的な回避方法
https://inclu-cat-jp.medium.com/google-apps-script%E3%81%AE6%E5%88%86%E5%88%B6%E9%99%90%E3%81%AE%E7%B0%A1%E5%8D%98%E3%81%AA%E5%AF%BE%E5%87%A6%E6%B3%95-30b753d9fedd - Exceeded maximum execution time の実例
https://stackoverflow.com/questions/72628571/google-apps-script-exceeded-maximum-execution-time - API 呼び出しを減らすための設計
https://webapps.stackexchange.com/questions/54433/google-apps-script-exceeded-maximum-execution-time - 分割処理の実装例
https://qiita.com/Cheap-Engineer/items/1428546e17f1348b933a