{"record":{"id":"3e81cc8e3613a779","repo":"pulumi/pulumi","slug":"editing-deployment-settings-requires-the-pulumi-cl","errorCode":null,"errorMessage":"editing deployment settings requires the Pulumi Cloud backend; run `pulumi login`","messagePattern":"editing deployment settings requires the Pulumi Cloud backend; run `pulumi login`","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/cmd/pulumi/deployment/deployment_settings_edit.go","lineNumber":296,"sourceCode":"\treturn cmd\n}\n\nfunc defaultDeploymentSettingsEditClientFactory(\n\tctx context.Context, stackFlag string,\n) (deploymentSettingsEditClient, client.StackIdentifier, error) {\n\tws := pkgWorkspace.Instance\n\topts := display.Options{Color: cmdutil.GetGlobalColorization()}\n\n\ts, err := cmdStack.RequireStack(ctx, cmdutil.Diag(), ws, cmdBackend.DefaultLoginManager,\n\t\tstackFlag, cmdStack.LoadOnly, opts, \"\")\n\tif err != nil {\n\t\treturn nil, client.StackIdentifier{}, fmt.Errorf(\"resolving stack: %w\", err)\n\t}\n\n\tcloudStack, ok := s.(httpstate.Stack)\n\tif !ok {\n\t\treturn nil, client.StackIdentifier{},\n\t\t\terrors.New(\"editing deployment settings requires the Pulumi Cloud backend; run `pulumi login`\")\n\t}\n\n\tref := cloudStack.Ref()\n\tproject := \"\"\n\tif p, ok := ref.Project(); ok {\n\t\tproject = string(p)\n\t}\n\tstackID := client.StackIdentifier{\n\t\tOwner:   cloudStack.OrgName(),\n\t\tProject: project,\n\t\tStack:   ref.Name(),\n\t}\n\n\tbe, ok := cloudStack.Backend().(httpstate.Backend)\n\tif !ok {\n\t\treturn nil, client.StackIdentifier{},\n\t\t\terrors.New(\"editing deployment settings requires the Pulumi Cloud backend; run `pulumi login`\")\n\t}","sourceCodeStart":278,"sourceCodeEnd":314,"githubUrl":"https://github.com/pulumi/pulumi/blob/793f7b2e160db4321fb7fb6b0607461e01cb251e/pkg/cmd/pulumi/deployment/deployment_settings_edit.go#L278-L314","documentation":"Editing deployment settings is a Pulumi Cloud (service) feature; the local filesystem, object-store, and DIY backends do not support the deployment-settings API. After resolving the stack, the code asserts the concrete stack type is httpstate.Stack; if it is not, this error is returned. It tells the user to re-login against the Pulumi Cloud backend.","triggerScenarios":"Running `pulumi deployment settings edit` while logged into `pulumi login --local`, a file:// or s3:// backend, or any non-cloud backend, so the resolved stack does not implement httpstate.Stack.","commonSituations":"CI environments configured with PULUMI_BACKEND_URL=s3://... or file://, developers who previously ran `pulumi login --local` in the same workspace, or self-hosted backends (e.g. local Pulumi services not exposing the API).","solutions":["Run `pulumi login` (no arguments) to log in to the Pulumi Cloud backend at app.pulumi.com","Alternatively set PULUMI_BACKEND_URL=https://api.pulumi.com and re-authenticate","Verify with `pulumi whoami` that you are on the Pulumi Cloud backend, not a local/file backend"],"exampleFix":"// before (terminal)\npulumi login --local\n// after (terminal)\npulumi login  # or: PULUMI_BACKEND_URL=https://api.pulumi.com pulumi login","handlingStrategy":"type-guard","validationCode":"// verify backend before running\nif pulumi whoami 2>&1 | grep -q 'file://'; then echo 'local backend in use'; fi","typeGuard":"cloudStack, ok := s.(httpstate.Stack)\nif !ok {\n  return errors.New(\"editing deployment settings requires the Pulumi Cloud backend; run `pulumi login`\")\n}","tryCatchPattern":"if err != nil && strings.Contains(err.Error(), \"Pulumi Cloud backend\") {\n  // run `pulumi login` programmatically or instruct the user\n}","preventionTips":["Never set PULUMI_BACKEND_URL to file:// or s3:// when editing deployment settings","Use `pulumi login` (cloud) in shared shells; `pulumi login --local` per-project shells","Check `pulumi whoami` output includes a cloud org, not a local path"],"tags":["cli","backend","pulumi-cloud"],"backgroundTag":"unsupported-backend","analyzedSha":"793f7b2e160db4321fb7fb6b0607461e01cb251e","analyzedAt":"2026-08-31T09:36:43.099Z","schemaVersion":2},"datasetVersion":"2026-08-31T14:17:45.589Z"}