[BUG] Rate Limit Message Infinite Loop

Resolved 💬 5 comments Opened Jan 15, 2026 by EmminiX Closed May 18, 2026

Preflight Checklist

  • [x] I have searched existing issues 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?

Rate limit warning messages appear in an infinite loop that cannot be stopped, even after purchasing extra usage credits. The /rate-limit-options command repeats uncontrollably, filling the terminal and making Claude Code completely unusable. Keyboard interrupts (Ctrl+C) sometimes fail to stop the loop.

What Should Happen?

Rate limit message should display once when limit is reached
After purchasing extra usage credits, Claude Code should recognize the updated quota and allow continued usage
/rate-limit-options command should execute once when typed
Ctrl+C should always stop any running command or output loop
Terminal should remain responsive and controllable

Error Messages/Logs

⎿  You're out of extra usage · resets 3pm (Europe/Dublin)
❯ /rate-limit-options
  /rate-limit-options
  ⎿  You're out of extra usage · resets 3pm (Europe/Dublin)
❯ /rate-limit-options
  /rate-limit-options
  /rate-limit-options
  /rate-limit-options
  /rate-limit-options
  ⎿  You're out of extra usage · resets 3pm (Europe/Dublin)
❯ /rate-limit-options
  /rate-limit-options
  /rate-limit-options
  /rate-limit-options
  /rate-limit-options
  /rate-limit-options
  /rate-limit-options
  /rate-limit-options
  ⎿  You're out of extra usage · resets 3pm (Europe/Dublin)

Steps to Reproduce

Use Claude Code in a long session (10+ hours) with many tool calls (SSH, file operations, cryptography tasks)
Continue using until hitting the base rate limit
Purchase extra usage credits through Anthropic console
Return to Claude Code terminal
Try to continue working or run /rate-limit-options command
Observe the infinite loop of rate limit messages
Try to interrupt with cmd+C (sometimes fails)
Force kill the process to regain terminal control
Note: The bug occurs specifically after purchasing extra credits - the purchased quota is not recognized and the rate limit message loops infinitely instead.

Claude Model

None

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.7 (Claude Code)

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Warp

Additional Information

Context
This occurred during an intensive 10-hour CTF cryptography challenge session
Multiple tool calls were made: SSH connections, file operations, Python script execution
Extra usage credits were purchased specifically to continue the session
The purchased credits were not recognized by Claude Code
Session had to be forcefully terminated, losing all context and work in progress

Impact
Severity: High
Completely blocks all work - cannot interact with Claude Code
Purchased extra credits are unusable
Cannot interrupt or regain terminal control
Requires force-killing the process (kill -9)
Loses all session context and work in progress

Potential Root Causes
Rate limit checking code may be calling itself recursively
Account quota cache not refreshing after credit purchase
Event loop issue causing rate limit handler to trigger repeatedly
/rate-limit-options command echoing itself in a feedback loop
Missing debouncing/throttling on rate limit checks

Workaround
Currently, the only solution is:
Force kill Claude Code process (kill -9 or Activity Monitor)
Wait for rate limit reset time
Restart Claude Code
System Info
macOS Darwin 25.2.0
Session timezone: Europe/Dublin (UTC+0)
Occurred: 2026-01-15 around 8:00-10:00 AM
Session type: Long-running (10+ hours active before issue)

<img width="741" height="855" alt="Image" src="https://github.com/user-attachments/assets/86544242-978d-4a44-8268-33a7c909db8c" />

<img width="708" height="990" alt="Image" src="https://github.com/user-attachments/assets/0192e25c-07c5-47ee-aeb7-b93d130df25c" />

View original on GitHub ↗

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