hashicorp/vagrant · error · VagrantPlugins::DockerProvider::Errors::HostVMCommunicatorNotReady
The Docker provider was able to bring up the host VM success
Error message
The Docker provider was able to bring up the host VM successfully
but the host VM is still reporting that SSH is unavailable. This
sometimes happens with certain providers due to bugs in the
underlying hypervisor, and can be fixed with a `vagrant reload`.
The ID for the host VM is shown below for convenience.
If this does not fix it, please verify that the host VM provider
is functional and properly configured.
Host VM ID: %{id} What it means
When the Docker provider runs containers inside a host VM (vagrant_vagrantfile/vagrant_machine configured, or the default where no local daemon exists), it brings the host VM up via action(:up) and then requires host_machine.communicate.ready?. If SSH on the host VM is still not reachable after the up action, HostVMCommunicatorNotReady is raised with the host VM ID - the provider blames hypervisor-level boot/SSH problems, not user config.
Source
Thrown at plugins/providers/docker/action/host_machine.rb:67
# Reload the machine so that if it was created while we didn't
# hold the lock, we'll see the updated state.
host_machine.reload
# See if the machine is ready already. If not, start it.
if host_machine.communicate.ready?
env[:machine].ui.detail(I18n.t("docker_provider.host_machine_ready"))
else
env[:machine].ui.detail(
I18n.t("docker_provider.host_machine_starting"))
env[:machine].ui.detail(" ")
host_machine.with_ui(proxy_ui) do
host_machine.action(:up)
end
# Verify communication is ready. If not, we have a problem.
if !host_machine.communicate.ready?
raise Errors::HostVMCommunicatorNotReady,
id: host_machine.id
end
end
end
end
end
end
end
View on GitHub (pinned to 35f3160f4a)
Solutions
- Run `vagrant reload` - the error message names this as the usual fix for hypervisor boot bugs
- Open the host VM console in its provider GUI (VirtualBox/Hyper-V) and confirm it actually boots to sshd
- Update the host VM box (`vagrant box update`) or pin a known-good version
- Free host CPU/RAM so the host VM is not starved during boot
Defensive patterns
Strategy: retry
Validate before calling
# preflight: host VM must be up and docker reachable before starting containers vagrant status | grep -q running || vagrant up docker info >/dev/null 2>&1 || echo 'docker unreachable - check host VM SSH'
Try / catch
begin machine.action(:up) rescue VagrantPlugins::DockerProvider::Errors::HostVMCommunicatorNotReady # one bounded retry: reload restarts the host VM's SSH path machine.provider.host_vm.action(:reload) machine.action(:up) end
Prevention
- Update the host VM box regularly so guest tools and SSH stay functional
- Avoid suspending the host VM between container runs
- Give the host enough CPU/RAM so SSH comes up within the boot window
When it happens
Trigger: Docker provider with a host VM where the backing hypervisor reports the machine up but guest SSH never becomes ready during the action: slow boot, broken guest additions/agent, or an SSH credential change in the host VM box.
Common situations: Slow or resource-starved hosts; outdated host VM boxes; hypervisor bugs (the error text itself recommends `vagrant reload`); host firewall/VPN blocking the SSH port.
Related errors
- A Docker command executed by Vagrant didn't complete success
- The configured host VM Vagrantfile could not be found. Pleas
- Warning: When using a remote Docker host, forwarded ports wi
- Multiple URLs for a box can't be specified when adding versi
- The box you're attempting to add has no available version th
AI-assisted analysis of hashicorp/vagrant@35f3160f4a (2026-08-21).
Data as JSON: /api/errors/393b536a005cc9b6.
Report an issue: GitHub.