GoogleContainerTools/skaffold · error

creating verifier: %w

Error message

creating verifier: %w

What it means

`GetVerifier` instantiates the verification step (e.g. the built-in application verifier used by `skaffold verify`) from run context and labeller. This wraps failures constructing that verifier during `NewForConfig`, aborting startup before build/deploy.

Source

Thrown at pkg/skaffold/runner/new.go:110

	}
	rOpts := platform.ResolverOpts{
		KubeContext:               runCtx.KubeContext,
		CliPlatformsSelection:     runCtx.Opts.Platforms,
		CheckClusterNodePlatforms: runCtx.CheckClusterNodePlatforms(),
		DisableMultiPlatformBuild: runCtx.DisableMultiPlatformBuild(),
	}

	platforms, err := platform.NewResolver(ctx, runCtx.Pipelines.All(), rOpts)
	if err != nil {
		endTrace(instrumentation.TraceEndError(err))
		return nil, fmt.Errorf("getting target platforms: %w", err)
	}

	var verifier verify.Verifier
	verifier, err = GetVerifier(ctx, runCtx, labeller)
	if err != nil {
		endTrace(instrumentation.TraceEndError(err))
		return nil, fmt.Errorf("creating verifier: %w", err)
	}

	var acsRunner ActionsRunner
	acsRunner, err = GetActionsRunner(ctx, runCtx, labeller, runCtx.VerifyDockerNetwork(), runCtx.Opts.VerifyEnvFile)
	if err != nil {
		endTrace(instrumentation.TraceEndError(err))
		return nil, fmt.Errorf("creating actiosn runner: %w", err)
	}

	depLister := func(ctx context.Context, artifact *latest.Artifact, tag string) ([]string, error) {
		ctx, endTrace := instrumentation.StartTrace(ctx, "NewForConfig_depLister")
		defer endTrace()

		buildDependencies, err := sourceDependencies.SingleArtifactDependencies(ctx, artifact, tag)
		if err != nil {
			endTrace(instrumentation.TraceEndError(err))
			return nil, err
		}

View on GitHub (pinned to a1189de023)

Solutions

  1. Check the wrapped error and fix the `verify:` section in skaffold.yaml (image names, env config).
  2. Ensure Docker (or the target container runtime) is installed and running for verify execution.
  3. Run `skaffold diagnose` to validate the config schema.
  4. Update the skaffold config `apiVersion`/fields if this appeared after upgrading skaffold.

Example fix

// skaffold.yaml before
verify:
- name: smoke
  container:
    image: ""
// after
verify:
- name: smoke
  container:
    image: "registry.example.com/smoke-tester:v1"
Defensive patterns

Strategy: validation

Validate before calling

for _, v := range cfg.Verify {
  if v.Container != nil && v.Container.Image == "" {
    return fmt.Errorf("verify entry %q: container.image is required", v.Name)
  }
}

Try / catch

runner, err := runner.NewForConfig(runCtx)
if err != nil {
  if strings.Contains(err.Error(), "creating verifier") {
    return fmt.Errorf("verify config invalid: %w", err)
  }
  return err
}

Prevention

When it happens

Trigger: Running `skaffold verify` (or a command that wires verifiers) while the verify config in skaffold.yaml fails construction: missing/invalid container image reference in `verify:` entries, malformed execution env config, or required docker/network settings that can't be resolved.

Common situations: `verify:` test cases with empty or malformed image names; Docker not available/running when the verifier needs container execution; renamed verify config fields after a skaffold upgrade.

Related errors


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