diff --git a/core/installer/app.go b/core/installer/app.go
index 656b992..e42a9df 100644
--- a/core/installer/app.go
+++ b/core/installer/app.go
@@ -4,6 +4,7 @@
 	"bytes"
 	_ "embed"
 	"encoding/json"
+	"errors"
 	"fmt"
 	template "html/template"
 	"net"
@@ -13,7 +14,7 @@
 	"cuelang.org/go/cue"
 	"cuelang.org/go/cue/build"
 	"cuelang.org/go/cue/cuecontext"
-	"cuelang.org/go/cue/errors"
+	cueerrors "cuelang.org/go/cue/errors"
 	"cuelang.org/go/cue/load"
 	cueyaml "cuelang.org/go/encoding/yaml"
 	helmv2 "github.com/fluxcd/helm-controller/api/v2"
@@ -419,10 +420,10 @@
 func ParseAndCreateNewCueApp(data CueAppData) (cueApp, error) {
 	config, err := ParseCueAppConfig(data)
 	if err != nil {
-		return cueApp{}, fmt.Errorf(errors.Details(err, nil))
+		return cueApp{}, errors.New(cueerrors.Details(err, nil))
 	}
 	if err := config.Err(); err != nil {
-		return cueApp{}, fmt.Errorf(errors.Details(err, nil))
+		return cueApp{}, errors.New(cueerrors.Details(err, nil))
 	}
 	return newCueApp(config, data)
 }
@@ -470,7 +471,7 @@
 	d := ctx.CompileBytes(buf.Bytes())
 	res := a.cfg.Unify(d).Eval()
 	if err := res.Err(); err != nil {
-		return rendered{}, fmt.Errorf(errors.Details(err, nil))
+		return rendered{}, errors.New(cueerrors.Details(err, nil))
 	}
 	if err := res.Validate(); err != nil {
 		return rendered{}, err
@@ -708,7 +709,7 @@
 	ret := []Access{}
 	for i.Next() {
 		if a, err := extractAccessInternal(i.Value()); err != nil {
-			return nil, fmt.Errorf(errors.Details(err, nil))
+			return nil, errors.New(cueerrors.Details(err, nil))
 		} else {
 			ret = append(ret, a...)
 		}
