Gemini API の空応答を finish_reason から逆引きする — 診断フロー・再試行分類・監視の実務
response.text が空になる問題は candidates・prompt_feedback・finish_reason の3層で診断できます。思考トークンによる出力枯渇の検出、再試行可否の分類器、空応答率の監視まで、本番で運用している実装をまとめました。
Firebase AI Logic で iOS から Gemini を呼ぶと 403 になる原因と対処
Firebase AI Logic(旧 Vertex AI in Firebase)で iOS アプリから Gemini を呼び出すと 403 PERMISSION_DENIED が返る問題。App Check の強制適用・API 未有効化・Blaze 未設定の3つの原因を切り分けて解決する手順を、実機検証の経験から整理します。
Gemini 2.5/3 で本文が空なのに finish_reason が MAX_TOKENS になるときの原因と対処
プロンプトはほんの数行なのに、maxOutputTokens を絞った gemini-2.5-flash が空文字を返し finish_reason が MAX_TOKENS になる — 犯人は思考トークンです。原因と3通りの対処を実装コードで整理します。
Gemini APIで「Unsupported MIME type」エラーが出るときの原因と対処
画像や音声をGemini APIに渡したときに発生する『Unsupported MIME type』エラーを、MIMEタイプの綴り間違い・octet-stream問題・非対応フォーマットの3つの観点から切り分けて、確実に動くコードで解決します。
Gemini 2.5 Pro で thinkingBudget を 0 にすると INVALID_ARGUMENT になる原因と対処
Gemini 2.5 Pro で thinkingBudget を 0 にすると 400 INVALID_ARGUMENT が返る原因を、モデルごとの思考予算レンジの違いから解説します。Pro でレイテンシを抑える正しい書き方と Flash への切り替え判断を Python・JavaScript のコード付きで紹介します。
Gemini API キーに HTTP リファラー制限をかけたら本番サイトから 403 エラーになる原因と対処
Google Cloud Console で API キーに HTTP リファラー制限を設定したら、ブラウザから叩く本番サイトでも 403 エラーが返るようになった、というつまずきの原因と対処を、リファラー文字列の書式・SDK 別の挙動・サーバー側プロキシへの逃し方、さらにブラウザ直叩きで起きる CORS エラーとの切り分けまで含めて整理します。
Gemini API の chat で send_message ごとに温度やトークン上限が変わらない原因
google-genai SDK の chat セッションで send_message ごとに generationConfig や temperature を渡しているのに、応答の挙動が変わらない・前の設定が引きずられる場合の切り分け手順をまとめました。SDK の設計意図を踏まえた回避策と、現場で使っているラッパー実装まで動くコードで整理しています。
gemini-2.5-flash-image で参照画像が反映されない・別物が生成される時の原因と対処
gemini-2.5-flash-image(Nano Banana)で参照画像を渡したのに別物が生成される、編集指示が無視されるといった症状の切り分け手順をまとめました。parts の順序・response_modalities・画像サイズ・chat session ごとの落とし穴を、動くコードと一緒に整理しています。
Gemini API のストリーミングが本番で「途中で切れる」とき、私が試している原因切り分けの順序
Gemini API のストリーミング応答が本番で途中で切れる症状に対して、ネットワーク・SDK・サーバー側のどこから疑うべきかの順序を整理しました。まず確かめたい3つの事実、切り分けの記録テンプレート、切断を監視シグナルとして使う考え方まで共有します。
Gemini API の Structured Output でバリデーションエラーが返るときの原因と対処
Gemini API の responseSchema を使った構造化出力で頻発するバリデーションエラー(INVALID_ARGUMENT、schema mismatch、空配列、不要フィールド)の原因と、実運用で安定させるための実装パターンを個人開発の現場視点でまとめます。
Gemini Deep Research が長時間止まる時に効く5つの切り分けと回避策
Gemini の Deep Research が30分以上『調査中…』のまま動かない、あるいは途中で勝手に終了する症状にはいくつかの典型パターンがあります。個人開発で運営している6サイトのリサーチ業務で実際に遭遇した5種類の原因と、それぞれの切り抜け方を整理しました。
Gemini API で MALFORMED_FUNCTION_CALL が返ってくるときの原因と対処
Gemini API の function calling で finishReason: MALFORMED_FUNCTION_CALL が返ってくる現象について、再現条件・3つの根本原因・実運用で効いた対処を整理しました。