AIコーディングツールの認証エラーを見分ける
4つのツールは、いずれも「認証に失敗した」と言います。 ですが文言が違い、弾かれた場所も違います。 同じ直し方は使えません。
このページは見分けるためのものです。 直し方は各ページに書いてあります。手元の文言に一致するものを開いてください。
文言から探す
| 出ている文言 | ツール |
|---|---|
Not logged in · Please run /login |
Claude Code |
Failed to authenticate. API Error: 401 API key is invalid. |
Claude Code |
unexpected status 401 Unauthorized: Missing bearer or basic authentication in header |
Codex CLI |
Error: Authentication token found but could not be validated. |
GitHub Copilot CLI |
Error: Authentication failed (Request ID: ...) |
GitHub Copilot CLI |
Error: Classic Personal Access Tokens (ghp_) are not supported by Copilot. |
GitHub Copilot CLI |
API key not valid. Please pass a valid API key. |
Gemini CLI |
Please set an Auth method in your ... |
Gemini CLI |
🔴 似た文言でも、弾かれた場所が違う
ここを取り違えると、直らないものを直そうとします。 とくに GitHub Copilot CLI の2つは紛らわしい形です。
| 文言 | どこで弾かれたか | 疑うもの |
|---|---|---|
token found but could not be validated |
GitHub のユーザー照会(401 Bad credentials) |
トークンの値 |
Authentication failed (Request ID: ...) |
Copilot のサービス | トークンの権限(Copilot Requests) |
Classic Personal Access Tokens (ghp_) |
送る前(形式で判定) | トークンの種類 |
Request ID が付いているのは2番目だけです。
付いていたら、値そのものより権限を疑ってください。
⭐ Gemini CLI は終了コードで切り分けられる
v0.58.0 で実測しました。用途ごとに終了コードが分かれています。 CI ではこれで分岐できます。
| コード | 意味 |
|---|---|
| 55 | 信頼していないディレクトリ |
| 52 | 設定ファイルが壊れている |
| 41 | 認証方法が設定されていない |
| 1 | APIキーが拒否された |
55 が出ている間、他の原因はすべて隠れます。 存在しないモデル名を指定しても、無効なキーを渡しても、 表示されるのは信頼のメッセージだけです。順番を逆にすると、 直っていないのに直したつもりになります。
4ツールに共通する見落とし
| 見落とし | 説明 |
|---|---|
| 環境変数が優先される | ログインし直しても、古い環境変数が残っているとそちらが使われ続けます。「直したのに直らない」の最多の正体です |
| 手元では動くのに CI だけ落ちる | 対話モードには一度答えた記録が残ります。CI にはありません。パイプやリダイレクトも自動的に非対話になります |
| ログインできる ≠ 使える | GitHub や Google にログインできても、その資格情報にそのサービスの権限が無いことがあります |
| 設定ファイルが黙って捨てられる | 非対話では、壊れた設定が警告なしに無視されることがあります(Claude Code で実測) |