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 = [