@@ -350,7 +350,10 @@ func EnsureProvider(search ProviderLookup, autoUpdate bool, existing Providers)
350350 if provider != nil {
351351 // For already installed providers, ensure all dependencies are installed
352352 if autoUpdate {
353- installDependencies (provider , existing )
353+ err := installDependencies (provider , existing )
354+ if err != nil {
355+ return nil , err
356+ }
354357 }
355358 return provider , nil
356359 }
@@ -385,7 +388,10 @@ func EnsureProvider(search ProviderLookup, autoUpdate bool, existing Providers)
385388 PrintInstallResults ([]* Provider {nu })
386389
387390 // Check for and install any dependencies this provider requires
388- installDependencies (nu , existing )
391+ err = installDependencies (nu , existing )
392+ if err != nil {
393+ return nil , err
394+ }
389395
390396 return nu , nil
391397}
@@ -471,7 +477,7 @@ func installVersion(name string, version string) (*Provider, error) {
471477}
472478
473479// installDependencies ensures all dependencies of a provider are installed
474- func installDependencies (provider * Provider , existing Providers ) {
480+ func installDependencies (provider * Provider , existing Providers ) error {
475481 for _ , depName := range provider .Dependencies {
476482 // Check if dependency is already installed
477483 depProvider := existing .Lookup (ProviderLookup {ProviderName : depName })
@@ -480,17 +486,15 @@ func installDependencies(provider *Provider, existing Providers) {
480486 if upstreamDep != nil {
481487 depProvider , err := Install (upstreamDep .Name , "" )
482488 if err != nil {
483- log .Warn ().Err (err ).
484- Str ("provider" , provider .Name ).
485- Str ("dependency" , depName ).
486- Msg ("failed to install provider dependency" )
489+ return err
487490 } else {
488491 existing .Add (depProvider )
489492 PrintInstallResults ([]* Provider {depProvider })
490493 }
491494 }
492495 }
493496 }
497+ return nil
494498}
495499
496500func LatestVersion (name string ) (string , error ) {
@@ -888,7 +892,10 @@ func TryProviderUpdate(provider *Provider, update UpdateProvidersConfig) (*Provi
888892 if diff >= 0 {
889893 // Even if the provider doesn't need updating, we should check for any missing dependencies
890894 if providers , err := ListActive (); err == nil {
891- installDependencies (provider , providers )
895+ err := installDependencies (provider , providers )
896+ if err != nil {
897+ return nil , err
898+ }
892899 }
893900 return provider , nil
894901 }
@@ -911,7 +918,10 @@ func TryProviderUpdate(provider *Provider, update UpdateProvidersConfig) (*Provi
911918
912919 // After updating the provider, also install any dependencies it requires
913920 if providers , err := ListActive (); err == nil {
914- installDependencies (provider , providers )
921+ err := installDependencies (provider , providers )
922+ if err != nil {
923+ return nil , err
924+ }
915925 }
916926
917927 return provider , nil
0 commit comments