{"record":{"id":"92bb7f6ce479dcae","repo":"GoogleContainerTools/skaffold","slug":"statuscode-render-helm-plugin-err","errorCode":"StatusCode_RENDER_HELM_PLUGIN_ERR","errorMessage":"errors.Wrap(err, prefix)","messagePattern":"errors\\.Wrap\\(err, prefix\\)","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/skaffold/helm/errors.go","lineNumber":68,"sourceCode":"\t\t})\n}\n\nfunc MinVersionErr(minVer string) error {\n\treturn sErrors.NewErrorWithStatusCode(\n\t\t&proto.ActionableErr{\n\t\t\tMessage: fmt.Sprintf(\"skaffold requires Helm version %s or greater\", minVer),\n\t\t\tErrCode: proto.StatusCode_DEPLOY_HELM_MIN_VERSION_ERR,\n\t\t\tSuggestions: []*proto.Suggestion{\n\t\t\t\t{\n\t\t\t\t\tSuggestionCode: proto.SuggestionCode_UPGRADE_HELM,\n\t\t\t\t\tAction:         fmt.Sprintf(\"Please upgrade helm to %s or higher via %s\", minVer, installLink),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n}\n\nfunc PluginErr(prefix string, err error) error {\n\treturn deployerr.UserError(errors.Wrap(err, prefix), proto.StatusCode_RENDER_HELM_PLUGIN_ERR)\n}\n\nfunc UserErr(prefix string, err error) error {\n\treturn deployerr.UserError(errors.Wrap(err, prefix), proto.StatusCode_DEPLOY_HELM_USER_ERR)\n}\n\nfunc CreateNamespaceErr(version string) error {\n\treturn sErrors.NewErrorWithStatusCode(\n\t\t&proto.ActionableErr{\n\t\t\tMessage: fmt.Sprintf(\"Skaffold config options `createNamespace` is not available in the current Helm version %s\", version),\n\t\t\tErrCode: proto.StatusCode_DEPLOY_HELM_CREATE_NS_NOT_AVAILABLE,\n\t\t\tSuggestions: []*proto.Suggestion{\n\t\t\t\t{\n\t\t\t\t\tSuggestionCode: proto.SuggestionCode_UPGRADE_HELM32,\n\t\t\t\t\tAction:         \"\\nPlease update Helm to version 3.2 or higher\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tSuggestionCode: proto.SuggestionCode_FIX_SKAFFOLD_CONFIG_HELM_CREATE_NAMESPACE,","sourceCodeStart":50,"sourceCodeEnd":86,"githubUrl":"https://github.com/GoogleContainerTools/skaffold/blob/a1189de023efc32d4b8e11f395acc678aa555011/pkg/skaffold/helm/errors.go#L50-L86","documentation":"helm.PluginErr wraps any error from running the helm plugin/binary during render (e.g. from PreparePostRenderer flows) as a UserError with status code RENDER_HELM_PLUGIN_ERR. It signals that the helm executable itself failed (bad flags, missing plugin, non-zero exit) rather than a user config error.","triggerScenarios":"PluginErr(prefix, err) is invoked when helm command execution fails, e.g. PreparePostRenderer calling into helm and helm exiting non-zero — unknown flag, missing post-renderer plugin, helm not on PATH, or corrupted HELM_* environment.","commonSituations":"helm binary version too old for flags skaffold passes (e.g. --post-renderer); helm plugin not installed; PATH missing helm; helm output parse failures; incompatible KUBECONFIG context passed through to helm.","solutions":["Read the wrapped prefix + inner helm stderr to see the exact helm failure","Run `helm version` and upgrade helm to a version supporting the flags skaffold uses (>=3.8 recommended)","Re-run the failing helm command manually with the same args to reproduce outside skaffold","Install/repair any helm post-renderer plugins referenced by the config","Check `which helm` and ensure the intended binary is first on PATH"],"exampleFix":"// before\nerror: helm: ... unknown flag: --post-renderer\n// after\n$ brew upgrade helm   # or reinstall helm >= 3.8\n$ helm version\n$ skaffold render","handlingStrategy":"try-catch","validationCode":"if _, err := exec.LookPath(\"helm\"); err != nil {\n  return fmt.Errorf(\"helm not installed or not on PATH: %w\", err)\n}\nout, _ := exec.Command(\"helm\", \"version\", \"--short\").Output()\nif !strings.HasPrefix(string(out), \"v3.\") {\n  return fmt.Errorf(\"helm 3 required, got %s\", out)\n}","typeGuard":"null","tryCatchPattern":"if err := render(ctx); err != nil {\n  var uerr *deployerr.UserError\n  if errors.As(err, &uerr) && uerr.Code == proto.StatusCode_RENDER_HELM_PLUGIN_ERR {\n    log.Printf(\"helm plugin failed: %v — run the helm command manually with the -vdebug args\", errors.Unwrap(err))\n  }\n  return err\n}","preventionTips":["Install helm 3.8+ and keep it on PATH before invoking skaffold render","Run the failing helm command by hand to see raw stderr","Install all referenced post-renderer plugins beforehand","Pin helm version in CI to avoid flag incompatibilities"],"tags":["helm","render","plugin","cli"],"backgroundTag":"helm-plugin-error","analyzedSha":"a1189de023efc32d4b8e11f395acc678aa555011","analyzedAt":"2026-09-05T12:09:27.064Z","contentChangedAt":"2026-09-05T12:09:27.064Z","schemaVersion":2},"datasetVersion":"2026-09-12T17:17:11.597Z"}