GoogleContainerTools/skaffold · error

creating actiosn runner: %w

Error message

creating actiosn runner: %w

What it means

`GetActionsRunner` builds the runner for custom actions (`skaffold run action` / actions config). This wraps its construction failure in `NewForConfig`. Note the message contains a typo: "actiosn runner" instead of "actions runner" — a known cosmetic bug in the source.

Source

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

	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
		}

		testDependencies, err := tester.TestDependencies(ctx, artifact)
		if err != nil {
			endTrace(instrumentation.TraceEndError(err))
			return nil, err
		}
		return append(buildDependencies, testDependencies...), nil

View on GitHub (pinned to a1189de023)

Solutions

  1. Read the wrapped error and fix the failing `actions:` entry in skaffold.yaml.
  2. Ensure the env file passed to `--verify-env-file` exists and is a valid KEY=VALUE file.
  3. Create the referenced docker network (`docker network create <name>`) or drop `--verify-docker-network`.
  4. Validate config with `skaffold diagnose`.

Example fix

// command before
skaffold run action --verify-env-file ./missing.env
// after
skaffold run action --verify-env-file ./test.env
Defensive patterns

Strategy: validation

Validate before calling

func envFileValid(path string) error {
  if path == "" { return nil }
  f, err := os.Open(path)
  if err != nil { return err }
  defer f.Close()
  return nil // optionally scan for KEY=VALUE lines
}

Try / catch

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

Prevention

When it happens

Trigger: skaffold.yaml `actions:` config fails during runner construction: malformed action definitions (bad container image, invalid name, missing command), invalid env file path passed via `--verify-env-file`, or unusable docker network setting from `--verify-docker-network`.

Common situations: `--verify-env-file` pointing at a nonexistent file; `--verify-docker-network` naming a network that doesn't exist; actions entries missing required container fields; schema drift after upgrading skaffold.

Related errors


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