This commit is contained in:
Frank
2026-06-30 03:23:47 -04:00
parent 6b074ed718
commit b19ae6547f

View File

@@ -587,7 +587,10 @@ export async function handler(
}))
}
if (retry.retryCount !== MAX_FAILOVER_RETRIES) {
// Use fallback provider if max retries reached
const fallbackProvider = allProviders.find((provider) => provider.id === modelInfo.fallbackProvider)
if (retry.retryCount === MAX_FAILOVER_RETRIES) return fallbackProvider
let topPriority = Infinity
const providers = allProviders
.filter((provider) => provider.weight !== 0)
@@ -625,7 +628,7 @@ export async function handler(
h = (h * 31 + stickyId.charCodeAt(i)) | 0 // 32-bit int
}
const index = (h >>> 0) % providers.length // make unsigned + range 0..length-1
const provider = providers[index || 0]
const provider = providers[index || 0] ?? fallbackProvider
// sticky provider does not exist => use selected provider
if (!stickyProviderId) return provider
@@ -647,10 +650,6 @@ export async function handler(
if (!preferBudgetProvider && !preferTpsProvider) return stickProvider
return provider
}
// fallback provider
return allProviders.find((provider) => provider.id === modelInfo.fallbackProvider)
})()
if (!modelProvider) throw new ModelError(t("zen.api.error.noProviderAvailable"))