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

Co-authored-by: Escalada Online <aescaladaonline@gmail.com>
Co-authored-by: diegosouzapw <diegosouzapw@users.noreply.github.com>
This commit is contained in:
Éder Costa
2026-07-27 19:08:05 -03:00
committed by GitHub
parent dd22d9c017
commit 9108955323
4 changed files with 36 additions and 6 deletions

View File

@@ -95,6 +95,7 @@ import { getComboFailureLogError } from "./comboFailureLogging";
// Pipeline integration — wired modules
import { classify429FromError, type FailureKind } from "@/shared/utils/classify429";
import { isSubscriptionQuotaText } from "@omniroute/open-sse/services/quotaTextCooldowns.ts";
import { resolveUseUpstream429BreakerHints } from "@/shared/utils/providerHints";
import { getCircuitBreaker, isLocalStreamLifecycleError } from "../../shared/utils/circuitBreaker";
import { markAccountExhaustedFrom429 } from "../../domain/quotaCache";
@@ -1725,7 +1726,9 @@ async function handleSingleModelChat(
const errorStr = String(result.rawMessage ?? result.error ?? "");
const failureKind =
result.status === 429
? classify429FromError({ status: result.status, message: errorStr })
? isSubscriptionQuotaText(errorStr.toLowerCase(), provider)
? "quota_exhausted"
: classify429FromError({ status: result.status, message: errorStr })
: undefined;
if (result.status === 429 && isDailyQuotaExhausted(errorStr)) {
// Parse which model is quota-limited