Skip to content

[Bug]: Inactive Claude account reports expired sign-in until selected, despite working in built-in tab #30289

Open

Description

@rezmeplxrf

Summary

An inactive saved Claude account can show “Sign-in expired” or “Sign in to see usage” in Orca’s account switcher even though the same account works when selected and launched through Orca’s built-in Claude tab.

Environment

  • macOS
  • Orca 1.4.229
  • Claude Code 2.1.302

Steps to reproduce

  1. Save multiple Claude accounts in Orca. One account is also available through a working Claude Code System Default login.
  2. Keep another Claude account selected in Orca.
  3. Open Usage → Switch to and refresh the inactive account’s usage. The inactive account may be marked as having an expired sign-in.
  4. Select that account in Orca and open a built-in Claude tab. Claude launches and works.
  5. Reopen the account switcher. Usage for that account can now appear normally.

Before the switch, orca account list --json reported an error with failureKind: stale-token for the inactive account. After the switch and successful built-in tab launch, it reported status: ok and a valid usage figure. All account identifiers and usage values are omitted here.

Expected behavior

If the account can be used through its matching System Default login, inactive usage refresh should not say its sign-in has expired. If usage cannot be checked at that moment, the switcher should describe the usage as temporarily unavailable without implying that the account cannot sign in.

Related reports

This report is about the false expired sign-in state that clears after selecting the account and launching a built-in tab. I have not isolated whether the cause is credential routing, usage refresh timing, or cached error state.

Activity

  1. AmethystLiang commented on Oct 18, 2026

    @AmethystLiang
    Contributor

    looking into it

  2. luijoc commented on Oct 20, 2026

    @luijoc

    I hit this every morning on 1.4.230 (macOS, five saved Claude accounts) and traced it. The account is not signed out — only its usage check is failing, and the switcher words that failure as a sign-out.

    What happens

    1. Orca deliberately never refreshes a Claude login (Re-land Claude per-account folders (#24434, #26405) with the upgrade and proxy fixes #26801, claude-active-usage-fetch.ts); only a Claude process running in that account does. An account nobody runs keeps its ~8-hour access token past expiry, so the usage request returns 401 and is classified stale-token. The refresh token is still valid: running claude once in that account's folder refreshed it with no /login. That's why selecting the account and opening a tab "fixes" it.
    2. applyStalePolicy keeps the last usage snapshot for only 30 minutes after a stale-token error (24 hours after a 429), so by the next morning there are no bars left to show.
    3. InlineUsageBars then shows "Sign in to see usage" for any error without bars, ignoring failureKind, and the tooltip/roster label a saved account's stale-token as "Sign-in expired". The WSL System Default provenance (wsl:<distro>:system) also misses the existing System Default check.

    Fix: #31105 (keeps the no-refresh policy)

    • Claude stale-token reads "Updates when Claude runs" on every surface; "Sign in to see usage" is kept for confirmed sign-outs only.
    • The last Claude usage snapshot is kept for 24 hours on stale-token, as it already is on 429, minus any window whose reset time has passed (no guessed 0%).
  3. added a commit that references this issue on Oct 20, 2026
    bf5504a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions