{"record":{"id":"3750aa742bb09ee8","repo":"hashicorp/vagrant","slug":"the-synced-folder-type-type-is-reporting-as-u","errorCode":null,"errorMessage":"The synced folder type '%{type}' is reporting as unusable for\nyour current setup. Please verify you have all the proper\nprerequisites for using this shared folder type and try again.","messagePattern":"The synced folder type '%(.+?)' is reporting as unusable for\nyour current setup\\. Please verify you have all the proper\nprerequisites for using this shared folder type and try again\\.","errorType":"exception","errorClass":"Vagrant::Errors::SyncedFolderUnusable","httpStatus":null,"severity":"error","filePath":"lib/vagrant/action/builtin/mixin_synced_folders.rb","lineNumber":149,"sourceCode":"            # Ignore disabled synced folders\n            next if data[:disabled]\n\n            impl = \"\"\n            impl = data[:type].to_sym if data[:type] && !data[:type].empty?\n\n            if impl != \"\"\n              impl_class = plugins[impl]\n              if !impl_class\n                # This should never happen because configuration validation\n                # should catch this case. But we put this here as an assert\n                raise \"Internal error. Report this as a bug. Invalid: #{data[:type]}\"\n              end\n\n              if !opts[:disable_usable_check]\n                if !impl_class[0].new.usable?(machine, true)\n                  # Verify that explicitly defined shared folder types are\n                  # actually usable.\n                  raise Errors::SyncedFolderUnusable, type: data[:type].to_s\n                end\n              end\n            end\n\n            # Get the data to store\n            data = data.dup\n            if root\n              # If these are the root synced folders (attached directly)\n              # to the Vagrantfile, then we mark it as such.\n              data[:__vagrantfile] = true\n            end\n\n            # Keep track of this shared folder by the implementation.\n            folders[impl] ||= {}\n            folders[impl][id] = data\n          end\n\n          # If we have folders with the \"default\" key, then determine the","sourceCodeStart":131,"sourceCodeEnd":167,"githubUrl":"https://github.com/hashicorp/vagrant/blob/35f3160f4ad6edc3a9f3aa9570adfc1a4d73aaa5/lib/vagrant/action/builtin/mixin_synced_folders.rb#L131-L167","documentation":"When a synced folder declares an explicit `type:` (nfs, rsync, smb, ...), Vagrant looks up the implementation plugin and calls `usable?(machine, true)`; if the implementation reports itself unusable on this host/guest combination, SyncedFolderUnusable is raised with that type. The usable? check encodes the prerequisites for the folder type (host tools, guest tools, platform support).","triggerScenarios":"Declaring e.g. `config.vm.synced_folder \".\", \"/vagrant\", type: \"nfs\"` on a host where NFS serving is unavailable, `type: \"rsync\"` without rsync on host or guest, or `type: \"smb\"` with missing credentials — anything where the chosen impl's usable? returns false (lib/vagrant/action/builtin/mixin_synced_folders.rb:144-151).","commonSituations":"NFS on Windows without vagrant-winnfsd; NFS on a Linux host without nfs-kernel-server running; rsync missing in a minimal guest box; SMB credentials not set; using a folder type the guest OS cannot mount (e.g. vboxsf on FreeBSD guests).","solutions":["Install the prerequisites for that folder type (e.g. `apt-get install nfs-kernel-server` on the host; install rsync on both host and guest; enable the SMB/WinNFSD components).","Or switch to a type that works everywhere: `type: \"rsync\"` is the portable fallback once rsync exists on host and guest.","Or disable the folder if you do not need it: `config.vm.synced_folder \".\", \"/vagrant\", disabled: true`."],"exampleFix":"# before (NFS unusable on this host)\nconfig.vm.synced_folder \".\", \"/vagrant\", type: \"nfs\"\n\n# after (portable)\nconfig.vm.synced_folder \".\", \"/vagrant\", type: \"rsync\",\n  rsync__exclude: \".git/\"\n# ensure: sudo apt-get install -y rsync   (host + guest)","handlingStrategy":"validation","validationCode":"# Verify the folder type's host prerequisites before `vagrant up`\ncase \"$FOLDER_TYPE\" in\n  rsync) command -v rsync >/dev/null || { echo \"install rsync on host\"; exit 1; } ;;\n  nfs)   command -v nfsd >/dev/null || command -v exportfs >/dev/null || { echo \"NFS server missing\"; exit 1; } ;;\nesac\nvagrant up","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Install folder-type prerequisites as part of environment bootstrap (rsync, nfs-kernel-server/WinNFSD, guest additions).","Use `type: \"rsync\"` as the cross-platform default when host/guest OS mix is uncertain.","Smoke-test with `vagrant reload --provision` after changing folder types to catch unusable combos early."],"tags":["vagrant","synced-folders","nfs","rsync","smb"],"backgroundTag":"missing-host-prerequisite","analyzedSha":"35f3160f4ad6edc3a9f3aa9570adfc1a4d73aaa5","analyzedAt":"2026-08-21T13:34:32.514Z","schemaVersion":2},"datasetVersion":"2026-08-21T18:17:14.833Z"}