{"record":{"id":"94259eeb4a42148a","repo":"hashicorp/vagrant","slug":"the-provider-provider-could-not-be-found-but","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\nDid you mean '%{suggestion}'?","messagePattern":"The provider '%(.+?)' could not be found, but was requested to\nback the machine '%(.+?)'\\. Please use a provider that exists\\.\n\nDid you mean '%(.+?)'\\?","errorType":"exception","errorClass":"Vagrant::Errors::ProviderNotFoundSuggestion","httpStatus":null,"severity":"error","filePath":"lib/vagrant/vagrantfile.rb","lineNumber":141,"sourceCode":"          name: name, provider: provider\n      end\n\n      provider_plugin  = nil\n      provider_cls     = nil\n      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,","sourceCodeStart":123,"sourceCodeEnd":159,"githubUrl":"https://github.com/hashicorp/vagrant/blob/35f3160f4ad6edc3a9f3aa9570adfc1a4d73aaa5/lib/vagrant/vagrantfile.rb#L123-L159","documentation":"Raised by VagrantFile#machine_config when the requested provider string does not exactly match a registered provider plugin, but a case-insensitive match does exist in the provider registry. Providers are registered as lowercase symbols (virtualbox, hyperv, ...), so `--provider VirtualBox` fails the exact lookup and this error offers the downcased name as a suggestion.","triggerScenarios":"`vagrant up --provider=VirtualBox`, `--provider Docker`, or API calls to machine_config/machine with a mixed-case provider string where the downcased name is registered in Vagrant.plugin(\"2\").manager.providers.","commonSituations":"Scripts or documentation written with human-cased provider names; provider strings taken from user input or environment variables without normalization; copy-paste from marketing names (VMware Fusion vs vmware_desktop is a different error - that is a true not-found).","solutions":["Use the suggestion printed in the message (the correct lowercase provider name)","Normalize provider strings to lowercase before passing them on the CLI or API","Quote the full flag value to avoid shell mangling: `--provider=virtualbox`"],"exampleFix":"# before\nvagrant up --provider=VirtualBox\n\n# after\nvagrant up --provider=virtualbox","handlingStrategy":"type-guard","validationCode":"# bash: normalize before invoking\nPROVIDER=\"${PROVIDER,,}\"   # bash 4+ lowercase\nvagrant up --provider=\"$PROVIDER\"","typeGuard":"# Ruby: exact-match a provider name after normalizing case\nKNOWN = Vagrant.plugin('2').manager.providers.to_hash.keys.map(&:to_s)\ndef valid_provider?(name)\n  KNOWN.include?(name.to_s.downcase)\nend","tryCatchPattern":null,"preventionTips":["Always pass provider names lowercase on the CLI and in scripts","Downcase provider strings coming from user input or env vars before use","Use --provider=value quoting to avoid shell word-splitting surprises"],"tags":["provider","plugin","case-sensitivity","typo"],"backgroundTag":"invalid-provider-name","analyzedSha":"35f3160f4ad6edc3a9f3aa9570adfc1a4d73aaa5","analyzedAt":"2026-08-21T13:34:32.514Z","schemaVersion":2},"datasetVersion":"2026-08-21T18:17:14.833Z"}