derailed/k9s · warning

%s

Error message

%s

What it means

Returned by HelmHistory.Delete after action.NewUninstall(cfg).Run(name) completes without a transport error but the UninstallResponse carries a non-empty Info string. Helm puts hook output and deletion notes in Info, so the DAO surfaces any informational payload as an error rather than swallowing it.

Source

Thrown at internal/dao/helm_history.go:169

	return clt.Run(n)
}

// Delete uninstall a Helm.
func (h *HelmHistory) Delete(_ context.Context, path string, _ *metav1.DeletionPropagation, _ Grace) error {
	ns, n := client.Namespaced(path)
	cfg, err := ensureHelmConfig(h.Client().Config().Flags(), ns)
	if err != nil {
		return err
	}

	res, err := action.NewUninstall(cfg).Run(n)
	if err != nil {
		return err
	}

	if res != nil && res.Info != "" {
		return fmt.Errorf("%s", res.Info)
	}

	return nil
}

View on GitHub (pinned to 2d3ccc6ba2)

Solutions

  1. Read the message and verify the outcome: check helm list / HelmHistory.List — the release is usually already gone
  2. If Info only contains hook output, treat the returned error as informational in your caller instead of a failure
  3. When the message mentions a failed hook, inspect hook job logs in the release namespace and clean up manually
Defensive patterns

Strategy: try-catch

Try / catch

if err := h.Delete(ctx, path, nil, Grace{}); err != nil {
    if remaining, lerr := h.List(ctx); lerr == nil && !releaseExists(remaining, name) {
        // release is gone: downgrade to warning, err is informational hook output
        slog.Warn("helm uninstall info", slogs.Error, err)
        return nil
    }
    return err
}

Prevention

When it happens

Trigger: Uninstalling a release whose pre/post-delete hooks emit output, or whose deletion leaves messages/warnings in res.Info — the run succeeds yet Info != "".

Common situations: Releases with pre-delete hooks (cert cleanup jobs, external deleters) that print messages; resources intentionally kept (CRDs, PVCs) noted by Helm; migrated Helm 2 releases carrying annotated info.

Related errors


AI-assisted analysis of derailed/k9s@2d3ccc6ba2 (2026-08-15). Data as JSON: /api/errors/b67f950599ff8f7d. Report an issue: GitHub.