Repository navigation
fix(combo): lock the exact model on a 403 without quota proof - #18652
Conversation
8d90498 to
bc85d31
Compare
|
One edge worth pinning: In that case a quota phrase past the 500-char boundary is invisible to Would you add a test with a non-JSON body whose quota signal sits beyond the truncation boundary, so the fallback path is pinned alongside the parsed-JSON cases? |
df4dc5e to
fc96f2c
Compare
|
Good catch — that fallback only bites when the body does not parse as JSON (an HTML error page in front of the API, or JSON broken by padding), so a quota phrase past the 500-char boundary stays invisible to the classifier: the 403 lands as an Yes — we are adding a test that pins that fallback path: a non-JSON body with the quota signal placed beyond the truncation boundary, asserting the Thanks for pointing it out. |
A 403 without a quota signal now locks the exact provider/connection/model tuple instead of the quota family, so sibling models of the same connection keep routing.
fc96f2c to
a7c153d
Compare
|
No actionable comments were generated in the recent review. Summary
Merge Risk:
|
c3b1316
into
cheaper-inference:release/v3.8.53
Summary
A 403 without a quota signal in its body now locks the exact provider/connection/model tuple with the lockout reason
auth_error, while a 403 that proves quota exhaustion still locks the connection's quota family with the reasonquota_exhausted. Every 403 — a restricted key, a forbidden route, or an unauthorized model — reads asquota_exhaustedon the release base and locks the connection's quota family, so a refused model parks every sibling model of the connection for the model-lockout cooldown. The reason and the scope now both read the same quota-proof signal from the error body, which is already available at the two combo lockout sites.Related Issues
Target Branch
release/v3.8.xbranch (the highest openrelease/v*), notmainv4-featurelabel for the v4 channelValidation
npm run lintTests Added Or Updated
Coverage Notes
The changed production code lives in open-sse/services/accountFallback.ts and open-sse/services/combo/executeTargetAttempt.ts, and both the new reason split and the new scope override are exercised by the two test files above.
Reviewer Notes