hashicorp/vagrant · error · Vagrant::Errors::BoxNotFoundWithProvider
The box '%{name}' isn't installed for the provider '%{provid
Error message
The box '%{name}' isn't installed for the provider '%{provider}'.
Please double-check and try again. The installed providers for
the box are shown below:
%{providers} What it means
Raised by `vagrant box update --box <name> --provider <p>` when the box exists but is not installed for the requested provider (`!box_info[provider]`). The message lists the providers the box actually is installed for, sorted, so the mismatch is immediately visible.
Source
Thrown at plugins/commands/box/command/update.rb:84
box_info[box_provider] ||= Vagrant::Util::HashWithIndifferentAccess.new
box_info[box_provider][box_version] ||= []
box_info[box_provider][box_version].push(box_architecture.to_s).uniq!
end
if box_info.empty?
raise Vagrant::Errors::BoxNotFound, name: name.to_s
end
if !provider
if box_info.size > 1
raise Vagrant::Errors::BoxUpdateMultiProvider,
name: name.to_s,
providers: box_info.keys.map(&:to_s).sort.join(", ")
end
provider = box_info.keys.first
elsif !box_info[provider]
raise Vagrant::Errors::BoxNotFoundWithProvider,
name: name.to_s,
provider: provider.to_s,
providers: box_info.keys.map(&:to_s).sort.join(", ")
end
version = box_info[provider].keys.sort_by{ |v| Gem::Version.new(v) }.last
architecture_list = box_info[provider][version]
if !architecture
if architecture_list.size > 1
raise Vagrant::Errors::BoxUpdateMultiArchitecture,
name: name.to_s,
provider: provider.to_s,
version: version.to_s,
architectures: architecture_list.sort.join(", ")
end
architecture = architecture_list.firstView on GitHub (pinned to 35f3160f4a)
Solutions
- Use one of the providers listed in the message
- If you need the new provider, add the box for it: `vagrant box add <name> --provider <provider>`
- Verify with `vagrant box list` which providers are installed
Example fix
# before vagrant box update --box mybox --provider vmware_desktop # error: not installed for provider; installed: virtualbox # after vagrant box update --box mybox --provider virtualbox # or add the missing provider first vagrant box add mybox --provider vmware_desktop
Defensive patterns
Strategy: validation
Validate before calling
# bash: confirm the box is installed for the provider you pass
vagrant box list | awk -v b="$BOX" '$1==b {gsub(/[(),]/,"",$2); print $2}' | sort -u |
grep -qx "$PROVIDER" || { echo "$BOX not installed for $PROVIDER"; exit 1; }
vagrant box update --box "$BOX" --provider "$PROVIDER" Prevention
- Match the --provider value against `vagrant box list` before scripting updates
- When adopting a new hypervisor, `vagrant box add` for that provider first
- Treat the provider list in the error text as the source of truth, not memory
When it happens
Trigger: `vagrant box update --box mybox --provider vmware_desktop` when mybox is only installed for virtualbox; typo in the provider flag.
Common situations: Switching host platforms and assuming the box is present for the new provider; scripts copying a provider flag from another project.
Understand the failure class
Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.
Related errors
- The box '%{name}' does not exist. Please double check and tr
- You requested to update the box '%{name}'. This box has mult
- The box '%{name}' for the provider '%{provider}' isn't insta
- The box '%{name}' is not a versioned box. The box was added
- The box you attempted to add doesn't match the provider you
AI-assisted analysis of hashicorp/vagrant@35f3160f4a (2026-08-21).
Data as JSON: /api/errors/61922e085063f38d.
Report an issue: GitHub.