Max subscription: queue Telegram messages instead of rejecting with rate limit
Resolved 💬 3 comments Opened Apr 7, 2026 by dyjhhh Closed Apr 11, 2026
Problem
When using Claude Code with Max subscription + Telegram channel plugin, incoming Telegram messages are rejected with "You're out of extra usage" if the LLM is already processing another request in the same session.
This creates a bad UX:
- User sends a message while Claude is mid-processing (tool calls, analysis, etc.)
- Instead of queuing the message, it's rejected with a rate limit error
- The error message ("Add more at claude.ai/settings/usage") is misleading — the Max subscription isn't actually exhausted, it's just a concurrent request limit
- User doesn't know if their message was received or lost
- Causes anxiety and repeated message sending
Expected behavior
Messages arriving while the LLM is busy should be queued and processed after the current turn completes — not rejected. At minimum:
- Show the user that their message was received and queued (not bounced)
- Process queued messages in order once the current LLM request finishes
- Don't show "extra usage" error for what is actually a concurrency limit on Max subscription
Environment
- Claude Code 2.1.92
- Max subscription (subscriptionType: max, rateLimitTier: default_claude_max_20x)
- Telegram channel plugin (plugin:telegram:telegram)
- macOS, running background
claude -pjobs via launchd alongside interactive sessions
Workaround
Currently using a claude-guard.sh script that prevents background claude -p jobs from running when an interactive session is active. But within-session message queuing still fails.
---
🤖 Generated with Claude Code
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗