◉GEMINI LABEN
●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止、残り7日。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止、残り7日。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…
記事一覧/API / SDK
◈ API / SDK/2026-06-13上級

Gemini の生成は通ったのに公開が落ちた朝 — 高価な出力を取りこぼさない『生成アウトボックス』の設計

生成は成功したのに、公開処理の直前でプロセスが落ちる。すると高価な出力が消え、もう一度同じ生成に課金することになります。生成結果を先に永続化し、公開を冪等な後続処理に分離する『生成アウトボックス』の実装と、6月の障害下での運用記録をまとめました。

gemini-api287outboxreliability4automation36production105

✦ プレミアム記事

2026年6月のあの大規模障害(error 1076 / 1099)が出ていた朝のことです。私自身、Dolice Labs として4サイトの自動投稿パイプラインを動かしているのですが、ログを見て手が止まりました。Gemini の生成自体は通っているのに、その直後の公開処理(git への push)がネットワークごと落ちていたのです。

ジョブはエラーで終了し、スケジューラが律儀にリトライします。リトライすればまた生成から始まる。つまり、すでに課金を終えて手元にあったはずの出力を捨てて、同じプロンプトでもう一度 Gemini を呼ぶ。それが障害のあいだ、3回繰り返されていました。

重複生成を防ぐ話は以前 Gemini API の冪等性キー設計 に書きました。今日扱うのは、その裏側にある別の失敗です。生成が成功したのに、その成果を公開できずに失う落ち方。これは個人開発の小さなパイプラインでも、静かに、しかし確実にお金を溶かします。

なぜ「生成成功・公開失敗」が一番損なのか

パイプラインを「生成 → 公開」の2段だと考えると、起こりうる落ち方は3通りです。

生成の前に落ちる場合。これは何も失っていません。リトライすれば素直にやり直せます。

生成と公開の両方が成功する場合。これが正常系です。

問題は3つ目、生成が成功して公開の前に落ちる場合です。Gemini への課金はすでに発生しています。出力という最も価値のある中間生成物がメモリ上にあるのに、それを永続化していなければ、プロセスの終了とともに消えます。リトライは生成からやり直すので、同じトークンをもう一度買うことになります。

入力が長いプロンプトほど、この損は大きくなります。私の記事生成ジョブは、参照データや過去記事の文脈を含めて入力が平均で約11,000トークン、出力が約3,500トークンほどです。公開だけが落ちて3回リトライすれば、生成コストはおおよそ3倍。1件では小さくても、6サイトを毎日回していると、障害の数時間で無視できない額になります。

発想の転換 — 生成結果を「送信前の箱」に入れる

解決の鍵は、バックエンド設計で古くから使われてきたアウトボックス(送信箱)の考え方です。

メールを書いてすぐ送るのではなく、いったん下書きフォルダに保存してから送信処理に回す。送信が失敗しても下書きは残っているので、本文をもう一度書く必要はありません。

これを Gemini のパイプラインに当てはめます。生成が成功したら、公開する前に、出力そのものを永続ストアへ書き込んでおく。公開は、その箱から取り出して送り出すだけの、独立した後続処理にします。

こうすると役割がはっきり分かれます。生成フェーズの仕事は「高価な出力を安全に箱へ入れる」ところまで。公開フェーズの仕事は「箱の中身を確実に1回だけ送り出す」こと。どこで落ちても、箱に入った出力は二度と買い直さずに済みます。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦「生成は成功・公開は失敗」という最も損な落ち方を、生成結果を先に永続化する1テーブルで防ぐ設計を、SQLite と Python の完全なコードで示します
✦公開側に fingerprint を冪等キーとして渡し、リトライしても二重投稿にならない drain 処理の実装と、各クラッシュ地点での挙動を1つずつ追えます
✦1記事あたり入力約11,000・出力約3,500トークンという実測値をもとに、3回リトライで生成コストが約3倍に膨らむ構造と、アウトボックス導入後の削減幅を共有します
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

◈ API / SDK2026-07-23
会話状態をサーバーに預けるべきか — previous_interaction_id と手元での履歴刈り込みの分岐設計
Interactions API の previous_interaction_id で会話状態をサーバーに預けると、毎回履歴を送らずに済みます。ところが途中で入った巨大なツール出力を後から刈り込めず、以降のターンが重量を引きずる落とし穴があります。サーバー側状態と手元での刈り込みを状況で使い分ける分岐設計を、動くPythonの薄いラッパーとともに整理します。
◈ API / SDK2026-07-04
Gemini API の英語出力に日本語が『たまに』混ざるとき — 混入率を計測して段階的に締める運用メモ
英語出力を指示したGemini APIが、100回に数回だけ日本語を混ぜてくる——この『たまに』を止められない本当の理由と、混入率をSLOとして計測し、段階的リカバリで本番品質まで締める運用パターンを実装コード付きで整理します。
◈ API / SDK2026-05-20
Gemini API 構造化出力スキーマを本番アプリで安全に進化させる設計記録
本番アプリで Gemini API の JSON 出力スキーマを変えるとき、何を契約として守り、何を段階的に切り替えるか。旧版と新版を同時に返す Dual-Emit パターン、旧スキーマ利用箇所を見積もる compatibility checker、Sunset プロトコルの実装記録です。