{"record":{"id":"4cd76e8cf7d39827","repo":"pulumi/pulumi","slug":"updating-environment-draft-w","errorCode":null,"errorMessage":"updating environment draft: %w","messagePattern":"updating environment draft: %w","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/cmd/esc/cli/env.go","lineNumber":490,"sourceCode":"\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"creating environment draft: %w\", err)\n\t\t}\n\t\tif !client.DiagnosticsHaveErrors(diags) {\n\t\t\tfmt.Fprintf(esc.stdout, \"Change request created: %v\\n\", changeRequestID)\n\t\t\tfmt.Fprintf(esc.stdout, \"Change request URL: %v\\n\", esc.changeRequestURL(ref, changeRequestID))\n\n\t\t\terr = esc.client.SubmitChangeRequest(ctx, ref.orgName, changeRequestID, nil)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"submitting change request: %w\", err)\n\t\t\t}\n\t\t\tfmt.Fprintln(esc.stdout, \"Change request submitted\")\n\t\t}\n\t\treturn diags, nil\n\t} else if draft != \"\" {\n\t\tchangeRequestID := draft\n\t\tdiags, err := esc.client.UpdateEnvironmentDraft(ctx, ref.orgName, ref.projectName, ref.envName, changeRequestID, yaml, tag) //nolint:lll\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"updating environment draft: %w\", err)\n\t\t}\n\t\tif !client.DiagnosticsHaveErrors(diags) {\n\t\t\tfmt.Fprintln(esc.stdout, \"Change request updated\")\n\t\t\tfmt.Fprintf(esc.stdout, \"Change request URL: %v\\n\", esc.changeRequestURL(ref, changeRequestID))\n\t\t}\n\t\treturn diags, nil\n\t} else {\n\t\tdiags, revision, err := esc.client.UpdateEnvironment(ctx, ref.orgName, ref.projectName, ref.envName, yaml, tag)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"updating environment definition: %w\", err)\n\t\t}\n\t\tif !client.DiagnosticsHaveErrors(diags) && envUpdateSuccessMessage != \"\" {\n\t\t\tfmt.Fprintf(esc.stdout, \"%s (revision %d)\\n\", envUpdateSuccessMessage, revision)\n\t\t}\n\t\treturn diags, nil\n\t}\n}\n","sourceCodeStart":472,"sourceCodeEnd":508,"githubUrl":"https://github.com/pulumi/pulumi/blob/793f7b2e160db4321fb7fb6b0607461e01cb251e/pkg/cmd/esc/cli/env.go#L472-L508","documentation":"updateEnvironment wraps errors from client.UpdateEnvironmentDraft with this message when updating an existing change-request draft identified by the --draft change-request ID. The underlying API call failed, so the YAML/tag changes were not applied to the draft.","triggerScenarios":"Running an env update with a draft/change-request ID specified, and UpdateEnvironmentDraft fails — invalid change request ID, draft not editable (already submitted), permissions, or network error.","commonSituations":"Passing a stale or already-submitted change request ID to --draft; typo in the change request number; insufficient permissions.","solutions":["Verify the change request ID is correct and still open (not yet submitted/merged)","Check the wrapped inner error for the API's reason","Confirm you have edit rights on that change request","Retry on transient errors"],"exampleFix":"// before\nesc env set env/proj/env key value --draft 42\n// after (verify draft is open)\n# open the change request URL to confirm ID 42 is still a draft\nesc env set org/proj/env key value --draft 42","handlingStrategy":"validation","validationCode":"// Go: verify the draft/change request ID exists and is still open before updating\n// (obtain open drafts via the change request URL or API listing)\nif !isOpenDraft(changeRequestID) {\n    return fmt.Errorf(\"change request %v is not an open draft\", changeRequestID)\n}","typeGuard":null,"tryCatchPattern":"// Go\n_, err := updateEnvironmentWithDraft(ctx, ref, draftID, yaml, tag)\nif err != nil && strings.Contains(err.Error(), \"updating environment draft\") {\n    return fmt.Errorf(\"draft update failed; verify the change request ID is open: %w\", err)\n}","preventionTips":["Confirm the change request ID is still a draft (not submitted)","Copy the ID from the Change request URL output to avoid typos","Check edit permissions on the change request"],"tags":["cli","change-request","api"],"backgroundTag":"api-call-failed","analyzedSha":"793f7b2e160db4321fb7fb6b0607461e01cb251e","analyzedAt":"2026-08-31T09:36:43.099Z","schemaVersion":2},"datasetVersion":"2026-09-01T08:17:40.651Z"}