hashicorp/vagrant · error · Vagrant::Errors::NetworkManagerNotInstalled
Vagrant was instructed to configure the %{device} network de
Error message
Vagrant was instructed to configure the %{device} network device to
be managed by NetworkManager. However, the configured guest VM does
not have NetworkManager installed. To fix this error please remove
the `nm_controlled` setting from local Vagrantfile. If NetworkManager
is required to manage the network devices, please use a box with
NetworkManager installed. What it means
Error "Vagrant was instructed to configure the %{device} network device to be managed by NetworkManager. However, the configured guest VM does not have NetworkManager installed. To fix this error please remove the `nm_controlled` setting from local Vagrantfile. If NetworkManager is required to manage the network devices, please use a box with NetworkManager installed." thrown in hashicorp/vagrant.
Source
Thrown at plugins/guests/alt/cap/configure_networks.rb:51
# Now check if the device is actively being managed by NetworkManager
nm_controlled = nm_controlled?(comm, network[:device])
end
if !extra_opts.key?(:nm_controlled)
extra_opts[:nm_controlled] = !!nm_controlled
end
extra_opts[:nm_controlled] = case extra_opts[:nm_controlled]
when true
"yes"
when false, nil
"no"
else
extra_opts[:nm_controlled].to_s
end
if extra_opts[:nm_controlled] == "yes" && !nmcli_installed
raise Vagrant::Errors::NetworkManagerNotInstalled, device: network[:device]
end
# Render a new configuration
template_options = extra_opts.merge(network)
# ALT expects netmasks to be in the CIDR notation, but users may
# specify IPV4 netmasks like "255.255.255.0". This magic converts
# the netmask to the proper value.
if template_options[:netmask] && template_options[:netmask].to_s.include?(".")
template_options[:netmask] = (32-Math.log2((IPAddr.new(template_options[:netmask], Socket::AF_INET).to_i^0xffffffff)+1)).to_i
end
options_entry = TemplateRenderer.render("guests/alt/network_#{network[:type]}", options: template_options)
# Upload the new configuration
options_remote_path = "/tmp/vagrant-network-entry-#{network[:device]}-#{Time.now.to_i}-#{i}"
ipv4_address_remote_path = "/tmp/vagrant-network-ipv4-address-entry-#{network[:device]}-#{Time.now.to_i}-#{i}"
ipv4_route_remote_path = "/tmp/vagrant-network-ipv4-route-entry-#{network[:device]}-#{Time.now.to_i}-#{i}"View on GitHub (pinned to 35f3160f4a)
When it happens
Trigger: Thrown at plugins/guests/alt/cap/configure_networks.rb:51 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of hashicorp/vagrant@35f3160f4a (2026-08-21).
Data as JSON: /api/errors/774ee20f34689228.
Report an issue: GitHub.