{"record":{"id":"f0d537d24624fca0","repo":"hashicorp/vagrant","slug":"shared-folders-that-puppet-requires-are-missing-on","errorCode":null,"errorMessage":"Shared folders that Puppet requires are missing on the virtual machine.\nThis is usually due to configuration changing after already booting the\nmachine. The fix is to run a `vagrant reload` so that the proper shared\nfolders will be prepared and mounted on the VM.","messagePattern":"Shared folders that Puppet requires are missing on the virtual machine\\.\nThis is usually due to configuration changing after already booting the\nmachine\\. The fix is to run a `vagrant reload` so that the proper shared\nfolders will be prepared and mounted on the VM\\.","errorType":"exception","errorClass":"VagrantPlugins::Puppet::Provisioner::PuppetError","httpStatus":null,"severity":"error","filePath":"plugins/provisioners/puppet/provisioner/puppet.rb","lineNumber":325,"sourceCode":"            if !data.chomp.empty?\n              @machine.ui.info(data.chomp)\n            end\n          end\n        end\n\n        def verify_shared_folders(folders)\n          folders.each do |folder|\n            @logger.debug(\"Checking for shared folder: #{folder}\")\n            if windows?\n              testcommand = \"Test-Path #{folder}\"\n              comm_opts = { shell: :powershell}\n            else\n              testcommand = \"test -d #{folder}\"\n              comm_opts = { sudo: true}\n            end\n\n            if !@machine.communicate.test(testcommand, comm_opts)\n              raise PuppetError, :missing_shared_folders\n            end\n          end\n        end\n\n        def windows?\n          @machine.config.vm.communicator == :winrm || @machine.config.vm.communicator == :winssh\n        end\n      end\n    end\n  end\nend\n","sourceCodeStart":307,"sourceCodeEnd":337,"githubUrl":"https://github.com/hashicorp/vagrant/blob/35f3160f4ad6edc3a9f3aa9570adfc1a4d73aaa5/plugins/provisioners/puppet/provisioner/puppet.rb#L307-L337","documentation":"Raised by the Puppet provisioner's verify_shared_folders: manifests/module paths are mounted into the guest and each is probed - `test -d` with sudo on POSIX guests, `Test-Path` via PowerShell on Windows guests (winrm/winssh). Any missing guest path aborts with the standard remedy: `vagrant reload` remounts the synced folder set. Puppet cannot proceed without its manifest/module files present in the guest.","triggerScenarios":"Puppet provisioning where manifests_path/modules_path changed in the Vagrantfile after boot, or where mounting failed (guest tools problems), so `test -d /tmp/vagrant-puppet-...` or `Test-Path` fails inside the VM.","commonSituations":"Editing puppet paths and running `vagrant provision` instead of reload; Guest Additions/open-vm-tools mismatch breaking mounts; Windows guests where the winrm shell lacks access to the mounted drive until reload; disabled default /vagrant sync.","solutions":["Run `vagrant reload --provision` to re-create and mount the synced folders","Fix guest tools if mounts fail at boot (vagrant-vbguest, open-vm-tools, or matching Parallels tools)","Verify the guest paths: `vagrant ssh -c 'ls /tmp/vagrant-puppet*'` (or `dir` via winrm)","Check no `config.vm.synced_folder` entry disables or overrides Puppet's folders"],"exampleFix":"# Terminal - before (after changing manifests_path/modules_path)\nvagrant provision   # -> missing_shared_folders\n\n# Terminal - after\nvagrant reload --provision","handlingStrategy":"validation","validationCode":"# Host pre-flight for puppet paths\n[puppet.manifests_path, puppet.module_path].flatten.compact.each do |p|\n  host_path = File.expand_path(p.to_s, __dir__)\n  abort \"Puppet path missing on host: #{host_path}\" unless Dir.exist?(host_path)\nend","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Run `vagrant reload --provision` after touching manifests_path/module_path or synced folders","On Windows guests, verify mounts via winrm (`Test-Path`) not just ssh, since verify uses PowerShell there","Keep guest tools matched to the provider so mounts succeed at boot"],"tags":["puppet","provisioning","vagrant","synced-folders","windows"],"backgroundTag":"shared-folder-not-mounted","analyzedSha":"35f3160f4ad6edc3a9f3aa9570adfc1a4d73aaa5","analyzedAt":"2026-08-21T13:34:32.514Z","schemaVersion":2},"datasetVersion":"2026-08-21T18:17:14.833Z"}