Google Apps Script(GAS)とGemini APIを連携させて、毎日のチャットツール(Chatworkなど)の投稿を自動でAI要約するシステムを運用していると、ある日突然「要約が生成されない」というトラブルに見舞われました。
今回は、実際に直面した不具合から、原因を突き止めるまでの仮説検証プロセス、そして最終的な解決策を備忘録としてまとめました。同じ現象で困っている方の参考になれば幸いです。
GASのエラー原因と対策について

起きていた不具合:サイレント・エラーの恐怖
今回のシステムでは、GASのトリガーを使って毎日決まった時間にAI要約を生成していました。しかし、スプレッドシートやダッシュボードには「AI要約の生成に失敗しました」というメッセージだけが残るようになってしまいました。
一番厄介だったのは、GASの実行ログ上は「完了(成功)」ステータスになっていたことです。
コード内で UrlFetchApp.fetch を使う際、muteHttpExceptions: true を設定していたため、API側でエラーが起きてもGASのスクリプト自体は停止せず、エラーが「握りつぶされている」状態になっていました。
原因追求と仮説検証のプロセス
なぜ要約が生成されないのか? 以下の手順で仮説を立てて検証を進めました。
仮説①:指定しているGeminiのモデルが古く(または無効に)なっている?
AIモデルのアップデートは非常に早いです。以前使えていた gemini-1.5-flash などのモデルが廃止されていたり、エンドポイントが存在しなかったりする可能性を疑いました。
モデルが現在も使えるかどうかを生成AIを使って調べてみました。
gemini-3.1-flash も404が出ている点が気になります。変更後の優先順位は以下でよいですか?
gemini-3.1-flash-lite-preview(最優先・preview版)gemini-2.5-flash(安定版フォールバック)gemini-3.1-flash(3番目に降格)gemini-3.1-flash は404が出ていますが、将来的にエンドポイントが有効化される可能性もあるので3番目として残す形です。もし完全に外したければそれも可能です。
【対策】
APIを呼び出す際のフォールバック(代替)モデルのリストを最新の状態に更新しました。
最優先: gemini-3.1-flash-lite-preview (処理が速く軽量なプレビュー版)
安定版: gemini-2.5-flash (確実に応答を返すための要)
gemini-3.1-flashは利用モデル一覧から外しました。

なお、gemini-3.1-flashは実装されたからどんどん人気が高くなってきているようです。
仮説②:API側で何らかのHTTPエラーが起きている?
先述の通り、エラーが握りつぶされていたため、レスポンスコードが 200 (OK) 以外だった場合に、しっかりとエラー内容をログに出力するようにコードを修正しました。
JavaScript
// 修正したエラーハンドリングの一部
const responseCode = response.getResponseCode();
const responseText = response.getContentText();if (responseCode === 200) {
// 成功時の処理
} else {
// 失敗時は詳細をログに記録!
console.warn(`${model.name} のAPIリクエストエラー (${responseCode}): ${responseText}`);
}
この修正を加えた上で再度スクリプトを実行してみると、ついに真犯人が姿を現しました。

APIリクエストエラー (503): { “code”: 503, “message”: “This model is currently experiencing high demand. Spikes in demand are usually temporary. Please try again later.”, “status”: “UNAVAILABLE” }
根本原因の特定:無料枠の限界
ログに出力された 「503エラー (Service Unavailable)」。これがすべての原因でした。
エラーメッセージを読み解くと、「現在、このモデルには非常に多くのリクエストが集中しています(高負荷状態)。」と書かれています。
コードにバグがあったわけでも、プロンプトが悪かったわけでもありません。世界中からGemini APIへのアクセスが殺到し、Googleのサーバーがキャパシティオーバーを起こしてリクエストを拒否していたのです。
Google AI StudioのAPIには「無料枠」がありますが、無料枠はリクエストの優先度が低く設定されています。そのため、サーバー全体が混雑した際、無料枠のユーザーは優先的にこのような503エラーで弾かれやすくなってしまいます。
解決策:APIを有料枠(従量課金)へ変更する
この問題の最も確実な解決策は、Gemini APIを「無料枠」から「有料枠(Pay-as-you-go)」に切り替えることです。
有料枠に設定することで、リクエストの優先順位が上がり、サーバーのリソース枠も拡大されます。実際に今回のケースでも、課金設定に切り替えた途端、これまで頻発していた503エラーがピタリと止まり、安定してAI要約が生成されるようになりました。

💡 コストに関するワンポイント
「有料枠」と聞くと高額な請求が怖いかもしれませんが、テキストの要約程度であれば、月に数十円〜数百円程度に収まることがほとんどです。念のため、Google Cloudのコンソールで「月に500円を超えたら通知する」といった予算アラートを設定しておけば、安心して運用できます。
まとめ:GASのAPI利用安定稼働のためにやっておくべきこと
エラーを握りつぶさない: UrlFetchApp.fetch を使う時は、必ずレスポンスコードを確認し、200以外ならログに残す設計にする。
最新のモデルを追う: 常に利用可能な最新モデルを確認し、フォールバック(リトライ)の仕組みを用意する。
業務利用なら有料枠を検討する: 毎日確実に動かす必要があるツールであれば、微小なコストを払ってでも「有料枠」で安定性と優先権を買うのがベストプラクティスです。
以下の関連記事もご覧になってください。

GASはGoogleが提供しているスクリプトです。JAVA形式で記述する「Google Apps Script」のことを指すことが多いですが、ノーコードで記入できる「Google App Sheet」もGASといわれています。
簡易な開発案件ならGASで可能になりました。エクセルのような仕様なら、IT事業者に外注しなくても社内で開発し運用することも可能です。

▼無事に再稼働したGASアプリの画面です


この記事を書いた遠田幹雄は中小企業診断士です
遠田幹雄は経営コンサルティング企業の株式会社ドモドモコーポレーション代表取締役。石川県かほく市に本社があり金沢市を中心とした北陸三県を主な活動エリアとする経営コンサルタントです。
小規模事業者や中小企業を対象として、経営戦略立案とその後の実行支援、商品開発、販路拡大、マーケティング、ブランド構築等に係る総合的なコンサルティング活動を展開しています。実際にはWEBマーケティングやIT系のご依頼が多いです。
民民での直接契約を中心としていますが、商工三団体などの支援機関が主催するセミナー講師を年間数十回担当したり、支援機関の専門家派遣や中小企業基盤整備機構の経営窓口相談に対応したりもしています。
保有資格:中小企業診断士、情報処理技術者など
会社概要およびプロフィールは株式会社ドモドモコーポレーションの会社案内にて紹介していますので興味ある方はご覧ください。
お問い合わせは電話ではなくお問い合わせフォームからメールにておねがいします。新規の電話番号からの電話は受信しないことにしていますのでご了承ください。

【反応していただけると喜びます(笑)】
記事内容が役にたったとか共感したとかで、なにか反応をしたいという場合はTwitterやフェイスブックなどのSNSで反応いただけるとうれしいです。
本日の段階で当サイトのブログ記事数は 6,993 件になりました。できるだけ毎日更新しようとしています。
遠田幹雄が利用しているSNSは以下のとおりです。
facebook https://www.facebook.com/tohdamikio
ツイッター https://twitter.com/tohdamikio
LINE https://lin.ee/igN7saM
チャットワーク https://www.chatwork.com/tohda
また、投げ銭システムも用意しましたのでお気持ちがあればクレジット決済などでもお支払いいただけます。
※投げ銭はスクエアの「寄付」というシステムに変更しています(2025年1月6日)
※投げ銭は100円からOKです。シャレですので笑ってご支援いただけるとうれしいです(笑)
株式会社ドモドモコーポレーション
石川県かほく市木津ロ64-1 〒929-1171
電話 076-285-8058(通常はFAXになっています)
IP電話:050-3578-5060(留守録あり)
問合→メールフォームからお願いします
法人番号 9220001017731
適格請求書(インボイス)番号 T9220001017731

