{"record":{"id":"5cc3052f56f3342d","repo":"argoproj/argo-workflows","slug":"failed-to-resume-s-w","errorCode":null,"errorMessage":"failed to resume %s: %w","messagePattern":"failed to resume (.+?): %w","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/argo/commands/resume.go","lineNumber":67,"sourceCode":"\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(resumeArgs.nodeFieldSelector)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"unable to parse node field selector '%s': %w\", resumeArgs.nodeFieldSelector, err)\n\t\t\t}\n\n\t\t\tfor _, wfName := range args {\n\t\t\t\t_, err := serviceClient.ResumeWorkflow(ctx, &workflowpkg.WorkflowResumeRequest{\n\t\t\t\t\tName:              wfName,\n\t\t\t\t\tNamespace:         namespace,\n\t\t\t\t\tNodeFieldSelector: selector.String(),\n\t\t\t\t})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn fmt.Errorf(\"failed to resume %s: %w\", wfName, err)\n\t\t\t\t}\n\t\t\t\tfmt.Printf(\"workflow %s resumed\\n\", wfName)\n\t\t\t}\n\t\t\treturn nil\n\t\t},\n\t}\n\tcommand.Flags().StringVar(&resumeArgs.nodeFieldSelector, \"node-field-selector\", \"\", \"selector of node to resume, eg: --node-field-selector inputs.parameters.myparam.value=abc\")\n\treturn command\n}\n","sourceCodeStart":49,"sourceCodeEnd":77,"githubUrl":"https://github.com/argoproj/argo-workflows/blob/35bff19146f5a6ada77468c431f2624bd577e373/cmd/argo/commands/resume.go#L49-L77","documentation":"After a valid selector is built, `argo resume` calls ResumeWorkflow for each named workflow; a server-side or transport failure for a given workflow is wrapped as `failed to resume <name>`. The underlying error may be a 404 (no such workflow), permission denied, or an already-running/completed workflow state issue reported by the controller.","triggerScenarios":"Running `argo resume my-wf` where the workflow does not exist in the namespace, the API server is unreachable, RBAC denies the resume, or the server rejects the operation (e.g. nothing to resume).","commonSituations":"Wrong namespace or kubeconfig context; workflow already completed; typo in workflow name; resuming multiple workflows where one fails mid-loop aborts the remaining ones.","solutions":["Check the workflow exists: `argo list -n <namespace> | grep <name>` or `argo get <name>`.","Verify namespace/context with `kubectl config current-context` and pass `-n <namespace>`.","Inspect the wrapped cause (%w) in the message for the actual API error and fix accordingly (RBAC, connectivity, state)."],"exampleFix":"// before\nargo resume my-wf            # wrong namespace\n// after\nargo resume my-wf -n argo    # correct namespace","handlingStrategy":"try-catch","validationCode":"argo get \"$WF\" -n \"$NS\" >/dev/null 2>&1 || { echo \"workflow $WF not found in $NS\"; exit 1; }","typeGuard":null,"tryCatchPattern":"err := cmd.Run()\nif err != nil && strings.HasPrefix(err.Error(), \"failed to resume \") {\n    var cause error\n    errors.As(err, &cause)\n    // inspect cause: 404 => wrong name/namespace, 403 => RBAC, state => workflow not suspendable\n}","preventionTips":["Verify workflow name and namespace before resuming.","Only suspended/paused workflows have something to resume.","Check kubeconfig context and RBAC (pods/workflows update permission)."],"tags":["cli","argo-cli","api-error","resume"],"backgroundTag":"workflow-api-request-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"}