GitHub Copilot CLI で "Session token expired" が出たときの対処法

GitHub Copilot CLI で "Session token expired" が出たときの対処法

2026.05.12

製造ビジネステクノロジー部の小林です。

先日、GitHub Copilot CLI を使っていると、こんなエラーに遭遇しました。

`Session token expired and the request could not be retried. Please resend your message.`

スクリーンショット 2026-05-12 6.57.17

このエラーが出た後は何を入力しても受け付けられない状態になります。

当初は /clear でセッションをリセットして対応していましたが、これだと会話履歴が消えてしまい、次のセッションでコンテキストを一から説明し直す必要があって不便でした。

改めてエラーの原因を調べたところ、対処法はシンプルでした。

原因は 2 つ

調査したところ、以下のいずれかが原因と考えられます。

原因 説明
認証トークンの失効 GitHub の OAuth トークンなどの有効期限が切れた
セッション状態の不整合 CLI 内部のセッション状態にズレが生じた?(接続一時断、再接続時など)

公式ドキュメントにはトークンの有効期限に関する詳細な記載はありません。ただし、GitHub の公式リポジトリの Issue #2818 で、報告者が「セッショントークンは約 1 時間で切れる」と報告しています。
https://github.com/github/copilot-cli/issues/2818

なお、この Issue は v1.0.35-3 で一度 Closed されています。同バージョンからトークン失効時に自動リフレッシュ&リトライが行われるようになり、通常はメッセージを再送しなくてもよくなったとのことです。

ただし、リフレッシュ自体が失敗した場合はまだエラーが表示される可能性があるとのことで、筆者の環境ではこのケースが発生していると考えられます。

2 つのコマンドで解決

コマンド一覧

コマンド 役割 実行方法
/restart 現在のセッションを保持して CLI を再起動 チャットに /restart と入力
/login 認証トークンを再取得 チャットに /login と入力

対処フロー

まず /restart を試し、それでも解決しない場合は /login を実行します。

/restart とは

セッション履歴を維持したまま、CLI プロセスの内部状態だけをリセットします。アプリを再起動するような感覚で使えます。

/keep-alive ではダメ?

/keep-alive で解決できるのでは?」と思いましたが、これは別の目的のコマンドでした。

コマンド一覧

コマンド 役割
/restart 現在のセッションを保持して、CLI を再起動
/login 認証トークンを再取得
/keep-alive on PC のスリープによる処理中断を防止(トークン失効とは無関係)
/clear セッション履歴をリセット(エラー対策ではなく、別用途)

/keep-alive はあくまで PC のスリープによる処理中断を防ぐ機能であり、トークン失効には対応していません。

おまけ 400 Invalid input... エラーについて

同じ時期に 400 Invalid input... というエラーも発生しました。

スクリーンショット 2026-05-12 7.49.09

Session token expired と同様に /restart/login の順で試したのですが解消せず、最終的に /clear でセッションごとリセットして対応しました。

こちらのエラーについては原因の特定まではできていません。解決方法や詳しい原因をご存知の方がいれば、ぜひこちらから教えていただけると嬉しいです!

追記

こちらの400 Invalid input...エラーについても /restart コマンドを実行することで解消できました。原因は引き続き調査してみます!

まとめ

状況 対処方法
Session token expired が出た /restart → 解消しなければ /login
400 Invalid input... が出た /clear でセッションをリセット(履歴は削除される)

この記事をシェアする

関連記事