Direct Answer
Vagrant does not automatically roll back to a previous binary when an upgrade fails, and the cache does not keep a restorable copy of the last executable. If the interrupted upgrade left a partial file in the cache while the installed binary remains intact, recovery is simply a matter of clearing the incomplete cache entry. If the installed binary itself was overwritten and no longer runs, you can avoid reinstalling only if the installer left a backup file such as vagrant.old or vagrant.bak beside it; otherwise, reinstalling through the original package manager or installer is required.
Confirmed Facts vs. Likely Explanation
Confirmed: Vagrant’s self-update process downloads the replacement binary into a cache directory and does not provide transactional rollback. The previously installed executable is normally left in place while the download is in progress. This behavior is well-established for recent Vagrant 2.x releases, though exact cache paths vary by installation method and version.
Likely explanation: Errors after an interrupted upgrade usually stem from partially downloaded cache files interfering with subsequent update or plugin commands, not from a corrupted binary. If the replacement step began before the interruption, however, the installed binary may be truncated.
Recovery Steps
-
Test the current executable:
vagrant -v
If it prints a version, the binary is intact. Skip to step 4.
-
If the command fails, look for a backup next to the binary:
ls -l /usr/bin/vagrant.* /usr/local/bin/vagrant.*
If vagrant.old or vagrant.bak exists, rename it to vagrant and re-run vagrant -v.
-
If no backup exists, reinstall Vagrant using your original installation method. Do not copy a partial file from the cache into the executable path.
-
Clear incomplete cache downloads:
rm -f ~/.vagrant.d/cache/* /var/cache/vagrant/*
Use the path that matches your installation; exact locations vary by version and install method.
Verification
vagrant -v reports a version number.
vagrant plugin list shows your expected plugins.
vagrant validate succeeds inside an existing project.
Caution
Reinstalling through a package manager can overwrite custom configuration under ~/.vagrant.d or /etc/vagrant.d. Back up boxes and configuration before manual binary operations.
Diagnostic Question
Does vagrant -v still succeed on the installed binary, or has the executable been replaced with a partial file? This determines whether cache cleanup alone is sufficient or whether you must restore a backup and reinstall.