{"record":{"id":"393b536a005cc9b6","repo":"hashicorp/vagrant","slug":"the-docker-provider-was-able-to-bring-up-the-host","errorCode":null,"errorMessage":"The Docker provider was able to bring up the host VM successfully\nbut the host VM is still reporting that SSH is unavailable. This\nsometimes happens with certain providers due to bugs in the\nunderlying hypervisor, and can be fixed with a `vagrant reload`.\nThe ID for the host VM is shown below for convenience.\n\nIf this does not fix it, please verify that the host VM provider\nis functional and properly configured.\n\nHost VM ID: %{id}","messagePattern":"The Docker provider was able to bring up the host VM successfully\nbut the host VM is still reporting that SSH is unavailable\\. This\nsometimes happens with certain providers due to bugs in the\nunderlying hypervisor, and can be fixed with a `vagrant reload`\\.\nThe ID for the host VM is shown below for convenience\\.\n\nIf this does not fix it, please verify that the host VM provider\nis functional and properly configured\\.\n\nHost VM ID: %(.+?)","errorType":"exception","errorClass":"VagrantPlugins::DockerProvider::Errors::HostVMCommunicatorNotReady","httpStatus":null,"severity":"error","filePath":"plugins/providers/docker/action/host_machine.rb","lineNumber":67,"sourceCode":"\n          # Reload the machine so that if it was created while we didn't\n          # hold the lock, we'll see the updated state.\n          host_machine.reload\n\n          # See if the machine is ready already. If not, start it.\n          if host_machine.communicate.ready?\n            env[:machine].ui.detail(I18n.t(\"docker_provider.host_machine_ready\"))\n          else\n            env[:machine].ui.detail(\n              I18n.t(\"docker_provider.host_machine_starting\"))\n            env[:machine].ui.detail(\" \")\n            host_machine.with_ui(proxy_ui) do\n              host_machine.action(:up)\n            end\n\n            # Verify communication is ready. If not, we have a problem.\n            if !host_machine.communicate.ready?\n              raise Errors::HostVMCommunicatorNotReady,\n                id: host_machine.id\n            end\n          end\n        end\n      end\n    end\n  end\nend\n","sourceCodeStart":49,"sourceCodeEnd":76,"githubUrl":"https://github.com/hashicorp/vagrant/blob/35f3160f4ad6edc3a9f3aa9570adfc1a4d73aaa5/plugins/providers/docker/action/host_machine.rb#L49-L76","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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"],"exampleFix":null,"handlingStrategy":"retry","validationCode":"# preflight: host VM must be up and docker reachable before starting containers\nvagrant status | grep -q running || vagrant up\ndocker info >/dev/null 2>&1 || echo 'docker unreachable - check host VM SSH'","typeGuard":null,"tryCatchPattern":"begin\n  machine.action(:up)\nrescue VagrantPlugins::DockerProvider::Errors::HostVMCommunicatorNotReady\n  # one bounded retry: reload restarts the host VM's SSH path\n  machine.provider.host_vm.action(:reload)\n  machine.action(:up)\nend","preventionTips":["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"],"tags":["vagrant","docker","host-vm","ssh","hypervisor"],"backgroundTag":"ssh-connection-failed","analyzedSha":"35f3160f4ad6edc3a9f3aa9570adfc1a4d73aaa5","analyzedAt":"2026-08-21T13:34:32.514Z","schemaVersion":2},"datasetVersion":"2026-08-21T18:17:14.833Z"}