diff --git a/src/sse/handlers/chat.ts b/src/sse/handlers/chat.ts index eec303ffa5..0fbf689550 100644 --- a/src/sse/handlers/chat.ts +++ b/src/sse/handlers/chat.ts @@ -504,7 +504,7 @@ async function handleSingleModelChat( `${currentModelStr} -> ${fallbackModelStr} | reason=${fallbackDecision.reason}` ); - return handleSingleModelChat( + const fallbackResponse = await handleSingleModelChat( fallbackBody, fallbackModelStr, clientRawRequest, @@ -514,6 +514,15 @@ async function handleSingleModelChat( telemetry, { ...runtimeOptions, emergencyFallbackTried: true } ); + + if (fallbackResponse.ok) { + return fallbackResponse; + } + + log.warn( + "EMERGENCY_FALLBACK", + `Emergency fallback to ${fallbackModelStr} failed with status ${fallbackResponse.status}. Resuming original provider account fallback.` + ); } } }