@@ -483,27 +483,29 @@ export async function handler(
483483 modelTpsLimits : Record < string , boolean > | undefined ,
484484 ) {
485485 const modelProvider = ( ( ) => {
486+ const allProviders = modelInfo . providers . filter ( ( provider ) => ! provider . disabled )
487+
486488 // Byok is top priority b/c if user set their own API key, we should use it
487489 // instead of using the sticky provider for the same session
488490 if ( authInfo ?. provider ?. credentials ) {
489- return modelInfo . providers . find ( ( provider ) => provider . id === modelInfo . byokProvider )
491+ return allProviders . find ( ( provider ) => provider . id === modelInfo . byokProvider )
490492 }
491493
492494 // Always use the same provider for the same session
493495 if ( stickyProvider ) {
494- const provider = modelInfo . providers . find ( ( provider ) => provider . id === stickyProvider )
496+ const provider = allProviders . find ( ( provider ) => provider . id === stickyProvider )
495497 if ( provider ) return provider
496498 }
497499
498500 if ( trialProviders ) {
499501 const trialProvider = trialProviders [ Math . floor ( Math . random ( ) * trialProviders . length ) ]
500- const provider = modelInfo . providers . find ( ( provider ) => provider . id === trialProvider )
502+ const provider = allProviders . find ( ( provider ) => provider . id === trialProvider )
501503 if ( provider ) return provider
502504 }
503505
504506 if ( retry . retryCount !== MAX_FAILOVER_RETRIES ) {
505507 let topPriority = Infinity
506- const providers = modelInfo . providers
508+ const providers = allProviders
507509 . filter ( ( provider ) => ! provider . disabled )
508510 . filter ( ( provider ) => provider . weight !== 0 )
509511 . filter ( ( provider ) => ! retry . excludeProviders . includes ( provider . id ) )
@@ -536,7 +538,7 @@ export async function handler(
536538 }
537539
538540 // fallback provider
539- return modelInfo . providers . find ( ( provider ) => provider . id === modelInfo . fallbackProvider )
541+ return allProviders . find ( ( provider ) => provider . id === modelInfo . fallbackProvider )
540542 } ) ( )
541543
542544 if ( ! modelProvider ) throw new ModelError ( t ( "zen.api.error.noProviderAvailable" ) )
0 commit comments