{"record":{"id":"eaff5d96eec554e5","repo":"docker/cli","slug":"unknown-help-topic-v-eaff5d","errorCode":null,"errorMessage":"unknown help topic: %v","messagePattern":"unknown help topic: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"cmd/docker/docker.go","lineNumber":221,"sourceCode":"\t\t\treturn err\n\t\t}\n\t\treturn flagErrorFunc(cmd, err)\n\t})\n}\n\nfunc setupHelpCommand(dockerCli command.Cli, rootCmd, helpCmd *cobra.Command) {\n\torigRun := helpCmd.Run\n\torigRunE := helpCmd.RunE\n\n\thelpCmd.Run = nil\n\thelpCmd.RunE = func(c *cobra.Command, args []string) error {\n\t\tif len(args) > 0 {\n\t\t\thelpcmd, err := pluginmanager.PluginRunCommand(dockerCli, args[0], rootCmd)\n\t\t\tif err == nil {\n\t\t\t\treturn helpcmd.Run()\n\t\t\t}\n\t\t\tif !errdefs.IsNotFound(err) {\n\t\t\t\treturn fmt.Errorf(\"unknown help topic: %v\", strings.Join(args, \" \"))\n\t\t\t}\n\t\t}\n\t\tif origRunE != nil {\n\t\t\treturn origRunE(c, args)\n\t\t}\n\t\torigRun(c, args)\n\t\treturn nil\n\t}\n}\n\nfunc tryRunPluginHelp(dockerCli command.Cli, ccmd *cobra.Command, cargs []string) error {\n\troot := ccmd.Root()\n\n\tcmd, _, err := root.Traverse(cargs)\n\tif err != nil {\n\t\treturn err\n\t}\n\thelpcmd, err := pluginmanager.PluginRunCommand(dockerCli, cmd.Name(), root)","sourceCodeStart":203,"sourceCodeEnd":239,"githubUrl":"https://github.com/docker/cli/blob/4f84911bfe8811e9b028e4b1fee8e7510be79387/cmd/docker/docker.go#L203-L239","documentation":"Returned by the overridden `docker help <topic>` RunE (setupHelpCommand) when PluginRunCommand for the requested help topic returns an error that is not a NotFound error — meaning the help machinery recognized the topic string but could not produce help for it. %v is the joined help-topic args. It signals an unresolvable help topic rather than a missing plugin.","triggerScenarios":"Running `docker help <topic>` where <topic> is neither a builtin command nor an installed plugin and the plugin lookup returned a non-NotFound error (e.g. plugin present but errored). Also reachable for topics that partially match but fail resolution.","commonSituations":"Asking for help on a command from a plugin that is broken; help topic typos that bypass the not-found path; mismatches between command stubs and installed plugins.","solutions":["Run `docker --help` to list valid top-level topics.","If the topic belongs to a plugin, ensure the plugin is installed and functional.","Check the exact spelling/casing of the topic."],"exampleFix":"// before\n$ docker help bulid\nunknown help topic: bulid\n\n// after\n$ docker help build","handlingStrategy":"validation","validationCode":"// Validate a help topic against known commands/plugins before asking\nfunc knownTopic(topic string) (bool, error) {\n    out, err := exec.Command(\"docker\", \"--help\").CombinedOutput()\n    if err != nil { return false, err }\n    return strings.Contains(string(out), topic), nil\n}","typeGuard":null,"tryCatchPattern":"// Fall back to root help if the specific topic is unknown\nout, err := exec.CommandContext(ctx, \"docker\", \"help\", topic).CombinedOutput()\nif err != nil && strings.Contains(string(out), \"unknown help topic\") {\n    out, _ = exec.CommandContext(ctx, \"docker\", \"--help\").CombinedOutput()\n}","preventionTips":["Confirm spelling/casing of help topics.","Ensure the relevant plugin is installed before requesting its help.","Use `docker --help` as the authoritative topic list."],"tags":["docker","cli","help","usage"],"backgroundTag":null,"analyzedSha":"4f84911bfe8811e9b028e4b1fee8e7510be79387","analyzedAt":"2026-08-07T12:15:29.814Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}