{"record":{"id":"69af13c8e9a17c6e","repo":"hashicorp/vagrant","slug":"the-provider-provider-could-not-be-found-but-69af13","errorCode":null,"errorMessage":"The provider '%{provider}' could not be found, but was requested to\nback the machine '%{machine}'. Please use a provider that exists.\n\nVagrant knows about the following providers: %{providers}","messagePattern":"The provider '%(.+?)' could not be found, but was requested to\nback the machine '%(.+?)'\\. Please use a provider that exists\\.\n\nVagrant knows about the following providers: %(.+?)","errorType":"exception","errorClass":"Vagrant::Errors::ProviderNotFound","httpStatus":null,"severity":"error","filePath":"lib/vagrant/vagrantfile.rb","lineNumber":146,"sourceCode":"      provider_options = {}\n      box_formats      = nil\n      if provider != nil\n        provider_plugin  = Vagrant.plugin(\"2\").manager.providers[provider]\n        if !provider_plugin && validate_provider\n          providers  = Vagrant.plugin(\"2\").manager.providers.to_hash.keys\n          if providers\n            providers_str = providers.join(', ')\n          else\n            providers_str = \"N/A\"\n          end\n\n          if providers.include? provider.downcase\n            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","sourceCodeStart":128,"sourceCodeEnd":164,"githubUrl":"https://github.com/hashicorp/vagrant/blob/35f3160f4ad6edc3a9f3aa9570adfc1a4d73aaa5/lib/vagrant/vagrantfile.rb#L128-L164","documentation":"Raised by VagrantFile#machine_config when the requested provider has no registered plugin at all and not even a case-insensitive match exists. The provider registry (Vagrant.plugin(\"2\").manager.providers) only holds built-in providers (virtualbox, hyperv, docker, ...) plus installed plugins, so third-party providers must be installed first. The message lists every provider Vagrant currently knows about.","triggerScenarios":"`vagrant up --provider=aws` (or libvirt, vmware, etc.) with the provider plugin gem absent; API calls to machine_config with an unregistered provider symbol while validate_provider is true.","commonSituations":"Third-party provider plugin (vagrant-libvirt, vagrant-aws, vagrant-vmware-desktop) not installed, or installed into a different Ruby/Vagrant installation than the one running; plugin fails to load silently at startup; plain typo in the provider name with no case-insensitive match.","solutions":["Install the provider plugin: `vagrant plugin install vagrant-<provider>` (e.g. vagrant-libvirt, vagrant-vmware-desktop)","Verify it is loaded with `vagrant plugin list`","If installed but still not found, run with VAGRANT_LOG=debug to see the plugin load failure","Otherwise switch to one of the providers listed in the message"],"exampleFix":"# before\nvagrant up --provider=libvirt\n# error: provider 'libvirt' could not be found\n\n# after\nvagrant plugin install vagrant-libvirt\nvagrant up --provider=libvirt","handlingStrategy":"validation","validationCode":"# bash: require the provider plugin before running vagrant up\nvagrant plugin list | grep -q \"^vagrant-$PROVIDER \" ||\n  vagrant plugin install \"vagrant-$PROVIDER\"","typeGuard":"# Ruby: check the provider registry before machine_config\nREGISTRY = Vagrant.plugin('2').manager.providers.to_hash.keys.map(&:to_s)\ndef provider_registered?(name)\n  REGISTRY.include?(name.to_s) || REGISTRY.include?(name.to_s.downcase)\nend","tryCatchPattern":null,"preventionTips":["Install provider plugins as a provisioning step of CI/teammate setup scripts","Verify `vagrant plugin list` output when a provider command suddenly fails after a Vagrant reinstall","Note that a Vagrant reinstall uses a fresh plugin set - reinstall providers afterwards"],"tags":["provider","plugin","not-found","installation"],"backgroundTag":"invalid-provider-name","analyzedSha":"35f3160f4ad6edc3a9f3aa9570adfc1a4d73aaa5","analyzedAt":"2026-08-21T13:34:32.514Z","schemaVersion":2},"datasetVersion":"2026-08-21T18:17:14.833Z"}