{"record":{"id":"a8d96f52ed573716","repo":"hashicorp/vagrant","slug":"the-provider-provider-that-was-requested-to-b","errorCode":null,"errorMessage":"The provider '%{provider}' that was requested to back the machine\n'%{machine}' is reporting that it isn't usable on this system. The\nreason is shown below:\n\n%{message}","messagePattern":"The provider '%(.+?)' that was requested to back the machine\n'%(.+?)' is reporting that it isn't usable on this system\\. The\nreason is shown below:\n\n%(.+?)","errorType":"exception","errorClass":"Vagrant::Errors::ProviderNotUsable","httpStatus":null,"severity":"error","filePath":"lib/vagrant/vagrantfile.rb","lineNumber":159,"sourceCode":"            raise Errors::ProviderNotFoundSuggestion,\n              machine: name, provider: provider,\n              suggestion: provider.downcase, providers: providers_str\n          end\n\n          raise Errors::ProviderNotFound,\n            machine: name, provider: provider, providers: providers_str\n        end\n\n        if validate_provider\n          provider_cls     = provider_plugin[0]\n          provider_options = provider_plugin[1]\n          box_formats      = provider_options[:box_format] || provider\n\n          # Test if the provider is usable or not\n          begin\n            provider_cls.usable?(true)\n          rescue Errors::VagrantError => e\n            raise Errors::ProviderNotUsable,\n              machine: name.to_s,\n              provider: provider.to_s,\n              message: e.to_s\n          end\n        else\n          box_formats = provider\n        end\n      end\n\n      # Add the sub-machine configuration to the loader and keys\n      vm_config_key = \"#{object_id}_machine_#{name}\"\n      @loader.set(vm_config_key, sub_machine.config_procs)\n      keys << vm_config_key\n\n      # Load once so that we can get the proper box value\n      config, config_warnings, config_errors = @loader.load(keys)\n\n      # Track the original box so we know if we changed","sourceCodeStart":141,"sourceCodeEnd":177,"githubUrl":"https://github.com/hashicorp/vagrant/blob/35f3160f4ad6edc3a9f3aa9570adfc1a4d73aaa5/lib/vagrant/vagrantfile.rb#L141-L177","documentation":"Raised when the provider plugin is registered but its `usable?(true)` check raised - the provider itself reported it cannot run on this machine, and the original exception text is embedded as the message. This is an environment problem (missing hypervisor, unlicensed product, disabled feature), not a name-lookup problem.","triggerScenarios":"`--provider=virtualbox` with VirtualBox missing or an unsupported version; `--provider=hyperv` with the Hyper-V Windows feature disabled; `--provider=vmware_desktop` without a valid VMware license; `--provider=docker` with no reachable docker daemon.","commonSituations":"Fresh CI machines or new laptops without the hypervisor installed; macOS/Windows updates disabling virtualization; VirtualBox upgraded to a version the installed Vagrant does not yet support; expired VMware plugin license.","solutions":["Read the embedded provider message - it states exactly what is missing (VBoxManage not found, license required, feature disabled)","Install or enable the provider runtime (VirtualBox, VMware plus license, Hyper-V feature, docker daemon)","Verify the binary works standalone before retrying (e.g. `VBoxManage --version`, `docker info`)","Check version-compatibility notes between your Vagrant release and the provider (e.g. VirtualBox 7.x support landed in newer Vagrant)"],"exampleFix":"# before: VirtualBox not installed\nvagrant up --provider=virtualbox\n# error: provider virtualbox not usable: The 'VBoxManage' command ... not found\n\n# after\nsudo apt-get install virtualbox-7.1   # or: brew install --cask virtualbox\nvagrant up --provider=virtualbox","handlingStrategy":"validation","validationCode":"# bash: verify the provider runtime exists before vagrant up\ncase \"$PROVIDER\" in\n  virtualbox) VBoxManage --version >/dev/null 2>&1 || { echo 'install VirtualBox first'; exit 1; } ;;\n  docker)      docker info >/dev/null 2>&1 || { echo 'start the docker daemon'; exit 1; } ;;\nesac","typeGuard":"# Ruby: probe usability before loading machines\nbegin\n  provider_cls.usable?(false)\nrescue Vagrant::Errors::VagrantError => e\n  abort \"provider not usable: #{e.message}\"\nend","tryCatchPattern":"begin\n  env.cli(%w(up))\nrescue Vagrant::Errors::ProviderNotUsable => e\n  warn \"fix the provider runtime first: #{e.extra_data[:message]}\"\n  exit 1\nend","preventionTips":["Install the hypervisor as part of machine/CI bootstrap, not after the first failure","Verify the provider binary (`VBoxManage --version`, `docker info`) in setup scripts","Check Vagrant release notes for supported VirtualBox versions before upgrading either side","For VMware providers, confirm the plugin license is valid before CI runs"],"tags":["provider","environment","hypervisor","installation"],"backgroundTag":"runtime-dependency-missing","analyzedSha":"35f3160f4ad6edc3a9f3aa9570adfc1a4d73aaa5","analyzedAt":"2026-08-21T13:34:32.514Z","schemaVersion":2},"datasetVersion":"2026-08-21T18:17:14.833Z"}