{"record":{"id":"1f986794acbb861a","repo":"hashicorp/vagrant","slug":"there-are-no-push-strategies-named-name-plea","errorCode":null,"errorMessage":"There are no push strategies named '%{name}'. Please make sure you\nspelled it correctly. If you are using an external push strategy, you\nmay need to install a plugin. Loaded push strategies are:\n\n    %{pushes}","messagePattern":"There are no push strategies named '%(.+?)'\\. Please make sure you\nspelled it correctly\\. If you are using an external push strategy, you\nmay need to install a plugin\\. Loaded push strategies are:\n\n    %(.+?)","errorType":"exception","errorClass":"Vagrant::Errors::PushStrategyNotLoaded","httpStatus":null,"severity":"error","filePath":"lib/vagrant/environment.rb","lineNumber":706,"sourceCode":"    #\n    # Precondition: the push is not nil and exists.\n    def push(name, manager: Vagrant.plugin(\"2\").manager)\n      @logger.info(\"Getting push: #{name}\")\n\n      name = name.to_sym\n\n      pushes = self.vagrantfile.config.push.__compiled_pushes\n      if !pushes.key?(name)\n        raise Vagrant::Errors::PushStrategyNotDefined,\n          name: name,\n          pushes: pushes.keys\n      end\n\n      strategy, config = pushes[name]\n      push_registry = manager.pushes\n      klass, _ = push_registry.get(strategy)\n      if klass.nil?\n        raise Vagrant::Errors::PushStrategyNotLoaded,\n          name: strategy,\n          pushes: push_registry.keys\n      end\n\n      klass.new(self, config).push\n    end\n\n    # The list of pushes defined in this Vagrantfile.\n    #\n    # @return [Array<Symbol>]\n    def pushes\n      self.vagrantfile.config.push.__compiled_pushes.keys\n    end\n\n    # This returns a machine with the proper provider for this environment.\n    # The machine named by `name` must be in this environment.\n    #\n    # @param [Symbol] name Name of the machine (as configured in the","sourceCodeStart":688,"sourceCodeEnd":724,"githubUrl":"https://github.com/hashicorp/vagrant/blob/35f3160f4ad6edc3a9f3aa9570adfc1a4d73aaa5/lib/vagrant/environment.rb#L688-L724","documentation":"Raised as Vagrant::Errors::PushStrategyNotLoaded from Vagrant::Environment#push (lib/vagrant/environment.rb:706) when the name IS defined in the Vagrantfile's compiled pushes but manager.pushes.get(strategy) returns nil — the push strategy class is not in the plugin registry. I.e. the configuration references a strategy whose implementing plugin is not installed/loaded in this Vagrant.","triggerScenarios":"A Vagrantfile push block that uses a third-party strategy while the plugin providing it is absent — fresh machine without `vagrant plugin install`, after `vagrant plugin expunge`, or with plugin loading disabled — so the push registry lacks the strategy class even though the config compiles.","commonSituations":"Onboarding a new machine from a repo whose Vagrantfile pushes depend on a plugin; plugins removed during troubleshooting; version drift where the plugin was renamed and the Vagrantfile still references the old strategy.","solutions":["Install the plugin that implements the strategy: `vagrant plugin install <plugin-name>`","Check the \"Loaded push strategies\" list in the error to see what is actually available (built-ins include local_exec, ftp, heroku, atlas-style strategies depending on version)","If the plugin is unavailable, switch the Vagrantfile push to a loaded strategy","Verify with `vagrant plugin list` and re-run vagrant push"],"exampleFix":"# before\n$ vagrant push release   # strategy comes from a third-party push plugin, not installed\nPushStrategyNotLoaded: ... Loaded push strategies: local_exec, ftp\n\n# after\n$ vagrant plugin install vagrant-<push-plugin>\n$ vagrant push release","handlingStrategy":"try-catch","validationCode":"# Verify the strategy class is registered before pushing\nregistry = Vagrant.plugin(\"2\").manager.pushes\nstrategy, _cfg = env.vagrantfile.config.push.__compiled_pushes[name.to_sym]\nabort \"push plugin for :#{strategy} not loaded\" if registry.get(strategy).nil?","typeGuard":null,"tryCatchPattern":"begin\n  env.push(name)\nrescue Vagrant::Errors::PushStrategyNotLoaded => e\n  abort \"Install the plugin providing push '#{e.extra_data[:name]}'; loaded: #{Array(e.extra_data[:pushes]).join(', ')}\"\nend","preventionTips":["Document and script `vagrant plugin install` for every plugin your Vagrantfile pushes rely on","Prefer built-in strategies (local_exec, ftp) for portable projects","Run `vagrant plugin list` as a CI preflight when Vagrantfiles use third-party pushes"],"tags":["vagrant","push","plugin","deployment"],"backgroundTag":"plugin-not-installed","analyzedSha":"35f3160f4ad6edc3a9f3aa9570adfc1a4d73aaa5","analyzedAt":"2026-08-21T13:34:32.514Z","schemaVersion":2},"datasetVersion":"2026-08-21T18:17:14.833Z"}