fix(agents): classify insufficient_quota 400s as billing (#36783)

This commit is contained in:
Altay
2026-03-06 01:17:48 +03:00
committed by GitHub
parent 0c08e3f55f
commit 49acb07f9f
5 changed files with 47 additions and 0 deletions

View File

@@ -283,6 +283,11 @@ export function classifyFailoverReasonFromHttpStatus(
return "rate_limit";
}
if (status === 400) {
// Some providers return quota/balance errors under HTTP 400, so do not
// let the generic format fallback mask an explicit billing signal.
if (message && isBillingErrorMessage(message)) {
return "billing";
}
return "format";
}
return null;

View File

@@ -44,6 +44,7 @@ const ERROR_PATTERNS = {
/["']?(?:status|code)["']?\s*[:=]\s*402\b|\bhttp\s*402\b|\berror(?:\s+code)?\s*[:=]?\s*402\b|\b(?:got|returned|received)\s+(?:a\s+)?402\b|^\s*402\s+payment/i,
"payment required",
"insufficient credits",
/insufficient[_ ]quota/i,
"credit balance",
"plans & billing",
"insufficient balance",