今週、Gemini API から error 1076 や 1099 が立て続けに返ってきた朝、最初に頭をよぎったのは「今夜のバッチは動くだろうか」でした。過去最大級と報じられた障害に加えて、6月25日には画像生成の preview モデルが停止し、Interactions API の旧スキーマ削除も今月完了したばかりです。個人開発で API に依存した仕組みを動かしている身としては、落ち着かない一週間だったというのが正直なところです。だからこそ、今週の Gemini Lab からは「外部の都合に振り回されないための4本」を選びました。
障害の朝、夜間バッチはどう生き残るか
Gemini API の大規模障害で夜間バッチを止めないために組んだ三層の防御
失敗を「再試行してよいもの」と「してはいけないもの」に分けるところから始まり、リトライ・フォールバック・縮退運転の三層で夜間バッチを守る設計をまとめた一本です。今回の障害の渦中で実際に機能した構成なので、机上の設計論ではありません。冪等性のない処理に再試行を重ねると事故になる、という後半の指摘は、リトライを「とりあえず3回」で済ませてきた構成への警鐘として読めます。私自身、アラート閾値の決め方の節を読み返して、自分の監視設定を一段見直しました。
6月25日の画像 preview 停止まで、あと2週間
Gemini の画像生成 preview モデルが 6月25日に停止します — GA 版への移行で確認したコード差分と検証手順
この記事の価値は、モデルIDの書き換えそのものより「モデルIDはコードの外にも潜んでいる」という棚卸しの視点にあります。環境変数・設定ファイル・CI の変数と、置き換え漏れが起きる場所を先回りして列挙しているので、移行作業のチェックリストとしてそのまま使えます。フォールバック先を preview モデルにしてはいけない、という注意は見落としやすい盲点でした。プレミアム記事ですが、停止日が目前の今こそ読む時機だと考えて選んでいます。
outputs が消えた Interactions API を立て直す
Gemini Interactions API の outputs が使えなくなったら — 6月6日廃止の旧スキーマから steps へ移行する手順
旧スキーマの削除で「落ちる」のではなく「無言で空になる」症状が出る、という切り分けから始まる移行手順です。エラーが出ない壊れ方は原因の特定が遅れがちなので、症状を起点にした構成は実務でそのまま役立ちます。ストリーミングのイベント名総入れ替えや response_mime_type の廃止など、公式の移行案内だけでは拾いにくい細部まで踏み込んでいる点もこの記事ならではです。同じ API を使っている読者の復旧時間を少しでも縮められたら、と思いながら選びました。
審査リジェクトの通知を、読む作業から仕組みへ
App Store 審査リジェクト対応に Gemini API を組み込む — 通知の構造化から Resolution Center 返信までの運用記録
App Store の審査リジェクトが届いた日の、あの胃の重さを知っている方に勧めたい一本です。通知本文を3層の JSON に構造化し、ガイドライン条文と照合し、Resolution Center への返信ドラフトまでつなげる運用記録になっています。リジェクト対応は感情が先に立ちやすい作業だからこそ、構造化して淡々と処理する仕組みに価値があります。過去のリジェクトを NDJSON で蓄積して資産にするという発想は、審査対応を「その場しのぎ」から「学習する運用」へ変えてくれるはずです。
今週の選び方
4本に共通するのは、障害・仕様変更・審査という外部の都合に振り回される側から、備える側へ回るための具体策だという点です。まずはご自身の構成で「止まったら一番困る処理」を一つ特定し、障害対応の記事と照らし合わせるところから始めてみてください。移行締切が関係する方は、preview 停止と outputs 移行の2本を今週中に確認しておくと、月末を落ち着いて迎えられます。