hashicorp/vagrant · warning

This will completely remove provider %{provider} with archit

Error message

This will completely remove provider %{provider} with architecture %{architecture}
on version %{version} from %{box} on Vagrant Cloud. This cannot be undone.

What it means

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'.

Source

Thrown at plugins/commands/cloud/provider/delete.rb:51

                help: opts.help.chomp
            end

            org, box_name = argv.first.split('/', 2)
            provider_name = argv[1]
            version = argv[2]
            architecture = argv[3]

            @client = client_login(@env)
            account = VagrantCloud::Account.new(
              custom_server: api_server_url,
              access_token: @client.token
            )

            if architecture.nil?
              architecture = select_provider_architecture(account, org, box_name, version, provider_name)
            end

            @env.ui.warn(I18n.t("cloud_command.provider.delete_warn",
              architecture: architecture, provider: provider_name, version: version, box: argv.first))

            if !options[:force]
              cont = @env.ui.ask(I18n.t("cloud_command.continue"))
              return 1 if cont.strip.downcase != "y"
            end

            delete_provider(org, box_name, version, provider_name, architecture, account, options)
          end

          def select_provider_architecture(account, org, box, version, provider)
            with_version(account: account, org: org, box: box, version: version) do |box_version|
              list = box_version.providers.map(&:architecture)
              return list.first if list.size == 1

              @env.ui.info(I18n.t("cloud_command.provider.delete_multiple_architectures",
                org: org, box_name: box, provider: provider))
              list.each do |provider_name|

View on GitHub (pinned to 35f3160f4a)

Solutions

  1. List before deleting: `vagrant cloud box show org/box` to get exact version/provider/architecture values.
  2. Pass the architecture explicitly as the 4th argument to skip the interactive selector, and use --force only after a dry verification.
  3. If the prompt stopped you, re-run and answer 'y', or add --force once you are sure.
  4. If you removed the wrong architecture, re-publish it with `vagrant cloud provider create ... --architecture <arch>` plus upload.

Example fix

# before
vagrant cloud provider delete myorg/app 1.0.0 virtualbox
# -> interactive architecture prompt, then [y/N] confirm

# after (fully specified, non-interactive)
vagrant cloud provider delete myorg/app 1.0.3 virtualbox arm64 --force
Defensive patterns

Strategy: validation

Validate before calling

# require all four arguments in wrappers around provider delete
[ $# -eq 4 ] || { echo "usage: cloud provider delete org/box VERSION PROVIDER ARCH" >&2; exit 2; }
# existence check first:
vagrant cloud box show "$1" | grep -q "$2/$3/$4" || { echo "no such provider entry" >&2; exit 1; }

Prevention

When it happens

Trigger: 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.

Common situations: 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.

Related errors


AI-assisted analysis of hashicorp/vagrant@35f3160f4a (2026-08-21). Data as JSON: /api/errors/245f3b75de378cba. Report an issue: GitHub.