GoogleContainerTools/skaffold · error

action %v not found for local execution mode

Error message

action %v not found for local execution mode

What it means

In local execution mode, createActions resolves each requested action name from the skaffold config via acsCfgByName. If a referenced action (custom action from skaffold.yaml's actions section) is not present in the loaded config, it fails fast with this error.

Source

Thrown at pkg/skaffold/actions/docker/exec_env.go:149

}

func (e ExecEnv) Stop() {
	e.logger.Stop() // Print the logs of the containers that were not able to print during execution.
}

func (e ExecEnv) createActions(ctx context.Context, out io.Writer, bs []graph.Artifact, acsNames []string) ([]actions.Action, error) {
	var trackedBuilds []graph.Artifact
	var acs []actions.Action
	builtArtifacts := map[string]graph.Artifact{}

	for _, b := range bs {
		builtArtifacts[b.ImageName] = b
	}

	for _, aName := range acsNames {
		aCfg, found := e.acsCfgByName[aName]
		if !found {
			return nil, fmt.Errorf("action %v not found for local execution mode", aName)
		}

		ts, tracked, err := e.createTasks(ctx, out, aCfg, builtArtifacts)
		if err != nil {
			return nil, err
		}
		acs = append(acs, *actions.NewAction(aCfg.Name, *aCfg.Config.Timeout, *aCfg.Config.IsFailFast, ts))
		trackedBuilds = append(trackedBuilds, tracked...)
	}

	e.logger.RegisterArtifacts(trackedBuilds)

	return acs, nil
}

func (e ExecEnv) createTasks(ctx context.Context, out io.Writer, aCfgs latest.Action, builts map[string]graph.Artifact) ([]actions.Task, []graph.Artifact, error) {
	var ts []actions.Task
	var tracked []graph.Artifact

View on GitHub (pinned to a1189de023)

Solutions

  1. Run skaffold verify --action list or inspect skaffold.yaml's `actions:` section to see valid action names and correct the --action flag.
  2. Check you enabled the profile that actually defines the action (-p <profile>).
  3. Add the missing action definition to skaffold.yaml or fix its name/indentation so it parses into acsCfgByName.

Example fix

// before
skaffold verify --action myTset
// after
skaffold verify --action myTest  # name matches actions.myTest in skaffold.yaml
Defensive patterns

Strategy: validation

Validate before calling

// Check the action exists in skaffold.yaml before invoking
const yaml = require('js-yaml').load(require('fs').readFileSync('skaffold.yaml','utf8'));
if (!yaml.actions?.[actionName]) throw new Error(`action ${actionName} missing from skaffold.yaml`);

Prevention

When it happens

Trigger: Invoking skaffold verify/run --action <name> (or execution-mode config listing actions) where <name> does not match any action defined under `actions:` in skaffold.yaml.

Common situations: Typo in the action name on the CLI flag or in `verify` config; action defined only in a different profile's skaffold.yaml; forgot to add the action under the actions stanza; stale docs referencing renamed actions.

Related errors


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