Claude Media
「Anthropic profile login expired」の対処法

「Anthropic profile login expired」の対処法

Claude Codeで「Anthropic profile login expired」と出たときの原因と対処。プロファイルを誰が作ったかで、/loginで直るかどうかが分かれます。

Claude Codeが「Anthropic profile login expired」と表示するのは、Anthropicプロファイルが認証元になっているときだけです。プロファイルの保存済みログインが期限切れで、更新用の資格情報も無いため、Claude Codeはリクエストを送らずローカルで止まります。同じ資格情報で再送しても結果は同じだからです。

/loginで直るかどうかは、2つの条件で決まります。1つはメッセージの末尾の文言、もう1つはそのプロファイルを誰が作ったかです。末尾が「Re-authenticate」の形でも、作成元によっては/loginで直ります。

最初に/statusで認証元を確かめる

エラーを見たら、/loginを打つ前に/statusを実行します。

/status

通常はLogin methodが出る位置にProfileの行が出て、認証元がプロファイルだと分かります。プロファイルが実際の認証に使われているときは、OrganizationとEmailの行にそのアカウントも出ます。

手元のClaude Code v2.1.287で、空の設定ディレクトリに差し替えてclaude auth status --textを実行すると、次のように表示されました。ANTHROPIC_PROFILE=workを付けても出力は同じでした。

HOME=$(mktemp -d) CLAUDE_CONFIG_DIR=$HOME/c claude auth status --text
Not logged in. Run claude auth login to authenticate.

プロファイルのファイルが無い名前を指定しただけなら、v2.1.287のclaude auth statusは未ログイン扱いになります。

プロファイルはどこから選ばれるか

Anthropicプロファイルは、設定ディレクトリにある名前付きの認証設定ファイルです。場所は、macOSとLinuxが~/.config/anthropic、Windowsが%APPDATA%\Anthropicです。認証モードは2種類あります。

  • user_oauth: ant auth login、または/loginのキー不要のConsoleサインインが書いたもの
  • oidc_federation: Workload Identity Federation(WIF)向けに設定したもの

Claude Codeは次の3つの経路を上から順に確かめ、最初に見つかったものを使います。

3経路

プロファイルの選ばれ方

  • 1. ANTHROPIC_PROFILE

    名前を明示した場合です。/loginより常に上位で、認証モードは問われません。

  • 2. federation変数

    ANTHROPIC_FEDERATION_RULE_IDとANTHROPIC_ORGANIZATION_IDを両方設定した場合です。こちらも/loginより上位です。

  • 3. 自動検出

    active_configファイルが指す、またはdefaultという名前のプロファイルです。oidc_federationなら/loginより上位、user_oauthなら有効な/loginの下に回ります。

ベアモード・Claude Desktop・クラウドセッションでは、プロファイルもfederation変数も読まれません。これらで同じ症状が出ているなら、原因は別です。

文言と作成元で直し方が分かれる

エラー文は2通りあり、どちらが出るかは「選んだ」のか「見つかった」のかで決まります。

くらべる

エラー文の2つの型

明示指定

末尾が Re-authenticate your Anthropic profile

ANTHROPIC_PROFILEを自分で設定しているときの文言です。Claude Codeは、保存済みの/loginより明示指定のプロファイルを優先します。

自動検出

後半が Run /login to use your claude.ai account instead, or re-authenticate the profile

設定ディレクトリから見つけたプロファイルのときの文言です。有効な/loginがあればそちらが優先されます。v2.1.234より前は、この場合もRe-authenticate your Anthropic profileの形で表示されました。

ここで注意したいのは、前者の「Re-authenticate」の形でも/loginが役に立つ場合があることです。直るかどうかは文言ではなく、プロファイルの作成元で決まります。

手順

プロファイルの作成元から直し方を選ぶ

  1. 1

    ant auth login か キー不要のConsoleサインインで作った場合

    /loginでAnthropic Consoleアカウントを選んでサインインし直します。Claude Codeがそのプロファイルの期限切れの資格情報を置き換えます。キー不要のサインインを出せるマシンで使える手順です。

  2. 2

    WIFのfederationプロファイルか、他のツールで作った場合

    /loginでは更新されません。作成したツールで再認証します。管理者が資格情報を発行している運用なら、新しいものの発行を依頼します。

  3. 3

    プロファイルを使うのをやめる場合

    ANTHROPIC_PROFILEを設定していればunsetします。自動検出されているなら、/loginで書いたものは/logout、ant auth loginで書いたものはant auth logoutを使います。どちらのモードでも、設定ディレクトリのconfigs/からファイルを削除する方法があります。

ANTHROPIC_PROFILEをunsetしたら、シェルの設定ファイルにexport行が残っていないかも見ます。残っていると、次のシェルで同じプロファイルが再び選ばれます。

/loginのキー不要サインインで期限切れが起きる理由

このエラーは、WIFを使わない個人の環境でも出ます。きっかけの1つが、v2.1.242以降の/loginでAnthropic Consoleアカウントを選ぶ操作です。

選ぶと、サインイン方法を聞かれます。「Sign in with your Console account」(recommended)なら、得られたOAuthトークンをAnthropicプロファイルとして保存し、APIキーは作りません。「Create an API key」(legacy)なら、従来どおりConsoleのAPIキーを作って保存します。

ターミナルからはclaude auth login --consoleでも、Consoleアカウントでのサインインを選べます。v2.1.287の--helpでは、--claudeaiが既定で、--consoleは「APIの従量課金で使うConsole」を指す選択肢と説明されています。--ssoや--email <email>も並んでいます。

プロファイルに入るのはOAuthのログインで、Claude Codeが自動で更新します。更新に失敗すると、サインインし直すまでこのエラーでリクエストが止まります。APIキーは固定の資格情報で、更新の対象ではありません。

選択肢が出ないマシンもあります。次のどれかに当てはまると、Claude Codeは確認なしにAPIキーを作ります。

  • Amazon Bedrock・Microsoft Foundryなどのクラウドプロバイダーで動かしている
  • どれかの設定ファイルでforceLoginOrgUUIDを設定している、またはforceLoginMethodを"claudeai"か"console"にしている
  • 管理設定が存在するのにClaude Codeが読めず、ほかの管理設定も無い

キー不要のサインインには、次の3つの決まりと副作用があります。

  • 書き込み先は、ANTHROPIC_PROFILEの名前、アクティブなプロファイル、defaultの順で決まる
  • 書き込み先がfederationプロファイルのときは、上書きせずにサインインを拒否する
  • マシンに保存されているclaude.aiのログインからサインアウトされる

取り消すには/logoutを実行します。このサインインが書いた資格情報が削除され、失効も行われます。サインインの前には、環境のANTHROPIC_API_KEYをunsetしておきます。

無人で動くセッションでは影響が大きくなります。エージェントビューのバックグラウンドセッションやRemote Controlのセッションは、ログインより長く走ると、期限切れの時点で進まなくなります。サインインし直すまで復帰しません。

似たエラーや別の認証との切り分け

このエラーは、APIキー・ANTHROPIC_AUTH_TOKEN・サードパーティプロバイダで認証しているセッションには出ません。似た文言に「OAuth token revoked」「OAuth token has expired」があります。こちらは、/loginで保存したclaude.aiやConsoleのログインをAPIが401で拒否したときのエラーです。発生の経路が別なので、対処も別になります。

認証の優先順位は、公式docsで次の順に並んでいます。

  1. クラウドプロバイダー資格情報
  2. ANTHROPIC_AUTH_TOKEN
  3. ANTHROPIC_API_KEY
  4. apiKeyHelper
  5. CLAUDE_CODE_OAUTH_TOKEN
  6. Anthropicプロファイルとfederation資格情報
  7. /loginのサブスクリプション資格情報

上位が1つでも有効なら、プロファイルまで順番が回ってこないので、このエラーは出ません。ただし、ant auth loginで作ったプロファイルは、ANTHROPIC_PROFILEで名前を指定したときだけ6番の位置に入ります。名前を指定しなければ、/loginより下です。

Claude Codeアカウント切り替えで扱うCLAUDE_CONFIG_DIRは、設定ディレクトリごと個人用と会社用のログインを分ける仕組みです。CLAUDE_CONFIG_DIRを使っているだけで、このエラーは出ません。

プロファイルを使っている間は使えない機能

プロファイルまたはfederation変数が認証元になっている間は、claude.aiログインを前提とする機能が使えません。claude.aiコネクタと/schedule(Claude Routine)がこれにあたります。プロファイルをやめて/loginでclaude.aiにサインインすれば、両方とも戻ります。Claude Codeの機能全体のうちコネクタ経由の連携を使っている場合は、プロファイルに切り替えた時点でコネクタが消えます。

よくある質問

管理者に頼んだあと、手元で何を確かめればよいですか

新しい資格情報を受け取ったら、/statusでProfileの行とOrganization・Emailの行を確認してから、同じ操作をやり直します。管理者に依頼するときは、/statusで見たプロファイル名と、エラー文の末尾の文言を添えると伝わりやすくなります。

ANTHROPIC_FEDERATION_RULE_IDを使っている場合も同じですか

止めたいときは、ANTHROPIC_FEDERATION_RULE_IDとANTHROPIC_ORGANIZATION_IDのどちらか一方をunsetします。トークンの交換元にはANTHROPIC_IDENTITY_TOKEN_FILEなどのWIF用の変数も使われるため、その設定が正しいかは配布元の管理者に確認します。

この記事を共有:XはてブLinkedIn