{"record":{"id":"5a5d23360870c593","repo":"docker/cli","slug":"1-s-2-s-requires-at-least-3-d-and-at-most","errorCode":null,"errorMessage":"%[1]s: '%[2]s' requires at least %[3]d and at most %[4]d %[5]s\n\nUsage:  %[6]s\n\nRun '%[2]s --help' for more information","messagePattern":"%\\[1\\]s: '%\\[2\\]s' requires at least %\\[3\\]d and at most %\\[4\\]d %\\[5\\]s\n\nUsage:  %\\[6\\]s\n\nRun '%\\[2\\]s --help' for more information","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cli/required.go","lineNumber":73,"sourceCode":"\t\t}\n\t\treturn fmt.Errorf(\n\t\t\t\"%[1]s: '%[2]s' requires at most %[3]d %[4]s\\n\\nUsage:  %[5]s\\n\\nRun '%[2]s --help' for more information\",\n\t\t\tbinName(cmd),\n\t\t\tcmd.CommandPath(),\n\t\t\tmaxArgs,\n\t\t\tpluralize(\"argument\", maxArgs),\n\t\t\tcmd.UseLine(),\n\t\t)\n\t}\n}\n\n// RequiresRangeArgs returns an error if there is not at least min args and at most max args\nfunc RequiresRangeArgs(minArgs int, maxArgs int) cobra.PositionalArgs {\n\treturn func(cmd *cobra.Command, args []string) error {\n\t\tif len(args) >= minArgs && len(args) <= maxArgs {\n\t\t\treturn nil\n\t\t}\n\t\treturn fmt.Errorf(\n\t\t\t\"%[1]s: '%[2]s' requires at least %[3]d and at most %[4]d %[5]s\\n\\nUsage:  %[6]s\\n\\nRun '%[2]s --help' for more information\",\n\t\t\tbinName(cmd),\n\t\t\tcmd.CommandPath(),\n\t\t\tminArgs,\n\t\t\tmaxArgs,\n\t\t\tpluralize(\"argument\", maxArgs),\n\t\t\tcmd.UseLine(),\n\t\t)\n\t}\n}\n\n// ExactArgs returns an error if there is not the exact number of args\nfunc ExactArgs(number int) cobra.PositionalArgs {\n\treturn func(cmd *cobra.Command, args []string) error {\n\t\tif len(args) == number {\n\t\t\treturn nil\n\t\t}\n\t\treturn fmt.Errorf(","sourceCodeStart":55,"sourceCodeEnd":91,"githubUrl":"https://github.com/docker/cli/blob/4f84911bfe8811e9b028e4b1fee8e7510be79387/cli/required.go#L55-L91","documentation":"Returned by cli.RequiresRangeArgs (required.go:73) when the argument count falls outside [minArgs, maxArgs]. Used by commands accepting a bounded range of positional arguments (e.g. 1..2). The message states both bounds and the usage line.","triggerScenarios":"Invoking a command configured with Args: cli.RequiresRangeArgs(min, max) with fewer than min or more than max positional arguments.","commonSituations":"Supplying zero args, or supplying extra args beyond the allowed range, often due to optional-argument misunderstanding or shell expansion surprises.","solutions":["Count your positional arguments and keep them within the printed [min, max] range.","Run `<cmd> --help` to see the expected positional signature.","Move flags-as-values mistakes into proper `--flag value` form."],"exampleFix":"// before: zero positionals for a RequiresRangeArgs(1,2) command\ndocker context use\n\n// after: supply the context name\ndocker context use default","handlingStrategy":"validation","validationCode":"// Validate within [min,max] before invoking\nn := len(positionalArgs)\nif n < minArgs || n > maxArgs {\n    return fmt.Errorf(\"need between %d and %d positional args, got %d\", minArgs, maxArgs, n)\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Confirm the allowed range via --help.","Provide explicit defaults for optional positionals.","Check expansion of optional variables in scripts."],"tags":["cli","cobra","usage","arguments"],"backgroundTag":null,"analyzedSha":"4f84911bfe8811e9b028e4b1fee8e7510be79387","analyzedAt":"2026-08-07T12:15:29.814Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}