GoogleContainerTools/skaffold · error
StatusCode_DEPLOY_HELM_VERSION_ERR
StatusCode_DEPLOY_HELM_VERSION_ERR
Error message
failed to determine binary version: %w
What it means
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.
Source
Thrown at pkg/skaffold/helm/errors.go:42
deployerr "github.com/GoogleContainerTools/skaffold/v2/pkg/skaffold/deploy/error"
sErrors "github.com/GoogleContainerTools/skaffold/v2/pkg/skaffold/errors"
"github.com/GoogleContainerTools/skaffold/v2/proto/v1"
)
var (
// error to throw when helm version can't be determined
versionErrorString = "failed to determine binary version: %w"
)
const (
installLink = "https://helm.sh/docs/intro/install"
toolName = "Helm"
)
func VersionGetErr(err error) error {
return sErrors.NewError(err,
&proto.ActionableErr{
Message: deployerr.MissingToolErr(toolName, fmt.Errorf(versionErrorString, err)),
ErrCode: proto.StatusCode_DEPLOY_HELM_VERSION_ERR,
Suggestions: []*proto.Suggestion{
{
SuggestionCode: proto.SuggestionCode_INSTALL_HELM,
Action: fmt.Sprintf("Please install helm via %s", installLink),
},
},
})
}
func MinVersionErr(minVer string) error {
return sErrors.NewErrorWithStatusCode(
&proto.ActionableErr{
Message: fmt.Sprintf("skaffold requires Helm version %s or greater", minVer),
ErrCode: proto.StatusCode_DEPLOY_HELM_MIN_VERSION_ERR,
Suggestions: []*proto.Suggestion{
{
SuggestionCode: proto.SuggestionCode_UPGRADE_HELM,View on GitHub (pinned to a1189de023)
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
Example fix
// CI before - run: skaffold deploy // after - run: curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash - run: skaffold deploy
Defensive patterns
Strategy: validation
Validate before calling
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; } Prevention
- 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
When it happens
Trigger: 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.
Common situations: Fresh environment/CI image without Helm; user forgot to install Helm before `skaffold deploy`; PATH differences between shells; Helm 2 remnants producing unexpected output.
Related errors
- strings.Join(errMsgs, "\n") (joined helm cleanup error messa
- could not prepare `skaffold filter`: %w
- StatusCode_DEPLOY_HELM_USER_ERR
- Failed to install Helm plugin
- kubectl version 1.12.0 or greater is recommended for use wit
AI-assisted analysis of GoogleContainerTools/skaffold@a1189de023 (2026-09-05).
Data as JSON: /api/errors/67176fd093da3003.
Report an issue: GitHub.