diff --git a/packages/ai/CHANGELOG.md b/packages/ai/CHANGELOG.md index 810d63908..f4aa81b4a 100644 --- a/packages/ai/CHANGELOG.md +++ b/packages/ai/CHANGELOG.md @@ -5,6 +5,7 @@ ### Fixed - Automatically invalidate and rotate OAuth credentials when an "invalidated oauth token" error occurs +- Classified HTTP 402 and `balance exhausted` quota responses as persistent usage limits, rotating multi-account requests to a sibling credential. ## [17.0.1] - 2026-07-16 diff --git a/packages/ai/test/rate-limit-utils.test.ts b/packages/ai/test/rate-limit-utils.test.ts index 85fa7a97c..51aad5121 100644 --- a/packages/ai/test/rate-limit-utils.test.ts +++ b/packages/ai/test/rate-limit-utils.test.ts @@ -246,6 +246,7 @@ describe("isUsageLimitOutcome", () => { expect(isUsageLimitOutcome(402, undefined)).toBe(true); expect(isUsageLimitOutcome(402, "HTTP 402")).toBe(true); expect(isUsageLimitOutcome(402, "A subscription is required for this endpoint")).toBe(false); + expect(isUsageLimit(new ProviderHttpError("HTTP 402", 402))).toBe(true); }); it("does not rotate on auth/invalid-request statuses with unrelated bodies", () => {