{"record":{"id":"7bcee39a1e02ce3a","repo":"argoproj/argo-workflows","slug":"unable-to-parse-output-parameter-set-request-w","errorCode":null,"errorMessage":"unable to parse output parameter set request: %w","messagePattern":"unable to parse output parameter set request: %w","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"cmd/argo/commands/node.go","lineNumber":59,"sourceCode":"\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 {\n\t\t\t\t\treturn fmt.Errorf(\"unable to parse output parameter set request: %w\", err)\n\t\t\t\t}\n\t\t\t\toutputParameters = string(res)\n\t\t\t}\n\n\t\t\tctx := cmd.Context()\n\t\t\tctx, apiClient, err := client.NewAPIClient(ctx)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tserviceClient := apiClient.NewWorkflowServiceClient(ctx)\n\t\t\tnamespace := client.Namespace(ctx)\n\n\t\t\tselector, err := fields.ParseSelector(setArgs.nodeFieldSelector)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"unable to parse node field selector '%s': %w\", setArgs.nodeFieldSelector, err)\n\t\t\t}\n\n\t\t\t_, err = serviceClient.SetWorkflow(ctx, &workflowpkg.WorkflowSetRequest{","sourceCodeStart":41,"sourceCodeEnd":77,"githubUrl":"https://github.com/argoproj/argo-workflows/blob/35bff19146f5a6ada77468c431f2624bd577e373/cmd/argo/commands/node.go#L41-L77","documentation":"After parsing NAME=VALUE pairs into a map[string]string, the CLI serializes them to JSON with json.Marshal before sending a SetWorkflow request. json.Marshal on a map[string]string essentially never fails (even odd strings are escaped), so this error is effectively unreachable in practice, but it is wrapped with %w so any future marshal failure is reported this way.","triggerScenarios":"Theoretically, a failure of json.Marshal(outputParams) while building the output-parameters payload of `argo node set --output-parameter`.","commonSituations":"In practice never observed by users; map[string]string marshaling cannot fail with the current code. If seen, it indicates a corrupted or modified binary.","solutions":["Reinstall/upgrade the argo CLI to a stock binary.","Check for unsupported characters by simplifying the --output-parameter values.","Report to argo-workflows if reproducible with an official release."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"if err := cmd.Run(); err != nil {\n    var wrapped interface{ Unwrap() error }\n    if errors.As(err, &target) && strings.Contains(err.Error(), \"unable to parse output parameter set request\") {\n        // retry or report marshal failure\n    }\n}","preventionTips":["Keep values as plain strings; the CLI handles JSON escaping.","If this ever fires, suspect a non-standard/patched binary and reinstall the argo CLI.","Report reproducible cases upstream with the full command line."],"tags":["cli","argo-cli","json-marshal"],"backgroundTag":"json-serialization-failed","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"}