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.ArtifactView on GitHub (pinned to a1189de023)
Solutions
- Run skaffold verify --action list or inspect skaffold.yaml's `actions:` section to see valid action names and correct the --action flag.
- Check you enabled the profile that actually defines the action (-p <profile>).
- 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
- Copy action names from skaffold.yaml verbatim; avoid hand-typing --action values
- Use skaffold inspect or the config schema to list available actions
- Verify the intended profile defining the action is activated
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
- action %v not found for k8s execution mode
- value must be one of `always`, `missing`, or `never`
- CONFIG_REMOTE_REPO_CACHE_NOT_FOUND_ERR
- CONFIG_REMOTE_REPO_CACHE_NOT_FOUND_ERR
- INSPECT_BUILD_ENV_ALREADY_EXISTS_ERR
AI-assisted analysis of GoogleContainerTools/skaffold@a1189de023 (2026-09-05).
Data as JSON: /api/errors/f367b8adb2f97f90.
Report an issue: GitHub.