{"record":{"id":"ba18a18e6ad2a24f","repo":"GoogleContainerTools/skaffold","slug":"creating-watch-trigger-w","errorCode":null,"errorMessage":"creating watch trigger: %w","messagePattern":"creating watch trigger: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/skaffold/runner/new.go","lineNumber":168,"sourceCode":"\t\t}\n\t\treturn withPipelineBuildHooks(pb, p.Build.Hooks), nil\n\t})\n\tif err != nil {\n\t\tendTrace(instrumentation.TraceEndError(err))\n\t\treturn nil, fmt.Errorf(\"creating builder: %w\", err)\n\t}\n\n\tbuilder, tester, renderer, deployer = WithTimings(builder, tester, renderer, deployer, runCtx.CacheArtifacts())\n\tif runCtx.Notification() {\n\t\tdeployer = WithNotification(deployer)\n\t}\n\n\tmonitor := filemon.NewMonitor()\n\tintents, intentChan := setupIntents(runCtx)\n\trtrigger, err := trigger.NewTrigger(runCtx, intents.IsAnyAutoEnabled)\n\tif err != nil {\n\t\tendTrace(instrumentation.TraceEndError(err))\n\t\treturn nil, fmt.Errorf(\"creating watch trigger: %w\", err)\n\t}\n\n\trbuilder := NewBuilder(builder, tagger, platforms, artifactCache, runCtx)\n\treturn &SkaffoldRunner{\n\t\tBuilder:            *rbuilder,\n\t\tPruner:             Pruner{Builder: builder},\n\t\trenderer:           renderer,\n\t\ttester:             tester,\n\t\tdeployer:           deployer,\n\t\tplatforms:          platforms,\n\t\tmonitor:            monitor,\n\t\tlistener:           NewSkaffoldListener(monitor, rtrigger, sourceDependencies, intentChan),\n\t\tartifactStore:      store,\n\t\tsourceDependencies: sourceDependencies,\n\t\tlabeller:           labeller,\n\t\tcache:              artifactCache,\n\t\trunCtx:             runCtx,\n\t\tintents:            intents,","sourceCodeStart":150,"sourceCodeEnd":186,"githubUrl":"https://github.com/GoogleContainerTools/skaffold/blob/a1189de023efc32d4b8e11f395acc678aa555011/pkg/skaffold/runner/new.go#L150-L186","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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"],"exampleFix":"// before: conflicting flags\nskaffold dev --auto-build=false --auto-deploy=false --auto-sync=false\n// after: leave at least one auto trigger enabled or use explicit trigger config\nskaffold dev --auto-build=true","handlingStrategy":"validation","validationCode":"if !(autoBuild || autoDeploy || autoSync) { return errors.New(\"at least one auto trigger must be enabled for dev loop\") }","typeGuard":null,"tryCatchPattern":null,"preventionTips":["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"],"tags":["skaffold","go","file-watch","trigger"],"backgroundTag":"watch-trigger-init-failed","analyzedSha":"a1189de023efc32d4b8e11f395acc678aa555011","analyzedAt":"2026-09-05T12:09:27.064Z","contentChangedAt":"2026-09-05T12:09:27.064Z","schemaVersion":2},"datasetVersion":"2026-09-12T17:17:11.597Z"}