From 059853554dd8da07c58766b2bcdb21c6209332eb Mon Sep 17 00:00:00 2001 From: MoerAI Date: Tue, 10 Mar 2026 17:04:17 +0900 Subject: [PATCH] fix(model-fallback): enable by default and add missing error patterns for usage limits (#2393) --- src/plugin/hooks/create-session-hooks.ts | 2 +- src/shared/model-error-classifier.ts | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/plugin/hooks/create-session-hooks.ts b/src/plugin/hooks/create-session-hooks.ts index daa5e4ff54..42f62bf9ed 100644 --- a/src/plugin/hooks/create-session-hooks.ts +++ b/src/plugin/hooks/create-session-hooks.ts @@ -153,7 +153,7 @@ export function createSessionHooks(args: { // Model fallback hook (configurable via model_fallback config + disabled_hooks) // This handles automatic model switching when model errors occur - const isModelFallbackConfigEnabled = pluginConfig.model_fallback ?? false + const isModelFallbackConfigEnabled = pluginConfig.model_fallback ?? true const modelFallback = isModelFallbackConfigEnabled && isHookEnabled("model-fallback") ? safeHook("model-fallback", () => createModelFallbackHook({ diff --git a/src/shared/model-error-classifier.ts b/src/shared/model-error-classifier.ts index 22d5606c75..2bb7ef1767 100644 --- a/src/shared/model-error-classifier.ts +++ b/src/shared/model-error-classifier.ts @@ -55,9 +55,17 @@ const RETRYABLE_MESSAGE_PATTERNS = [ "timeout", "service unavailable", "internal_server_error", + "free usage", + "usage exceeded", + "credit", + "balance", + "temporarily unavailable", + "try again", "503", "502", "504", + "429", + "529", ] const AUTO_RETRY_GATE_PATTERNS = [