anthropics / anthropics/claude-code
Intermittierender Auth-Fehler: CLI meldet “Not logged in” trotz validem, frisch geschriebenem OAuth-Token (v2.1.276)
- Dominant language
- Python
- Stars
- 145k
- Forks
- 23.1k
- PR merge metrics
- PR metrics pending
Description
### Preflight Checklist
- [x] I have searched [existing issues](https://github.com/anthropics/claude-code/issues?q=is%3Aissue%20state%3Aopen%20label%3Abug) 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
```shell
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
1. Alle laufenden claude -Prozesse beenden, sauberen Zustand herstellen.
2. Neues Terminal-Fenster öffnen, claude login ausführen, Browser-Autorisierung abschließen (“Login successful”).
3. In derselben oder einer neuen Session einen beliebigen Prompt senden.
4. Beobachtung: Antwort ist Not logged in · Please run /login .
5. /login erneut in der betroffenen Session ausführen → derselbe Fehler bleibt bestehen.
6. /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
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reproducing the failure with `claude login`, a new prompt, and `/status`, while comparing successful and failing startup logs. Inspect the startup authentication flow around `showSetupScreens()`, OAuth credential loading, and the macOS keychain warnings. Done means new and existing sessions reliably use the valid OAuth token, including when multiple sessions run in parallel.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- macos, python
- Domain
- authentication, cli, security
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100