[BUG] Contradictory rate-limit messages shown together: server rate-limit error vs usage-limit banner

Resolved 💬 1 comment Opened May 22, 2026 by ojhurst Closed Jun 21, 2026
  • [x] I searched existing issues and didn't find a duplicate
  • [x] This is a single bug report (not multiple issues combined)
  • [x] I'm using the latest version of Claude Code

What's Wrong?

Claude Code shows two rate-limit messages at the same time that directly contradict each other.

An inline error in the conversation reads:

API Error: Server is temporarily limiting requests (not your usage limit) · Rate limited

At the same moment, a banner above the input box reads:

You've hit your usage limit · View usage

One message explicitly says the throttle is not a usage-limit problem. The other explicitly says it is. Both are on screen simultaneously, so there is no way to tell which is actually true — a transient server-side rate limit, or the account's plan usage cap actually being reached.

What Should Happen?

Claude Code should show one consistent message:

  • If the throttle is a transient server-side rate limit, show only the "Server is temporarily limiting requests (not your usage limit)" error — and no usage-limit banner.
  • If the account has actually reached its plan usage cap, show only the "You've hit your usage limit" banner.

The two states are mutually exclusive and should never be displayed together.

Error Messages/Logs

Inline error in the conversation:

API Error: Server is temporarily limiting requests (not your usage limit) · Rate limited

Banner above the input box, shown at the same time:

You've hit your usage limit · View usage

Steps to Reproduce

The contradiction surfaces under sustained back-to-back usage. A deterministic trigger was not isolated, but:

  1. Use Claude Code actively in the VS Code extension over an extended session.
  2. When the server begins throttling, watch both the conversation area and the banner above the input box.
  3. The inline error states the throttle is "not your usage limit"; the banner above the input states "You've hit your usage limit." Both are visible at once.

Filing because the contradiction is a clear UI-state bug regardless of the exact trigger — the two messages cannot both be correct.

Claude Model

Opus

Is this a regression?

Don't know

Environment

- Claude Code Version: 2.1.148
- Platform: Claude Max subscription
- Operating System: macOS 26.5 (build 25F71)
- VS Code extension: anthropic.claude-code 2.1.148
- Terminal/Shell: VS Code extension (native), zsh

Additional Information

Screenshot — both messages on screen at the same time:

<img width="480" alt="Claude Code shows 'API Error: Server is temporarily limiting requests (not your usage limit) - Rate limited' in the conversation while a 'You've hit your usage limit - View usage' banner appears above the input box simultaneously" src="https://assets.themarketingshow.com/bugs/anthropics-claude-code/usage-limit-rate-limited-contradiction-2026-05-22.png">

"(not your usage limit)" and "You've hit your usage limit" are mutually exclusive by definition. Whichever code path renders the input-box banner and whichever renders the inline conversation error are not agreeing on a single throttle classification.

Related but distinct: #60563 ("Misleading error message for personal usage limits") is about a single message mis-attributing the limit source (org-monthly vs the 5-hour limit). This issue is specifically about two messages contradicting each other on screen at the same time.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗