diff --git a/src/cloudcode/message-handler.js b/src/cloudcode/message-handler.js index fb1ed86..596229d 100644 --- a/src/cloudcode/message-handler.js +++ b/src/cloudcode/message-handler.js @@ -218,5 +218,15 @@ export async function sendMessage(anthropicRequest, accountManager, fallbackEnab } } + // All retries exhausted - try fallback model if enabled + if (fallbackEnabled) { + const fallbackModel = getFallbackModel(model); + if (fallbackModel) { + logger.warn(`[CloudCode] All retries exhausted for ${model}. Attempting fallback to ${fallbackModel}`); + const fallbackRequest = { ...anthropicRequest, model: fallbackModel }; + return await sendMessage(fallbackRequest, accountManager, false); // Disable fallback for recursive call + } + } + throw new Error('Max retries exceeded'); } diff --git a/src/cloudcode/streaming-handler.js b/src/cloudcode/streaming-handler.js index d1d054f..3f0dc55 100644 --- a/src/cloudcode/streaming-handler.js +++ b/src/cloudcode/streaming-handler.js @@ -285,6 +285,17 @@ export async function* sendMessageStream(anthropicRequest, accountManager, fallb } } + // All retries exhausted - try fallback model if enabled + if (fallbackEnabled) { + const fallbackModel = getFallbackModel(model); + if (fallbackModel) { + logger.warn(`[CloudCode] All retries exhausted for ${model}. Attempting fallback to ${fallbackModel} (streaming)`); + const fallbackRequest = { ...anthropicRequest, model: fallbackModel }; + yield* sendMessageStream(fallbackRequest, accountManager, false); // Disable fallback for recursive call + return; + } + } + throw new Error('Max retries exceeded'); }