OAuth token expires frequently despite refresh_token present

Resolved 💬 3 comments Opened Apr 14, 2026 by mrachenko Closed Apr 14, 2026

Description

Authentication drops multiple times per day. ~/.claude/.credentials.json contains a refreshToken but it doesn't auto-refresh. Requires manual /login each time.

Started happening recently. Running /login in one session fixes all sessions (they share the same credentials file).

Environment

  • Claude Code version: 2.1.92 (native installer)
  • OS: Ubuntu Linux (VPS)
  • Auth method: OAuth (Max $200 plan)
  • Setup: Multiple tmux sessions with Claude Code running, sharing the same credentials file

Steps to reproduce

  1. /login in one session
  2. Run Claude Code in multiple tmux sessions
  3. After some hours all sessions lose auth simultaneously

What Should Happen?

Token should auto-refresh using the stored refreshToken without requiring manual /login. Sessions should stay authenticated indefinitely.

What Actually Happens?

Token expires silently, all sessions stop working until manual /login.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗