{"record":{"id":"34e63e7bdd14ae71","repo":"docker/compose","slug":"watch-is-not-yet-configured-learn-more-s","errorCode":null,"errorMessage":"watch is not yet configured. Learn more: %s","messagePattern":"watch is not yet configured\\. Learn more: (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"info","filePath":"cmd/formatter/shortcut.go","lineNumber":330,"sourceCode":"\nfunc (lk *LogKeyboard) HandleKeyEvents(ctx context.Context, event keyboard.KeyEvent, project *types.Project, options api.UpOptions) {\n\tswitch kRune := event.Rune; kRune {\n\tcase 'd':\n\t\tlk.clearNavigationMenu()\n\t\tlk.Detach()\n\tcase 'v':\n\t\tlk.openDockerDesktop(ctx, project)\n\tcase 'w':\n\t\tif lk.Watch == nil {\n\t\t\t// we try to open watch docs if DD is installed\n\t\t\tif lk.IsDockerDesktopActive {\n\t\t\t\tlk.openDDWatchDocs(ctx, project)\n\t\t\t}\n\t\t\t// either way we mark menu/watch as an error\n\t\t\tgo func() {\n\t\t\t\t_ = tracing.EventWrapFuncForErrGroup(ctx, \"menu/watch\", tracing.SpanOptions{},\n\t\t\t\t\tfunc(ctx context.Context) error {\n\t\t\t\t\t\terr := fmt.Errorf(\"watch is not yet configured. Learn more: %s\", ansiColor(CYAN, \"https://docs.docker.com/compose/file-watch/\"))\n\t\t\t\t\t\tlk.keyboardError(\"Watch\", err)\n\t\t\t\t\t\treturn err\n\t\t\t\t\t})()\n\t\t\t}()\n\t\t}\n\t\tlk.ToggleWatch(ctx, options)\n\tcase 'o':\n\t\tlk.openDDComposeUI(ctx, project)\n\tcase 'l':\n\t\tlk.openDDLogsView(ctx, project)\n\t}\n\tswitch key := event.Key; key {\n\tcase keyboard.KeyCtrlC:\n\t\t_ = keyboard.Close()\n\t\tlk.clearNavigationMenu()\n\t\tshowCursor()\n\n\t\tlk.logLevel = NONE","sourceCodeStart":312,"sourceCodeEnd":348,"githubUrl":"https://github.com/docker/compose/blob/ddc4b044b62e9f715212ea4143fa830fac76382f/cmd/formatter/shortcut.go#L312-L348","documentation":"Not a failure of compose itself: pressing 'w' in the navigation menu when the project has no watch configuration (lk.Watch == nil) deliberately raises this error, colors a docs link (https://docs.docker.com/compose/file-watch/), and displays it via keyboardError(\"Watch\", ...). It always coexists with an attempt to open the DD watch docs page when Docker Desktop is active. After the error, ToggleWatch(ctx, options) is still called.","triggerScenarios":"docker compose up (attached, with menu) and pressing 'w' when the loaded project model has no develop.watch section — e.g. a plain compose.yaml without a develop: block, or running from a directory where the override carrying watch config was not merged.","commonSituations":"Expecting `docker compose watch` behavior from the interactive menu without having written a develop.watch config; running `up` on a project whose watch config lives in a compose.override.yaml that was not loaded; muscle-memory 'w' on projects that never opted into watch.","solutions":["Add a develop.watch section to compose.yaml matching services and their sync rules (see the linked docs), then re-run and press 'w'.","Verify the file you edited is actually part of the merged model: docker compose config | grep -A5 develop.","If watch is intentionally unused, ignore the message — it is informational and compose keeps running.","Use `docker compose watch` directly for a clearer error when the config is still missing."],"exampleFix":"# before: compose.yaml\nservices:\n  web:\n    build: .\n\n# after: compose.yaml\nservices:\n  web:\n    build: .\n    develop:\n      watch:\n        - action: sync\n          path: ./src\n          target: /app/src\n","handlingStrategy":"validation","validationCode":"// before enabling/pressing 'w', confirm watch config is merged\ncfg, err := cli.ToProject(ctx, opts)\nif err == nil && cfg.Develop != nil && len(cfg.Develop.Watch) > 0 {\n    // watch is configured; 'w' will toggle it\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Add a develop.watch section to compose.yaml before using the 'w' shortcut.","Verify with `docker compose config` that the watch block survived merging.","Remember the message is informational: compose keeps running."],"tags":["watch","keyboard-menu","developer-experience","compose-file"],"backgroundTag":null,"analyzedSha":"ddc4b044b62e9f715212ea4143fa830fac76382f","analyzedAt":"2026-08-15T13:31:42.319Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}