{"record":{"id":"245f3b75de378cba","repo":"hashicorp/vagrant","slug":"this-will-completely-remove-provider-provider-w","errorCode":null,"errorMessage":"This will completely remove provider %{provider} with architecture %{architecture}\non version %{version} from %{box} on Vagrant Cloud. This cannot be undone.","messagePattern":"This will completely remove provider %(.+?) with architecture %(.+?)\non version %(.+?) from %(.+?) on Vagrant Cloud\\. This cannot be undone\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"plugins/commands/cloud/provider/delete.rb","lineNumber":51,"sourceCode":"                help: opts.help.chomp\n            end\n\n            org, box_name = argv.first.split('/', 2)\n            provider_name = argv[1]\n            version = argv[2]\n            architecture = argv[3]\n\n            @client = client_login(@env)\n            account = VagrantCloud::Account.new(\n              custom_server: api_server_url,\n              access_token: @client.token\n            )\n\n            if architecture.nil?\n              architecture = select_provider_architecture(account, org, box_name, version, provider_name)\n            end\n\n            @env.ui.warn(I18n.t(\"cloud_command.provider.delete_warn\",\n              architecture: architecture, provider: provider_name, version: version, box: argv.first))\n\n            if !options[:force]\n              cont = @env.ui.ask(I18n.t(\"cloud_command.continue\"))\n              return 1 if cont.strip.downcase != \"y\"\n            end\n\n            delete_provider(org, box_name, version, provider_name, architecture, account, options)\n          end\n\n          def select_provider_architecture(account, org, box, version, provider)\n            with_version(account: account, org: org, box: box, version: version) do |box_version|\n              list = box_version.providers.map(&:architecture)\n              return list.first if list.size == 1\n\n              @env.ui.info(I18n.t(\"cloud_command.provider.delete_multiple_architectures\",\n                org: org, box_name: box, provider: provider))\n              list.each do |provider_name|","sourceCodeStart":33,"sourceCodeEnd":69,"githubUrl":"https://github.com/hashicorp/vagrant/blob/35f3160f4ad6edc3a9f3aa9570adfc1a4d73aaa5/plugins/commands/cloud/provider/delete.rb#L33-L69","documentation":"Destructive-action warning from `vagrant cloud provider delete` (plugins/commands/cloud/provider/delete.rb). It resolves the architecture (from argv[3] or interactively via select_provider_architecture when multiple architectures exist for the provider), warns 'This will completely remove provider X with architecture Y on version V from B on Vagrant Cloud. This cannot be undone.', and unless --force was given prompts 'Do you wish to continue? [y/N]' returning exit 1 on anything but 'y'.","triggerScenarios":"Running `vagrant cloud provider delete org/box 1.0.0 virtualbox` (architecture omitted so the interactive selector may appear first) or with a 4th architecture argument, without --force; the deletion removes that provider/architecture entry from the version.","commonSituations":"Removing a botched arm64 upload while keeping amd64; the architecture argument being forgotten so the command hangs waiting for the interactive architecture prompt in scripts; deleting the last provider of a version and accidentally making the version un-downloadable.","solutions":["List before deleting: `vagrant cloud box show org/box` to get exact version/provider/architecture values.","Pass the architecture explicitly as the 4th argument to skip the interactive selector, and use --force only after a dry verification.","If the prompt stopped you, re-run and answer 'y', or add --force once you are sure.","If you removed the wrong architecture, re-publish it with `vagrant cloud provider create ... --architecture <arch>` plus upload."],"exampleFix":"# before\nvagrant cloud provider delete myorg/app 1.0.0 virtualbox\n# -> interactive architecture prompt, then [y/N] confirm\n\n# after (fully specified, non-interactive)\nvagrant cloud provider delete myorg/app 1.0.3 virtualbox arm64 --force","handlingStrategy":"validation","validationCode":"# require all four arguments in wrappers around provider delete\n[ $# -eq 4 ] || { echo \"usage: cloud provider delete org/box VERSION PROVIDER ARCH\" >&2; exit 2; }\n# existence check first:\nvagrant cloud box show \"$1\" | grep -q \"$2/$3/$4\" || { echo \"no such provider entry\" >&2; exit 1; }","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always pass architecture explicitly to avoid the hidden interactive selector in scripts.","Delete providers before versions before boxes — never the reverse order.","Keep published box files for one release so a mistaken delete can be re-uploaded."],"tags":["vagrant","vagrant-cloud","destructive-action","provider-delete","confirmation-prompt"],"backgroundTag":"destructive-action-confirmation","analyzedSha":"35f3160f4ad6edc3a9f3aa9570adfc1a4d73aaa5","analyzedAt":"2026-08-21T13:34:32.514Z","schemaVersion":2},"datasetVersion":"2026-08-21T18:17:14.833Z"}