Gemini CLI のエラー

API key not valid. Please pass a valid API key.

結論

APIキーが拒否された状態。キーの形式ではなく、種類・プロジェクト設定が原因のことが多い。

確認した版 Gemini CLI v0.58.0
確認日 2026年9月3日
最終更新 2026年9月3日
根拠 実機で確認

エラー文字列

Gemini CLI
API key not valid. Please pass a valid API key.

⚠️ 標準エラーに出て、終了コードは 1 です。

_ApiError: {"error":{"code":400,"message":"API key not valid. Please pass a valid API key.",
"status":"INVALID_ARGUMENT","details":[{"@type":"type.googleapis.com/google.rpc.ErrorInfo",
"reason":"API_KEY_INVALID","domain":"googleapis.com",
"metadata":{"service":"generativelanguage.googleapis.com"}}]}}

An unexpected critical error occurred:[object Object]

何が起きているか

キーは送られています。Google 側が「そのキーは無効だ」と返しました。

🔴 最後の行に意味はありません

An unexpected critical error occurred:[object Object]

⚠️ これは Gemini CLI 側の表示の不具合です。 エラーを文字列にできず [object Object] になっています。原因の手がかりは1つもありません。

見るべきは "reason" の値です。 上の例なら API_KEY_INVALID。ここに本当の理由が入っています。

API_KEY_INVALID になる理由

🔴 キーの文字列が間違っているとは限りません。 実際にはこちらが多いです。

原因 説明
API が有効になっていない キーの所属プロジェクトで Generative Language API が有効化されていない
キーの種類が合っていない 制限のないキーは 2026-06-19 以降ブロックされる。新しく作ると Authorization キーになる
キーに利用制限をかけている IP・リファラ・API の制限に、この呼び出しが引っかかっている
別プロジェクトのキーを使っている 環境変数に古いキーが残っている
前後に空白や改行が入っている コピー時に混入する

⚠️ 他の指定は無視されます

v0.58.0 で実測しました。キーが無効な間、他の指定は一切効きません。

試したこと 出たもの
-m no-such-model(存在しないモデル) 🔴 APIキーのエラーだけ
-m gemini-2.0-flash(廃止されたモデル) 🔴 APIキーのエラーだけ
--extensions no-such-ext 🔴 APIキーのエラーだけ

「モデル名が悪いのかも」と探しても無駄です。 キーを先に通してください。

直し方

1. どのキーが使われているか確認する

⚠️ 値そのものを画面に出さないこと。 長さと先頭だけで足ります。

macOS / Linux

for n in GEMINI_API_KEY GOOGLE_API_KEY; do
  v=$(printenv "$n")
  printf '%-18s %s\n' "$n" "${v:+${v:0:6}...(${#v}文字)}${v:-なし}"
done

Windows(PowerShell)

foreach ($n in 'GEMINI_API_KEY','GOOGLE_API_KEY') {
  $v = [Environment]::GetEnvironmentVariable($n)
  if ($v) { "{0,-18} {1}...({2}文字)" -f $n, $v.Substring(0, [Math]::Min(6, $v.Length)), $v.Length }
  else    { "{0,-18} なし" -f $n }
}

⚠️ 長さが想定より大きければ、空白や改行が混ざっています。

2. API が有効になっているか確認する(最も多い原因)

Google Cloud コンソール で、キーの所属プロジェクトを選び、Generative Language API が有効か確認します。

🔴 キーを作っただけでは使えません。 API を明示的に有効化する必要があります。

3. キーを作り直す

Google AI Studio で新しく発行します。

2026-06-19 以降に作ったキーは、既定で適切な種類になります。 古いキーを直すより、作り直すほうが早いことが多いです。

export GEMINI_API_KEY=新しいキー
$env:GEMINI_API_KEY = "新しいキー"

4. 古いキーが残っていないか確認する

環境変数は複数の場所から来ます。シェルの設定ファイルやユーザー環境変数に古いものが残っていると、新しいキーを設定しても上書きされます。

grep -rn 'GEMINI_API_KEY\|GOOGLE_API_KEY' ~/.bashrc ~/.zshrc ~/.profile 2>/dev/null
[Environment]::GetEnvironmentVariable("GEMINI_API_KEY", "User")

5. 通ったか確かめる

gemini --skip-trust -p "hello"; echo "exit=$?"

終了コード 0 になれば通っています。

似ているが別のエラー

メッセージ 違い
Please set an Auth method in your ... キーがどこにも設定されていない詳細
Gemini CLI is not running in a trusted directory. 認証まで到達していない詳細

再発防止

  • 🔴 [object Object] は無視する。 見るのは "reason" の値
  • キーを作ったら、そのプロジェクトで API を有効化する。 ここが最も多い抜け
  • キーが通らない間は、モデル名や拡張の指定を疑っても無駄
  • 環境変数は1か所に決める。複数に散らばると、直したつもりで直らない

この手順で直りませんでしたか?

環境を添えて報告いただければ、追加の原因を検証してこのページに反映します。

エラーを報告する