[FEATURE] Model-Specific Rate Limits Should Trigger Automatic Failover, Not Complete Lockout

Resolved 💬 3 comments Opened Oct 22, 2025 by Akisin Closed Jan 11, 2026

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

When Claude Max users hit usage limits, the error message states "opus 4.1 has reached its limit" - indicating limits are model-specific, not account-wide. Currently, hitting this limit completely locks users out of Claude Code for hours or weeks, even though other models might still be available. The current behavior creates an unnecessary service interruption. If Opus 4.1 is rate-limited but Sonnet or Haiku still have capacity, users should either automatically failover to an available model or at least get a prompt asking if they want to switch. Instead, Claude Code becomes completely unusable despite potentially having other models available.

Proposed Solution

A simple fix would be implementing automatic model failover. When Opus 4.1 hits its limit, Claude Code could seamlessly switch to Sonnet 4,5 or another available model. Users could continue working, possibly with a notification like "Switched to Sonnet 4.5 due to Opus 4.1 rate limits - switch back in X hours." At minimum, the error message should be actionable. Instead of just stating the limit is reached, it should indicate: which models are still available, how to manually switch models, and when the limited model will reset. Currently, users get no options and no information. This would transform a hard failure into a graceful degradation. Users maintain productivity with a slightly different model rather than losing all access. Since Claude Max subscribers are already paying for multi-model access, this seems like the intended behavior that's just not implemented yet.

Alternative Solutions

_No response_

Priority

Critical - Blocking my work

Feature Category

Configuration and settings

Use Case Example

_No response_

Additional Context

_No response_

View original on GitHub ↗

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