hashicorp/vagrant · warning
cloud_command.box.show_filter_empty
Error message
cloud_command.box.show_filter_empty
What it means
Warning plus failure exit from `vagrant cloud box show` (plugins/commands/cloud/box/show.rb) when filter options (--providers, --architectures, --versions) reduce the provider list to empty. It prints 'No matches found for org/box' with the applied filters ('N/A' for unset ones) and returns status 1; it is distinct from a network/API failure, which goes through the rescue VagrantCloud::Error branch instead.
Source
Thrown at plugins/commands/cloud/box/show.rb:114
v.providers.any? { |p|
options[:architectures].include?(p.architecture)
}
}
else
item.providers.any? { |p|
options[:architectures].include?(p.architecture)
}
end
} if !Array(options[:architectures]).empty?
if !list.empty?
list.each do |b|
format_box_results(b, @env, options.slice(:providers, :architectures))
@env.ui.output("")
end
0
else
@env.ui.warn(I18n.t("cloud_command.box.show_filter_empty",
org: org,
box_name: box_name,
architectures: Array(options[:architectures]).empty? ? "N/A" : Array(options[:architectures]).join(", "),
providers: Array(options[:providers]).empty? ? "N/A" : Array(options[:providers]).join(", "),
versions: Array(options[:versions]).empty? ? "N/A" : Array(options[:versions]).join(", ")
))
1
end
end
rescue VagrantCloud::Error => e
@env.ui.error(I18n.t("cloud_command.errors.box.show_fail", org: org, box_name:box_name))
@env.ui.error(e.message)
1
end
end
end
end
endView on GitHub (pinned to 35f3160f4a)
Solutions
- First list unfiltered: `vagrant cloud box show org/box` to see which providers/architectures/versions actually exist.
- Correct the filter spelling to match the published values exactly (provider names and architecture strings are matched literally).
- Loosen the filter (drop --architectures or --providers) and filter client-side.
- In scripts, treat exit 1 with this warning as 'no match', not as a transport error, and branch accordingly.
Example fix
# before vagrant cloud box show myorg/base --providers virtualbox --architectures arm # -> No matches found ... exit 1 # after vagrant cloud box show myorg/base # inspect real values first vagrant cloud box show myorg/base --providers virtualbox --architectures arm64
Defensive patterns
Strategy: validation
Validate before calling
# discover real values before filtering
raw=$(vagrant cloud box show "$ORG/$BOX")
provider_exists=$(printf '%s' "$raw" | grep -c "$PROVIDER")
[ "$provider_exists" -gt 0 ] || { echo "provider $PROVIDER not published" >&2; exit 1; } Prevention
- Run unfiltered `vagrant cloud box show` first; copy exact provider/architecture/version strings.
- In scripts, distinguish exit 1-with-'No matches found' from API errors before retrying.
- Remember unset filters print as 'N/A' in the message — 'N/A' means you did not filter on that axis.
When it happens
Trigger: Running `vagrant cloud box show org/box --providers virtualbox --architectures arm` when no provider entry matches that provider+architecture combination; filtering by a version string that exists in the box but has no matching provider/architecture pair.
Common situations: Looking for ARM builds that were never published; typos in provider names ('vmware' vs 'vmware_desktop'); architecture filters (amd64 vs x86_64 naming) that mismatch how the publisher tagged entries; shell scripts assuming exit 0 means 'shown' and treating filter misses as API errors.
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
- This command was not invoked properly. The help for this com
- This command was not invoked properly. The help for this com
AI-assisted analysis of hashicorp/vagrant@35f3160f4a (2026-08-21).
Data as JSON: /api/errors/fcdcaf2cb14db5bd.
Report an issue: GitHub.