{"record":{"id":"752c8b905d734389","repo":"argoproj/argo-workflows","slug":"unknown-action-s","errorCode":null,"errorMessage":"unknown action '%s'","messagePattern":"unknown action '(.+?)'","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/argo/commands/node.go","lineNumber":40,"sourceCode":"\nfunc NewNodeCommand() *cobra.Command {\n\tvar setArgs setOps\n\n\tcommand := &cobra.Command{\n\t\tUse:   \"node ACTION WORKFLOW FLAGS\",\n\t\tShort: \"perform action on a node in a workflow\",\n\t\tExample: `# Set outputs to a node within a workflow:\n\n  argo node set my-wf --output-parameter parameter-name=\"Hello, world!\" --node-field-selector displayName=approve\n\n# Set the message of a node within a workflow:\n\n  argo node set my-wf --message \"We did it!\"\" --node-field-selector displayName=approve\n`,\n\t\tArgs: cobra.MinimumNArgs(2),\n\t\tRunE: func(cmd *cobra.Command, args []string) error {\n\t\t\tif args[0] != \"set\" {\n\t\t\t\treturn fmt.Errorf(\"unknown action '%s'\", args[0])\n\t\t\t}\n\n\t\t\toutputParameters := \"\"\n\t\t\tif len(setArgs.outputParameters) > 0 {\n\t\t\t\toutputParams := make(map[string]string)\n\t\t\t\tfor _, param := range setArgs.outputParameters {\n\t\t\t\t\tparts := strings.SplitN(param, \"=\", 2)\n\t\t\t\t\tif len(parts) != 2 {\n\t\t\t\t\t\treturn fmt.Errorf(\"expected parameter of the form: NAME=VALUE. Received: %s\", param)\n\t\t\t\t\t}\n\t\t\t\t\tunquoted, err := strconv.Unquote(parts[1])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\tunquoted = parts[1]\n\t\t\t\t\t}\n\t\t\t\t\toutputParams[parts[0]] = unquoted\n\t\t\t\t}\n\t\t\t\tres, err := json.Marshal(outputParams)\n\t\t\t\tif err != nil {","sourceCodeStart":22,"sourceCodeEnd":58,"githubUrl":"https://github.com/argoproj/argo-workflows/blob/35bff19146f5a6ada77468c431f2624bd577e373/cmd/argo/commands/node.go#L22-L58","documentation":"The `argo node` command only supports the `set` action; any other first positional argument is rejected with this error before any API call is made. It is a simple CLI-level argument check comparing args[0] against the literal string \"set\". The command's Usage line (`node ACTION WORKFLOW FLAGS`) accepts an ACTION placeholder, which can mislead users into trying other verbs.","triggerScenarios":"Running `argo node` with a first argument other than \"set\", e.g. `argo node get my-wf ...`, `argo node update my-wf ...`, or a typo like `argo node sett my-wf --message x`.","commonSituations":"Users assuming `argo node` has CRUD-style subcommands (get/update/delete) mirroring `argo res`; typos of `set`; copying commands written for other argo verbs.","solutions":["Use the only supported action: `argo node set WORKFLOW [flags]`.","For reading node info use `argo get WORKFLOW` instead of `argo node get`.","For stopping/resuming nodes use `argo stop`/`argo resume` with --node-field-selector."],"exampleFix":"// before\nargo node update my-wf --node-field-selector displayName=approve --message \"done\"\n// after\nargo node set my-wf --node-field-selector displayName=approve --message \"done\"","handlingStrategy":"validation","validationCode":"ACTION=$1; if [ \"$ACTION\" != \"set\" ]; then echo \"argo node only supports 'set'\"; exit 1; fi","typeGuard":"func isValidNodeAction(a string) bool { return a == \"set\" }","tryCatchPattern":null,"preventionTips":["Only use `argo node set WORKFLOW [flags]`.","Use `argo get`, `argo stop`, `argo resume` for other node operations.","Tab-complete the subcommand to avoid typos."],"tags":["cli","argo-cli","invalid-argument"],"backgroundTag":"unknown-subcommand","analyzedSha":"35bff19146f5a6ada77468c431f2624bd577e373","analyzedAt":"2026-09-03T19:34:35.908Z","contentChangedAt":"2026-09-03T19:34:35.908Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}