diff --git a/src/hooks/runtime-fallback/error-classifier.ts b/src/hooks/runtime-fallback/error-classifier.ts index 962e831b1..7ba5aa491 100644 --- a/src/hooks/runtime-fallback/error-classifier.ts +++ b/src/hooks/runtime-fallback/error-classifier.ts @@ -131,7 +131,8 @@ export function classifyErrorType(error: unknown): string | undefined { /billing.?(?:hard.?)?limit/i.test(message) || /exhausted\s+your\s+capacity/i.test(message) || /out\s+of\s+credits?/i.test(message) || - /payment.?required/i.test(message) + /payment.?required/i.test(message) || + /usage\s+limit/i.test(message) ) { return "quota_exceeded" } diff --git a/src/hooks/runtime-fallback/index.test.ts b/src/hooks/runtime-fallback/index.test.ts index f055cde3d..df4f7cd3c 100644 --- a/src/hooks/runtime-fallback/index.test.ts +++ b/src/hooks/runtime-fallback/index.test.ts @@ -518,7 +518,7 @@ describe("runtime-fallback", () => { test("should trigger fallback on OpenAI auto-retry signal in message.updated", async () => { const hook = createRuntimeFallbackHook(createMockPluginInput(), { - config: createMockConfig({ notify_on_fallback: false }), + config: createMockConfig({ notify_on_fallback: false, timeout_seconds: 30 }), pluginConfig: createMockPluginConfigWithCategoryFallback(["anthropic/claude-opus-4-6"]), })