{"record":{"id":"67176fd093da3003","repo":"GoogleContainerTools/skaffold","slug":"statuscode-deploy-helm-version-err","errorCode":"StatusCode_DEPLOY_HELM_VERSION_ERR","errorMessage":"failed to determine binary version: %w","messagePattern":"failed to determine binary version: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/skaffold/helm/errors.go","lineNumber":42,"sourceCode":"\tdeployerr \"github.com/GoogleContainerTools/skaffold/v2/pkg/skaffold/deploy/error\"\n\tsErrors \"github.com/GoogleContainerTools/skaffold/v2/pkg/skaffold/errors\"\n\t\"github.com/GoogleContainerTools/skaffold/v2/proto/v1\"\n)\n\nvar (\n\t// error to throw when helm version can't be determined\n\tversionErrorString = \"failed to determine binary version: %w\"\n)\n\nconst (\n\tinstallLink = \"https://helm.sh/docs/intro/install\"\n\ttoolName    = \"Helm\"\n)\n\nfunc VersionGetErr(err error) error {\n\treturn sErrors.NewError(err,\n\t\t&proto.ActionableErr{\n\t\t\tMessage: deployerr.MissingToolErr(toolName, fmt.Errorf(versionErrorString, err)),\n\t\t\tErrCode: proto.StatusCode_DEPLOY_HELM_VERSION_ERR,\n\t\t\tSuggestions: []*proto.Suggestion{\n\t\t\t\t{\n\t\t\t\t\tSuggestionCode: proto.SuggestionCode_INSTALL_HELM,\n\t\t\t\t\tAction:         fmt.Sprintf(\"Please install helm via %s\", installLink),\n\t\t\t\t},\n\t\t\t},\n\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,","sourceCodeStart":24,"sourceCodeEnd":60,"githubUrl":"https://github.com/GoogleContainerTools/skaffold/blob/a1189de023efc32d4b8e11f395acc678aa555011/pkg/skaffold/helm/errors.go#L24-L60","documentation":"This is the structured error (with StatusCode_DEPLOY_HELM_VERSION_ERR) raised when the Helm version check fails during deployer construction. It wraps the BinVer failure and attaches an actionable suggestion to install Helm. It signals Skaffold could not determine the Helm version, so deployment cannot proceed.","triggerScenarios":"New/NewDeployer call BinVer, which fails for any reason: helm not installed, not on PATH, non-zero exit, or unparseable `helm version` output; the error is wrapped by VersionGetErr.","commonSituations":"Fresh environment/CI image without Helm; user forgot to install Helm before `skaffold deploy`; PATH differences between shells; Helm 2 remnants producing unexpected output.","solutions":["Install Helm 3: `curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash` (as the error suggestion states)","Confirm `helm version` works in the same shell/CI step that runs Skaffold","Fix PATH so the helm binary is discoverable by the Skaffold process","If helm is installed but output is odd, run it manually and fix/replace the binary"],"exampleFix":"// CI before\n- run: skaffold deploy\n// after\n- run: curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash\n- run: skaffold deploy","handlingStrategy":"validation","validationCode":"command -v helm >/dev/null 2>&1 && helm version >/dev/null || { curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash; }","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Read the error's Suggestion: install Helm via the documented link","Add helm installation to environment bootstrap (Dockerfile/CI setup)","Verify with `helm version` before every skaffold deploy","Keep the helm binary on the PATH of the process running skaffold"],"tags":["helm","missing-tool","version-check","deploy"],"backgroundTag":"missing-tool-helm","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"}