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

  1. Install Helm 3: `curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash` (as the error suggestion states)
  2. Confirm `helm version` works in the same shell/CI step that runs Skaffold
  3. Fix PATH so the helm binary is discoverable by the Skaffold process
  4. 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

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


AI-assisted analysis of GoogleContainerTools/skaffold@a1189de023 (2026-09-05). Data as JSON: /api/errors/67176fd093da3003. Report an issue: GitHub.