Skip to content

原文(日本語に翻訳)

セッション外で認証情報が更新された後も、キャッシュされたリクエスト設定によりモデルリクエストが認証エラーで失敗し続ける問題を修正しました。

原文(英語)

Fixed model requests continuing to fail with auth errors after credentials were refreshed outside the session, due to a stale cached request configuration

概要

Claude Codeのセッション実行中に、外部から認証情報(APIキーやOAuthトークン)が更新された場合、以前は更新後もキャッシュされた古い認証情報でリクエストし続け、認証エラーが発生し続ける問題がありました。この修正により、外部で認証情報が更新されたことを検知してキャッシュを破棄し、新しい認証情報が自動的に使用されるようになります。

基本的な使い方

この修正は自動的に適用されます。外部でAPIキーが更新された場合でも、セッションを再起動することなく自動的に新しい認証情報が使用されます。

実践例

OAuthトークンの自動更新シナリオ

bash
# 長時間セッションでの典型的なシナリオ
claude
# → セッション開始

# 数時間後: OAuthトークンが外部で期限切れ・更新
# 例: SSO経由での自動更新、別のターミナルでの claude auth refresh

# 以前の動作:
# → リクエスト失敗: 401 Unauthorized
# → セッション全体を再起動する必要があった

# 修正後の動作:
# → 認証エラーを検知 → キャッシュを破棄
# → 新しい認証情報を自動取得 → リクエスト成功

APIキーローテーション環境での使用

bash
# 企業環境でのAPIキーローテーション
# セキュリティポリシーにより定期的にAPIキーが更新される環境

# 修正前: キーローテーション後にClaudeが応答しなくなる
# 修正後: 透過的に新しいキーを使用して継続

# 長時間実行するCI/CDパイプライン
claude --print "大規模なコードベース全体を分析してください"
# → 途中でキーが更新されても処理が継続する

複数環境での認証情報管理

bash
# 開発・ステージング・本番で異なるAPIキーを使用する場合
# 外部スクリプトによる認証情報管理でも安全に動作

# .env ファイルが外部で更新された場合も自動対応
# source .env  # 別のプロセスで実行
# → Claudeセッションは次のリクエスト時に新しい値を取得

注意点

  • 認証情報の更新検知は、エラー発生時(401)に実行されます。エラーが発生する前に予防的に更新はしません
  • 更新後の最初のリクエストは認証エラーで失敗しますが、自動リトライで成功します(ユーザーには透過的)
  • セッション内で claude auth コマンドを使用して手動更新することも引き続き可能です
  • AWS BedrockやGoogle Cloud Vertex AIの認証情報にも同様の修正が適用されます

関連情報