Fix rotation failover: advance past unavailable providers instead of retrying one (v0.99.99)
The dispatch loop skipped a provider via is_rate_limited() (which includes the
manual dashboard flag) but did NOT add it to tried_models, so the next retry
re-selected the SAME highest-weight provider every time. A manually-flagged /
rate-limited top-weight member (e.g. claude_think in rotation lisa) thus consumed
all max_retries and returned 429, never failing over to a working member
(kilo-stefy).
- Use _provider_in_availability_cooldown() instead of is_rate_limited() so the
manual flag (rotation-membership only) does not block dispatch, consistent with
the scan.
- Mark the skipped model as tried so failover actually advances to the next
provider.
- Guard the dispatch handler build in try/except too (same bad-cred 500 class).
rotation/lisa now returns 200 via kilo-stefy instead of 429/500.
Co-Authored-By:
Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Showing
Please
register
or
sign in
to comment