hashicorp/vagrant · warning
vagrant.box_outdated
Error message
vagrant.box_outdated
What it means
Warning emitted by `vagrant box outdated` / `vagrant outdated` (plugins/commands/box/command/outdated.rb) after it fetches the box catalog metadata and metadata-compare (md.compatible_version_update?) reports that a newer version exists for the box's provider and architecture. It prints the current vs latest version ('* <name> for <provider> is outdated! Current: X. Latest: Y'). Note the numeric branch: when versions are integers it coerces with to_i, which can mis-compare unless-quoted versions.
Source
Thrown at plugins/commands/box/command/outdated.rb:97
next
end
box_versions = md.versions(provider: box.provider, architecture: box.architecture)
if box_versions.empty?
latest_box_version = box_versions.last.to_i
else
latest_box_version = box_versions.last
end
if !md.compatible_version_update?(box.version, latest_box_version, provider: box.provider, architecture: box.architecture)
@env.ui.success(I18n.t(
"vagrant.box_up_to_date",
name: box.name,
provider: box.provider,
version: box.version))
else
@env.ui.warn(I18n.t(
"vagrant.box_outdated",
name: box.name,
provider: box.provider,
current: box.version,
latest: latest_box_version.to_s,))
end
end
end
end
end
end
end
View on GitHub (pinned to 35f3160f4a)
Solutions
- Update the box: run `vagrant box update` in the project (or `vagrant box update --box <name>`) to pull the latest version.
- After updating, rebuild the machine to actually use it: `vagrant destroy && vagrant up` (or `vagrant box outdated --global` then prune).
- If you intentionally pin an older version, set a version constraint in the Vagrantfile (config.vm.box_version) so the check knows your target, and ignore the warning.
- Clean stale versions afterwards with `vagrant box prune` to reclaim disk space.
Example fix
# before
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/jammy64" # always floats to latest, warning reappears
end
# after (pinned)
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/jammy64"
config.vm.box_version = "20240101.0.0" # pin the version you test against
end Defensive patterns
Strategy: validation
Validate before calling
# Vagrantfile: pin the tested version so drift is intentional
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/jammy64"
config.vm.box_version = "20240101.0.0"
end Prevention
- Pin config.vm.box_version in projects that must not float.
- Schedule `vagrant box update && vagrant destroy && vagrant up` refresh cycles rather than acting on each warning.
- Run `vagrant box prune` after updates to remove the old versions the warning was about.
When it happens
Trigger: Running `vagrant box outdated` (or `vagrant outdated` which iterates machines) when the locally installed box version is lower than the latest version advertised in the box's catalog metadata URL for that provider/architecture.
Common situations: Routine drift: a base image team publishes 1.2.x while developers still have 1.1.x cached; boxes installed from a shrunken or custom catalog; version strings in the catalog stored unquoted so YAML parses them as integers and the comparison path differs.
Related errors
- This command was not invoked properly. The help for this com
- This command was not invoked properly. The help for this com
- This command was not invoked properly. The help for this com
- You requested to remove the box '%{name}' version '%{version
- The box you're attempting to add already exists. Remove it b
AI-assisted analysis of hashicorp/vagrant@35f3160f4a (2026-08-21).
Data as JSON: /api/errors/f13246506e0eba68.
Report an issue: GitHub.