Error: Authentication failed (Request ID: <id>)
Copilot 側が資格情報を受け付けなかった状態。GitHub にログインできていても、Copilot の権限が無いと出る。
エラー文字列
Error: Authentication failed (Request ID: <id>)
⚠️ 標準エラーに出て、終了コードは 1 です。
Error: Authentication failed (Request ID: 792E:3218B:1F4D18:25A3DF:6A88E20F)
Your GitHub token may be invalid, expired, or lacking the required permissions.
To resolve this, try the following:
• Start 'copilot' and run the '/login' command to re-authenticate
• If using a Fine-Grained PAT, ensure it has the 'Copilot Requests' permission enabled
• If using COPILOT_GITHUB_TOKEN, GH_TOKEN or GITHUB_TOKEN environment variable, verify the token is valid and not expired
• Run 'gh auth status' to check your current authentication status
何が起きているか
Copilot 側が資格情報を受け付けませんでした。
🔴 似た文面がもう1つある。区別が要る
Copilot CLI の認証エラーには2種類あり、見るべき場所が違います。v1.0.80 で両方を実測して確かめました。
| 出るもの | どこで弾かれたか | 疑うもの |
|---|---|---|
Error: Authentication token found but could not be validated. |
GitHub のユーザー照会(401 Bad credentials) |
トークンの値 |
Error: Authentication failed (Request ID: ...) |
Copilot のサービス | トークンの権限、または資格情報が渡っていない |
⭐ Request ID が付いているのはこちらだけです。 付いていたら、値そのものより権限を疑ってください。
⚠️ 前者は Authentication token found but could not be validated. を見てください。
よくある原因
| 原因 | 説明 |
|---|---|
| ファイングレインドPATに Copilot の権限が無い | メッセージが名指ししている Copilot Requests が有効になっていない |
| 資格情報がどこにも無い | 環境変数も gh のログインも無い状態。v1.0.80 で実測すると、このメッセージが出ます |
| トークンの期限切れ | 値としては正しいが失効している |
| Copilot が有効になっていない | アカウントまたは組織で契約されていない |
🔴 GitHub にログインできることと、Copilot を使えることは別です。 gh auth status が正常でも、そのトークンに Copilot の権限が無ければここで止まります。
直し方
1. まず現在の認証状態を見る
gh auth status
⚠️ ここが正常でも安心できません。 GitHub にログインできているだけで、Copilot の権限があるかは分かりません。
2. どの資格情報が使われるか確認する
上から順に見られます。
| 優先順 | 環境変数 |
|---|---|
| 1 | COPILOT_GITHUB_TOKEN |
| 2 | GH_TOKEN |
| 3 | GITHUB_TOKEN |
| 4 | gh auth login で保存された資格情報 |
⚠️ 値そのものを画面に出さないこと。
Windows(PowerShell)
foreach ($n in 'COPILOT_GITHUB_TOKEN','GH_TOKEN','GITHUB_TOKEN') {
$v = [Environment]::GetEnvironmentVariable($n)
"{0,-22} {1}" -f $n, $(if ($v) { "設定あり({0}文字)" -f $v.Length } else { "なし" })
}
macOS / Linux
for n in COPILOT_GITHUB_TOKEN GH_TOKEN GITHUB_TOKEN; do
v=$(printenv "$n")
printf '%-22s %s\n' "$n" "${v:+設定あり(${#v}文字)}${v:-なし}"
done
すべて「なし」で gh にもログインしていなければ、資格情報が無いのが原因です。
3. ファイングレインドPATなら Copilot の権限を確認する
⭐ メッセージが名指ししているのはここです。
GitHub の Settings → Developer settings → Personal access tokens → Fine-grained tokens で対象のトークンを開き、Copilot Requests が有効か確認します。
🔴 後から権限を足した場合、トークンを作り直す必要があることがあります。 権限を変えても直らないときは、新しく発行してください。
⚠️ クラシックトークン(ghp_)はそもそも使えません。その場合は別のメッセージが出ます(詳細)。
4. トークンをやめて gh の認証を使う
手元の端末ならこちらが簡単です。
unset COPILOT_GITHUB_TOKEN GH_TOKEN GITHUB_TOKEN
gh auth login
Remove-Item Env:COPILOT_GITHUB_TOKEN, Env:GH_TOKEN, Env:GITHUB_TOKEN -ErrorAction SilentlyContinue
gh auth login
⚠️ 環境変数が残っていると gh でログインし直しても効きません。 環境変数のほうが優先されます。
5. 対話セッションからログインし直す
copilot
起動したら次を打ちます。
/login
6. 契約そのものを確認する
個人または組織で Copilot が有効になっていないと、権限を整えても通りません。組織のアカウントで使っている場合は、管理者に割り当てを確認してください。
⚠️ 組織のポリシーで機能が制限されていると、別の警告が併記されることがあります。
! Third-party MCP servers are disabled by your organization's Copilot policy.
再発防止
- 🔴
Request ID付きなら、値より権限を疑う - ファイングレインドPATを作るときは
Copilot Requestsを必ず有効にする - トークンは環境変数と
ghの両方に散らばりやすい。片方に決める - CI では期限のあるトークンを使い、失効時に気づける形にしておく