diff --git a/core/installer/bootstrapper.go b/core/installer/bootstrapper.go
index e8b77ec..c581f42 100644
--- a/core/installer/bootstrapper.go
+++ b/core/installer/bootstrapper.go
@@ -418,7 +418,8 @@
 		}
 		namespace := fmt.Sprintf("%s-%s", env.InfraName, app.Namespace())
 		appDir := filepath.Join("/infrastructure", app.Slug())
-		return mgr.Install(app, appDir, namespace, map[string]any{})
+		_, err = mgr.Install(app, appDir, namespace, map[string]any{})
+		return err
 	}
 	appsToInstall := []string{
 		"resource-renderer-controller",
@@ -512,12 +513,13 @@
 	}
 	namespace := fmt.Sprintf("%s-%s", env.InfraName, app.Namespace())
 	appDir := filepath.Join("/infrastructure", app.Slug())
-	return mgr.Install(app, appDir, namespace, map[string]any{
+	_, err = mgr.Install(app, appDir, namespace, map[string]any{
 		"repoIP":        env.ServiceIPs.ConfigRepo,
 		"repoPort":      22,
 		"repoName":      "config",
 		"sshPrivateKey": string(keys.RawPrivateKey()),
 	})
+	return err
 }
 
 func (b Bootstrapper) installIngressPublic(mgr *InfraAppManager, ss soft.Client, env BootstrapConfig) error {
@@ -538,9 +540,10 @@
 	}
 	namespace := fmt.Sprintf("%s-%s", env.InfraName, app.Namespace())
 	appDir := filepath.Join("/infrastructure", app.Slug())
-	return mgr.Install(app, appDir, namespace, map[string]any{
+	_, err = mgr.Install(app, appDir, namespace, map[string]any{
 		"sshPrivateKey": string(keys.RawPrivateKey()),
 	})
+	return err
 }
 
 func (b Bootstrapper) installOryHydraMaester(mgr *InfraAppManager, env BootstrapConfig) error {
@@ -550,7 +553,8 @@
 	}
 	namespace := fmt.Sprintf("%s-%s", env.InfraName, app.Namespace())
 	appDir := filepath.Join("/infrastructure", app.Slug())
-	return mgr.Install(app, appDir, namespace, map[string]any{})
+	_, err = mgr.Install(app, appDir, namespace, map[string]any{})
+	return err
 }
 
 func (b Bootstrapper) installDNSZoneManager(mgr *InfraAppManager, env BootstrapConfig) error {
@@ -560,9 +564,10 @@
 	}
 	namespace := fmt.Sprintf("%s-%s", env.InfraName, app.Namespace())
 	appDir := filepath.Join("/infrastructure", app.Slug())
-	return mgr.Install(app, appDir, namespace, map[string]any{
+	_, err = mgr.Install(app, appDir, namespace, map[string]any{
 		"servers": []EnvDNS{},
 	})
+	return err
 }
 
 func (b Bootstrapper) installFluxcdReconciler(mgr *InfraAppManager, ss soft.Client, env BootstrapConfig) error {
@@ -572,7 +577,8 @@
 	}
 	namespace := fmt.Sprintf("%s-%s", env.InfraName, app.Namespace())
 	appDir := filepath.Join("/infrastructure", app.Slug())
-	return mgr.Install(app, appDir, namespace, map[string]any{})
+	_, err = mgr.Install(app, appDir, namespace, map[string]any{})
+	return err
 }
 
 type HelmActionConfigFactory interface {
