fix(agents): classify Anthropic extra-usage billing (#61608) (thanks @neeravmakwana)

This commit is contained in:
Neerav Makwana
2026-04-06 08:21:53 -04:00
committed by GitHub
parent 7df5f70242
commit ad2df63547
3 changed files with 19 additions and 0 deletions

View File

@@ -127,6 +127,8 @@ describe("isBillingErrorMessage", () => {
"Insufficient USD or Diem balance to complete request. Visit https://venice.ai/settings/api to add credits.",
"This model requires more credits to use",
"This endpoint require more credits",
"You're out of extra usage. Add more at claude.ai/settings/usage and keep going.",
"Extra usage is required for long context requests.",
],
expected: true,
},
@@ -215,6 +217,20 @@ describe("isBillingErrorMessage", () => {
expect(isBillingErrorMessage(sample)).toBe(true);
expect(classifyFailoverReason(sample)).toBe("billing");
});
it("classifies Anthropic extra-usage exhaustion variants as billing", () => {
const samples = [
"You're out of extra usage. Add more at claude.ai/settings/usage and keep going.",
"Extra usage is required for long context requests.",
'{"type":"error","error":{"type":"invalid_request_error","message":"You\'re out of extra usage. Add more at claude.ai/settings/usage and keep going."}}',
'{"type":"error","error":{"type":"invalid_request_error","message":"Extra usage is required for long context requests."}}',
];
for (const sample of samples) {
expect(isBillingErrorMessage(sample)).toBe(true);
expect(classifyFailoverReason(sample, { provider: "anthropic" })).toBe("billing");
}
});
});
describe("isCloudCodeAssistFormatError", () => {

View File

@@ -120,6 +120,8 @@ const ERROR_PATTERNS = {
"insufficient balance",
"insufficient usd or diem balance",
/requires?\s+more\s+credits/i,
/out of extra usage/i,
/extra usage is required(?: for long context requests)?/i,
],
authPermanent: HIGH_CONFIDENCE_AUTH_PERMANENT_PATTERNS,
auth: [...AMBIGUOUS_AUTH_ERROR_PATTERNS, ...COMMON_AUTH_ERROR_PATTERNS],