Skip to content

Commit bdbe2a7

Browse files
authored
fix(controller): wrap secret fetch errors with %w to preserve error chain (#1772)
`ReconcileKagentModelConfig` appends secret fetch errors via `multierror.Append`, but both `fmt.Errorf` calls used `%v` instead of `%w`. This means the original Kubernetes API error is stringified and lost — `errors.Is` and `errors.As` cannot unwrap through the multi-error to inspect the root cause (e.g. `apierrors.IsNotFound`). Switching to `%w` keeps the error chain intact so callers can inspect or match the underlying error type. Two lines changed, no behaviour change in the happy path. Signed-off-by: mesutoezdil <mesudozdil@gmail.com>
1 parent b50661f commit bdbe2a7

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

go/core/internal/controller/reconciler/reconciler.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -392,7 +392,7 @@ func (a *kagentReconciler) ReconcileKagentModelConfig(ctx context.Context, req c
392392
namespacedName := types.NamespacedName{Namespace: modelConfig.Namespace, Name: modelConfig.Spec.APIKeySecret}
393393

394394
if kubeErr := a.kube.Get(ctx, namespacedName, secret); kubeErr != nil {
395-
err = multierror.Append(err, fmt.Errorf("failed to get secret %s: %v", modelConfig.Spec.APIKeySecret, kubeErr))
395+
err = multierror.Append(err, fmt.Errorf("failed to get secret %s: %w", modelConfig.Spec.APIKeySecret, kubeErr))
396396
} else {
397397
secrets = append(secrets, secretRef{
398398
NamespacedName: namespacedName,
@@ -407,7 +407,7 @@ func (a *kagentReconciler) ReconcileKagentModelConfig(ctx context.Context, req c
407407
namespacedName := types.NamespacedName{Namespace: modelConfig.Namespace, Name: modelConfig.Spec.TLS.CACertSecretRef}
408408

409409
if kubeErr := a.kube.Get(ctx, namespacedName, secret); kubeErr != nil {
410-
err = multierror.Append(err, fmt.Errorf("failed to get secret %s: %v", modelConfig.Spec.TLS.CACertSecretRef, kubeErr))
410+
err = multierror.Append(err, fmt.Errorf("failed to get secret %s: %w", modelConfig.Spec.TLS.CACertSecretRef, kubeErr))
411411
} else {
412412
secrets = append(secrets, secretRef{
413413
NamespacedName: namespacedName,

0 commit comments

Comments
 (0)