零弐壱蜂

[Codex] refresh token already usedエラーの対処

背景

Codex CLIで codex login を実行すると以下のエラーが発生する。再ログインしても解消しない。

Error loading configuration: Your access token could not be refreshed because your refresh token was already used.
Please log out and sign in again.

確認した状況は以下の通りである。

  • codex logout 後に再ログインしても改善しない
  • 環境変数 CODEX_TOKEN は未設定

環境

  • codex-cli 0.125.0

原因

~/.codex/auth.json に残った使用済みrefresh tokenが参照され続けていた。

Codexは認証情報を ~/.codex/auth.json にキャッシュする。Codexのrefresh tokenは一度しか使用できないため、無効化済みのトークンが残っていると再ログインしても認証に失敗する。codex logout を実行してもこのキャッシュは削除されないケースがあるらしい。

# キャッシュファイルの残存を確認
ls -l ~/.codex/auth.json

解決方法

認証情報のキャッシュファイルを手動で削除してから再ログインする。

rm -f ~/.codex/auth.json
codex login

ワンライナーで実行する場合は以下の通りである。

rm -f ~/.codex/auth.json && codex login

この手順でエラーは解消した。

効果のなかった操作

以下の操作では解消しなかった。

# キャッシュが残ったままで再認証に失敗する
codex logout
codex login
# 未設定であり、原因ではなかった
echo "${CODEX_TOKEN}"

補足

~/.codex/config.toml や環境変数には問題はなかった。同様のエラーが発生した場合は、まず ~/.codex/auth.json の削除を試すとよい。