@@ -430,49 +430,45 @@ export class ProviderService implements OnModuleInit {
430430 const userPreferences = await this . getUserPreferences ( user . uid ) ;
431431 const userDefaultModel = userPreferences ?. defaultModel ;
432432
433- if ( ! userDefaultModel ) {
434- this . logger . log (
435- `No default model configuration found for user ${ user . uid } for ${ mediaType } ` ,
436- ) ;
437- return null ;
438- }
439-
440433 // Get the specific media model configuration based on mediaType
441- const mediaModelConfig = userDefaultModel [ mediaType ] ;
442-
443- if ( ! mediaModelConfig ?. itemId ) {
444- this . logger . log ( `No ${ mediaType } model configured for user ${ user . uid } ` ) ;
445- return null ;
446- }
434+ const mediaModelConfig = userDefaultModel ?. [ mediaType ] ;
447435
448436 // Find the provider item for this configured model
449437 const providerItems = await this . listProviderItems ( user , {
450438 category : 'mediaGeneration' ,
451439 enabled : true ,
452440 } ) ;
453441
454- const configuredProviderItem = providerItems . find (
455- ( item ) => item . itemId === mediaModelConfig . itemId ,
442+ let configuredProviderItem = providerItems . find (
443+ ( item ) => item . itemId === mediaModelConfig ? .itemId ,
456444 ) ;
457445
458446 if ( ! configuredProviderItem ) {
459- this . logger . warn (
460- `Configured ${ mediaType } model ${ mediaModelConfig . itemId } not found in user's provider items` ,
461- ) ;
462- return null ;
447+ // Fallback: find an enabled model that supports the requested mediaType
448+ const fallbackProviderItem = providerItems . find ( ( item ) => {
449+ try {
450+ const config : MediaGenerationModelConfig = JSON . parse ( item . config || '{}' ) ;
451+
452+ return config . capabilities ?. [ mediaType ] ;
453+ } catch ( error ) {
454+ this . logger . warn (
455+ `Failed to parse config for provider item ${ item . itemId } : ${ error ?. message } ` ,
456+ ) ;
457+ return false ;
458+ }
459+ } ) ;
460+
461+ if ( ! fallbackProviderItem ) {
462+ this . logger . warn ( `No enabled ${ mediaType } model found in user's provider items` ) ;
463+ return null ;
464+ }
465+
466+ configuredProviderItem = fallbackProviderItem ;
463467 }
464468
465469 // Parse the model configuration
466470 const config : MediaGenerationModelConfig = JSON . parse ( configuredProviderItem . config || '{}' ) ;
467471
468- // Verify that this model actually supports the requested media type
469- if ( ! config . capabilities ?. [ mediaType ] ) {
470- this . logger . warn (
471- `Configured ${ mediaType } model ${ config . modelId } does not support ${ mediaType } generation` ,
472- ) ;
473- return null ;
474- }
475-
476472 this . logger . log (
477473 `Using user configured ${ mediaType } model: ${ config . modelId } from provider: ${ configuredProviderItem . provider ?. providerKey } ` ,
478474 ) ;
0 commit comments