[Bug] CLI shows "use credits" prompt on an org-managed Team seat that actually has subscription entitlement (`hasAvailableSubscription` cached as false)

Status Open
Reported on v2.1.216
Maintainer reply None cached
Activity 2 comments · opened Jul 21, 2026

Bug Description
On an org-managed Team seat, the CLI intermittently prompts to continue on credits / pay-as-you-go instead of using the included subscription usage. The subscription entitlement clearly exists (see proof below), so this looks like a client-side gating bug driven by a stale/misinterpreted hasAvailableSubscription: false value, not a real entitlement gap.

Environment Info

  • Account state in ~/.claude.json: subscriptionType: null, hasAvailableSubscription: false
  • Platform: darwin
  • Terminal: ghostty
  • Version: 2.1.216
  • Feedback ID: 3dcac900-992e-4eaf-9d41-7867d5c8a2e3

Actual behavior

  • With hasAvailableSubscription: false (the value the client keeps writing), the CLI shows a "use credits" prompt for model requests (observed most visibly when selecting Fable 5; default model at the time was claude-opus-4-8[1m]).
  • Setting the flag to true locally fixes it — until the next account-status sync (new session start / auth-token refresh / periodic refresh, and note the CLI, the background daemon, and the desktop app's embedded engine all share ~/.claude.json) overwrites it back to false, and the credit prompt returns.

Expected behavior

An org-managed Team seat that has working subscription entitlement should use included subscription usage in the CLI without a credit prompt — consistent with the desktop app on the same account. hasAvailableSubscription being false for an org-provided seat should not, on its own, force the credits path.

Steps to reproduce

  1. Sign in to the CLI with an org-managed Team seat (OAuth), org role user.
  2. Confirm jq '.hasAvailableSubscription' ~/.claude.json returns false while the same account uses models fine on the desktop app.
  3. Use a model in the CLI → observe the "use credits" prompt.
  4. Set hasAvailableSubscription: true in ~/.claude.json → CLI now uses the subscription with no prompt.
  5. Start a new session / wait for a refresh → the flag reverts to false and the prompt returns.

Hypothesis (unconfirmed)

hasAvailableSubscription may track personal available subscription and is legitimately false for an org-provided seat, while usage is granted via the org seat. If a code path uses this flag to decide whether to show the credits prompt, org-seat users get incorrectly gated. (Field semantics inferred, not confirmed from docs.)

Workaround

Manually setting hasAvailableSubscription: true in ~/.claude.json works but is not durable — it is overwritten on the next server sync.

Errors

[]

View original on GitHub ↗

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