GoogleContainerTools/skaffold · error
creating watch trigger: %w
Error message
creating watch trigger: %w
What it means
NewForConfig creates a file-watch trigger (trigger.NewTrigger) that decides when redeploys fire during dev. If the trigger cannot be constructed (e.g. no valid trigger mode resolved from intents/watch settings), the error is wrapped as "creating watch trigger: %w" and runner creation aborts.
Source
Thrown at pkg/skaffold/runner/new.go:168
}
return withPipelineBuildHooks(pb, p.Build.Hooks), nil
})
if err != nil {
endTrace(instrumentation.TraceEndError(err))
return nil, fmt.Errorf("creating builder: %w", err)
}
builder, tester, renderer, deployer = WithTimings(builder, tester, renderer, deployer, runCtx.CacheArtifacts())
if runCtx.Notification() {
deployer = WithNotification(deployer)
}
monitor := filemon.NewMonitor()
intents, intentChan := setupIntents(runCtx)
rtrigger, err := trigger.NewTrigger(runCtx, intents.IsAnyAutoEnabled)
if err != nil {
endTrace(instrumentation.TraceEndError(err))
return nil, fmt.Errorf("creating watch trigger: %w", err)
}
rbuilder := NewBuilder(builder, tagger, platforms, artifactCache, runCtx)
return &SkaffoldRunner{
Builder: *rbuilder,
Pruner: Pruner{Builder: builder},
renderer: renderer,
tester: tester,
deployer: deployer,
platforms: platforms,
monitor: monitor,
listener: NewSkaffoldListener(monitor, rtrigger, sourceDependencies, intentChan),
artifactStore: store,
sourceDependencies: sourceDependencies,
labeller: labeller,
cache: artifactCache,
runCtx: runCtx,
intents: intents,View on GitHub (pinned to a1189de023)
Solutions
- Read the wrapped cause after 'creating watch trigger:'
- Check --auto-build/--auto-sync/--auto-deploy flag combinations; at least one auto trigger must be resolvable or provide manual triggers
- Fix the `watch`/trigger settings in skaffold.yaml dev section
- Simplify flags to defaults to isolate the invalid combination
Example fix
// before: conflicting flags skaffold dev --auto-build=false --auto-deploy=false --auto-sync=false // after: leave at least one auto trigger enabled or use explicit trigger config skaffold dev --auto-build=true
Defensive patterns
Strategy: validation
Validate before calling
if !(autoBuild || autoDeploy || autoSync) { return errors.New("at least one auto trigger must be enabled for dev loop") } Prevention
- Avoid disabling all --auto-* flags at once
- Review the dev.triggers/watch section of skaffold.yaml after edits
- Test dev-loop flags locally before scripting them in CI
When it happens
Trigger: Calling runner.NewForConfig when trigger.NewTrigger(runCtx, intents.IsAnyAutoEnabled) returns an error — typically when neither auto-trigger is enabled nor a valid trigger configuration (watch/polling settings) can be resolved.
Common situations: Contradictory dev-loop flags (e.g. --auto-build=false with no manual trigger support), invalid watch settings in skaffold.yaml, or run-context intents misconfigured by CLI flag combinations.
Related errors
- unable to start trigger: %w
- failed determining remote cache directory: %w
- watching files for artifact %q: %w
- watching test files: %w
- watching files for renderer: %w
AI-assisted analysis of GoogleContainerTools/skaffold@a1189de023 (2026-09-05).
Data as JSON: /api/errors/ba18a18e6ad2a24f.
Report an issue: GitHub.