Intermittierender Auth-Fehler: CLI meldet “Not logged in” trotz validem, frisch geschriebenem OAuth-Token (v2.1.276)
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Eine neu gestartete interaktive Session findet beim Start einen gültigen, vollständigen OAuth-Token im macOS-Schlüsselbund vor, verwendet ihn aber nicht. Nach claude login mit “Login successful” meldet der erste Prompt in der Session Not logged in · Please run /login . Erneutes /login innerhalb derselben Session behebt das nicht — auch nach drei Wiederholungen bleibt /status bei Auth token: none . Nur ein komplett neuer Prozessstart (neues Terminal-Fenster) behebt den Zustand, und auch das nicht zuverlässig.
Debug-Log-Auszug aus einer fehlschlagenden Session zeigt, dass die CLI beim Start fälschlich einen “API-Key hat Vorrang”-Zustand erkennt, obwohl weder ANTHROPIC_API_KEY gesetzt noch ein API-Key konfiguriert ist:
[Bootstrap] Skipped: no usable OAuth, WIF, or API key
[claudeai-mcp] Disabled: API-key auth precedence active
Kurz danach schlägt ein asynchroner Schlüsselbund-Lesevorgang sichtbar fehl:
[WARN] [keychain] readAsync failed; not caching a null
Der Token selbst ist zu diesem Zeitpunkt nachweislich valide (siehe “Error Messages/Logs”).
What Should Happen?
Nach erfolgreichem claude login sollte jede neue oder bestehende Session den geschriebenen OAuth-Token zuverlässig lesen und verwenden, unabhängig davon, ob mehrere Sessions parallel laufen.
Error Messages/Logs
1. Keychain-Eintrag ist zum Fehlerzeitpunkt strukturell valide:
$ security find-generic-password -s "Claude Code-credentials" -w | wc -c
517
$ security find-generic-password -s "Claude Code-credentials" -w | jq 'keys'
["claudeAiOauth"]
$ security find-generic-password -s "Claude Code-credentials" -w | jq '.claudeAiOauth | keys'
["accessToken","expiresAt","rateLimitTier","refreshToken","refreshTokenExpiresAt","scopes","subscriptionType"]
expiresAt lag zum Prüfzeitpunkt ca. 7,5 Stunden in der Zukunft, refreshTokenExpiresAt ca. 29,5 Tage — kein Ablauf- oder Zeitzonenproblem.
2. Resultierender API-Fehler beim ersten Prompt der betroffenen Session:
[ERROR] API error (attempt 1/11): Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted
[ERROR] [engine] turn ended in error: Not logged in · Please run /login
3. Auffällig verlängerte Startzeit exakt im betroffenen Zeitfenster:
• Erfolgreiche Session: [STARTUP] showSetupScreens() completed in 2468ms
• Fehlschlagende Session: [STARTUP] showSetupScreens() completed in 29907ms
4. Ausgeschlossene Nebenursachen (in dieser Untersuchung widerlegt):
• Mehrfachinstallation der CLI (npm-global parallel zur nativen Installation) — bereinigt, Fehler trat danach erneut auf.
• Duplizierte Schlüsselbund-Einträge — bereinigt, Fehler trat danach erneut auf.
• Xcode-Integration — Fehler auch bei vollständig geschlossenem Xcode reproduziert ( ps aux | grep -i xcode → keine Treffer).
• Terminal-Emulator — gleiches Verhalten in Warp und in Terminal.app.
• Abgelaufener/falsch datierter Token — siehe Punkt 1 oben.
Steps to Reproduce
- Alle laufenden claude -Prozesse beenden, sauberen Zustand herstellen.
- Neues Terminal-Fenster öffnen, claude login ausführen, Browser-Autorisierung abschließen (“Login successful”).
- In derselben oder einer neuen Session einen beliebigen Prompt senden.
- Beobachtung: Antwort ist Not logged in · Please run /login .
- /login erneut in der betroffenen Session ausführen → derselbe Fehler bleibt bestehen.
- /status zeigt Auth token: none .
Tritt intermittierend auf, nicht bei jedem Start (eine frühere Session am selben Tag verlief fehlerfrei), wahrscheinlich verstärkt durch mehrere parallel laufende claude -Sessions, aber auch bei geschlossenem Xcode und in unterschiedlichen Terminal-Emulatoren reproduzierbar.
Claude Model
Sonnet (default)
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.1.276
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Warp
Additional Information
Workaround: Zeigt eine Session Not logged in bzw. /status → Auth token: none , hilft erneutes /login innerhalb dieser Session nicht. Stattdessen Session beenden ( /exit ), neues Terminal-Fenster öffnen, claude dort neu starten — behebt den Zustand meist, aber nicht garantiert.
Separater, verwandter Befund (eigenes Issue): Unabhängig von obigem lädt die Xcode-Intelligence-Integration (“Claude Agent”) für Xcode 27 fest eine veraltete, per Checksum verifizierte Agent-Version, unabhängig vom Stand der CLI. Das erzeugt dort ein ähnlich aussehendes, aber technisch anderes “Not Signed In”-Symptom. Wird hier nur der Vollständigkeit halber erwähnt, nicht Teil dieses Report