{"record":{"id":"8ad3c36c66f2ef03","repo":"ahmetb/kubectx","slug":"s-requires-a-context-name-argument-or-fzf-for","errorCode":null,"errorMessage":"'%s' requires a context name argument (or fzf for interactive mode)","messagePattern":"'(.+?)' requires a context name argument \\(or fzf for interactive mode\\)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/kubectx/flags.go","lineNumber":48,"sourceCode":"\treturn op.Err\n}\n\n// parseArgs looks at flags (excl. executable name, i.e. argv[0])\n// and decides which operation should be taken.\nfunc parseArgs(argv []string) Op {\n\tif len(argv) == 0 {\n\t\tif cmdutil.IsInteractiveMode(os.Stdout) {\n\t\t\treturn InteractiveSwitchOp{}\n\t\t}\n\t\treturn ListOp{}\n\t}\n\n\tif argv[0] == \"--readonly\" || argv[0] == \"-r\" {\n\t\tif len(argv) == 1 {\n\t\t\tif cmdutil.IsInteractiveMode(os.Stdout) {\n\t\t\t\treturn InteractiveReadonlyShellOp{}\n\t\t\t}\n\t\t\treturn UnsupportedOp{Err: fmt.Errorf(\"'%s' requires a context name argument (or fzf for interactive mode)\", argv[0])}\n\t\t}\n\t\tif len(argv) == 2 {\n\t\t\treturn ReadonlyShellOp{Target: argv[1]}\n\t\t}\n\t\treturn UnsupportedOp{Err: fmt.Errorf(\"'%s' accepts at most one context name argument\", argv[0])}\n\t}\n\n\tif argv[0] == \"--shell\" || argv[0] == \"-s\" {\n\t\tif len(argv) == 1 {\n\t\t\tif cmdutil.IsInteractiveMode(os.Stdout) {\n\t\t\t\treturn InteractiveShellOp{}\n\t\t\t}\n\t\t\treturn UnsupportedOp{Err: fmt.Errorf(\"'%s' requires a context name argument (or fzf for interactive mode)\", argv[0])}\n\t\t}\n\t\tif len(argv) == 2 {\n\t\t\treturn ShellOp{Target: argv[1]}\n\t\t}\n\t\treturn UnsupportedOp{Err: fmt.Errorf(\"'%s' accepts at most one context name argument\", argv[0])}","sourceCodeStart":30,"sourceCodeEnd":66,"githubUrl":"https://github.com/ahmetb/kubectx/blob/12ad6fb22e8c546ee2b54e7de38aa51c906832f7/cmd/kubectx/flags.go#L30-L66","documentation":"Argument-validation error returned via UnsupportedOp from parseArgs: the --readonly/-r flag was given with no target context name, and stdout is not an interactive terminal (so the fzf picker cannot be offered). The flag demands exactly one context argument in non-interactive mode.","triggerScenarios":"Thrown at cmd/kubectx/flags.go:48 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Provide a context name: `kubectx --readonly <NAME>`","Run from an interactive terminal to use the fzf picker with just `-r`"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"12ad6fb22e8c546ee2b54e7de38aa51c906832f7","analyzedAt":"2026-09-02T12:23:10.107Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-09T16:17:10.729Z"}