anthropics / anthropics/claude-code

Intermittierender Auth-Fehler: CLI meldet “Not logged in” trotz validem, frisch geschriebenem OAuth-Token (v2.1.276)

Open
#95,335 0 comments 0 reactions 0 assignees View on GitHub
area:auth bug has repro platform:macos
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.