Skip to content

fix(claude): classify native subscription quota 429 - #8628

Merged
diegosouzapw merged 1 commit into
diegosouzapw:release/v3.8.49from
costaeder:fix/claude-native-quota-429
Jul 27, 2026
Merged

diegosouzapw merged 1 commit into
diegosouzapw:release/v3.8.49from
costaeder:fix/claude-native-quota-429

Conversation

@costaeder

Copy link
Copy Markdown
Contributor

Native Claude OAuth can return This request would exceed your account\047s rate limit when its subscription window is exhausted. The prior generic 429 path gave it a short retry cooldown and kept cycling the same unavailable account.\n\nThis classifies that exact wording as subscription quota only for the claude provider, preserves generic 429 handling for other providers, and marks the corresponding chat failure as quota exhausted.\n\nTests: targeted account-fallback suite (13 passing).

@costaeder
costaeder requested a review from diegosouzapw as a code owner July 26, 2026 02:32
@diegosouzapw
diegosouzapw changed the base branch from main to release/v3.8.49 July 26, 2026 21:34
@diegosouzapw

Copy link
Copy Markdown
Owner

Hi @costaeder — nice catch on the Claude native "exceed your account's rate limit" wording. Provider-scoped so other upstreams using the same phrase still go through the generic 429 retry path. Tests cover both branches.

Approved as merge-ready (★3). I retargeted the base from main to release/v3.8.49 so it lands in the active cycle. /merge-prs will pick it up.

Co-authored-by: diegosouzapw <diegosouzapw@users.noreply.github.com>
@diegosouzapw
diegosouzapw force-pushed the fix/claude-native-quota-429 branch from 98ce2b2 to 477ab94 Compare July 27, 2026 02:42
@diegosouzapw
diegosouzapw merged commit 9108955 into diegosouzapw:release/v3.8.49 Jul 27, 2026
15 checks passed
diegosouzapw added a commit that referenced this pull request Jul 27, 2026
…stryker drift

file-size: nine frozen entries could not absorb the combined result of the
31-PR train. Two distinct causes, kept apart in the baseline note on purpose:

  (1) GENUINE irreducible growth at existing chokepoints —
      providerLimits/auth (#8632), rateLimitManager (#8616),
      models-catalog-route.test (#8610).
  (2) COLLISION with #8585, which banked shrinks measured on the pre-train
      release tip while 30 sibling PRs in the SAME train grew those files
      again — chat/accountFallback (#8628), chatCore (#8613),
      videoGeneration (#8581), imageGeneration.

Ceilings re-pinned to the post-merge tip. #8612 (also in this train) automates
shrink-banking so this self-inflicted drift stops recurring.

stryker: three covering unit tests were missing from tap.testFiles —
isLocalStreamLifecycleError-abort-shape (circuitBreaker.ts, a shared base-red
that was reddening Fast Quality Gates on every open PR),
noauth-autocombo-lockout-7623 (accountFallback.ts) and
kimi-quota-reset-recovery (auth.ts), the latter two landed with this train.
@diegosouzapw diegosouzapw mentioned this pull request Jul 28, 2026
HouMinXi pushed a commit to HouMinXi/OmniRoute that referenced this pull request Aug 2, 2026
Co-authored-by: Escalada Online <aescaladaonline@gmail.com>
Co-authored-by: diegosouzapw <diegosouzapw@users.noreply.github.com>
HouMinXi pushed a commit to HouMinXi/OmniRoute that referenced this pull request Aug 2, 2026
…stryker drift

file-size: nine frozen entries could not absorb the combined result of the
31-PR train. Two distinct causes, kept apart in the baseline note on purpose:

  (1) GENUINE irreducible growth at existing chokepoints —
      providerLimits/auth (diegosouzapw#8632), rateLimitManager (diegosouzapw#8616),
      models-catalog-route.test (diegosouzapw#8610).
  (2) COLLISION with diegosouzapw#8585, which banked shrinks measured on the pre-train
      release tip while 30 sibling PRs in the SAME train grew those files
      again — chat/accountFallback (diegosouzapw#8628), chatCore (diegosouzapw#8613),
      videoGeneration (diegosouzapw#8581), imageGeneration.

Ceilings re-pinned to the post-merge tip. diegosouzapw#8612 (also in this train) automates
shrink-banking so this self-inflicted drift stops recurring.

stryker: three covering unit tests were missing from tap.testFiles —
isLocalStreamLifecycleError-abort-shape (circuitBreaker.ts, a shared base-red
that was reddening Fast Quality Gates on every open PR),
noauth-autocombo-lockout-7623 (accountFallback.ts) and
kimi-quota-reset-recovery (auth.ts), the latter two landed with this train.
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
Co-authored-by: Escalada Online <aescaladaonline@gmail.com>
Co-authored-by: diegosouzapw <diegosouzapw@users.noreply.github.com>
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
…stryker drift

file-size: nine frozen entries could not absorb the combined result of the
31-PR train. Two distinct causes, kept apart in the baseline note on purpose:

  (1) GENUINE irreducible growth at existing chokepoints —
      providerLimits/auth (diegosouzapw#8632), rateLimitManager (diegosouzapw#8616),
      models-catalog-route.test (diegosouzapw#8610).
  (2) COLLISION with diegosouzapw#8585, which banked shrinks measured on the pre-train
      release tip while 30 sibling PRs in the SAME train grew those files
      again — chat/accountFallback (diegosouzapw#8628), chatCore (diegosouzapw#8613),
      videoGeneration (diegosouzapw#8581), imageGeneration.

Ceilings re-pinned to the post-merge tip. diegosouzapw#8612 (also in this train) automates
shrink-banking so this self-inflicted drift stops recurring.

stryker: three covering unit tests were missing from tap.testFiles —
isLocalStreamLifecycleError-abort-shape (circuitBreaker.ts, a shared base-red
that was reddening Fast Quality Gates on every open PR),
noauth-autocombo-lockout-7623 (accountFallback.ts) and
kimi-quota-reset-recovery (auth.ts), the latter two landed with this train.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants