You start BetterJoy and Windows answers with a .NET error naming the ViGEmBus — users search for it as vigembusnotfoundexception — or the program opens but recognises nothing at all. Issue #194 is the archetype: the controller was plugged in, yet nothing was detected, and the trail led to the virtual bus driver underneath BetterJoy. That driver, ViGEmBus, is what creates the virtual Xbox 360 / DualShock 4 controllers that games actually see. If it is missing, half-installed, or never got its post-install reboot, BetterJoy has nothing to build on. Here is the clean repair path.
Why this exception appears
BetterJoy talks to ViGEmBus through its client library (Nefarius.ViGEm.Client.dll, in the program folder) when it starts and when it creates virtual controllers. The not-found exception is the library reporting that the bus driver itself is not present and running on the system. In practice that means one of four things: ViGEmBus was never installed (easy to do if you ran the .exe straight from the ZIP), the installer was interrupted, an older install is broken, or the machine was never rebooted after installing. Issue #578 — the startup crash dialog titled “Microsoft .NET Framework” — carries the same moral, and its thread title literally annotates the fix: remove and reinstall ViGEmBus.
The repair, step by step
- Get the current driver from a trustworthy source. Our download page links the official nefarius release. The current and final version is ViGEmBus 1.22.0; the project has been retired and archived by its author, which means 1.22.0 is the version to standardise on — and a strong reason to avoid random “driver updater” sites offering their own repacks.
- Remove the old install first if one exists. Settings → Apps → find the ViGEmBus entry → uninstall. If your only copy is the old MSI bundled inside the BetterJoy v7.1 ZIP (a 1.16-era driver), a standalone 1.22.0 install over the top usually works — the 1.22.0 release notes even describe running the installer twice to complete an in-place upgrade — but a clean remove-then-install removes doubt.
- Run the installer as a normal install and let it finish; do not interrupt it when the screen pauses.
- Reboot. This step is not optional. Bus drivers load at boot. The #194 pattern — everything installed, nothing detected — is what skipping the reboot looks like.
- Start BetterJoy again and connect a controller. The exception should be gone; confirm the virtual controller appears in
joy.cpl.
Check Device Manager if it still fails
As community practice, verify the driver is actually present: open Device Manager and look under System devices for the Nefarius Virtual Gamepad Emulation Bus entry. If it is missing entirely, the install did not take — repeat the install step and watch for errors. If it shows a warning icon, uninstall the device from Device Manager, reboot, and install 1.22.0 fresh.
One installer for every Windows PC
One less thing to get wrong: the final ViGEmBus release ships as a single installer covering x64, x86 and ARM64 (ViGEmBus_1.22.0_x64_x86_arm64.exe), with Windows 10 and 11 as its supported systems — you do not need to hunt for a per-architecture build the way the old MSI pair inside the BetterJoy ZIP (separate x64 and x86 files) required. If your repair attempt involved a file named like a per-version “setup” from a driver-download site rather than that single official asset, discard it and start the repair over with the real one; mismatched repacks are a recurring cause of “installed but still not found.”
The antivirus quarantine case
Driver installers occasionally get quarantined by security software because they load kernel components — check your antivirus history if the installer “completed” but the Device Manager entry never appeared. Restore the file only when it is the genuine installer you downloaded from the official release, and consider adding the installer to your AV’s allowlist for the reinstall. Never fix this by downloading the driver from a different, less accountable site; with a retired project, the official GitHub release is the only source we recommend.
What this error is not
It is not your controller, your Bluetooth, or your emulator. It also is not fixed by reinstalling BetterJoy itself — the program is fine; its foundation is missing. If the exception appears only after you removed a “unused driver” with a cleanup tool, that tool deleted ViGEmBus, and the same repair applies. Once the bus is back, work through the not-detected guide if a controller still does not appear, or the startup crash guide if the program itself still will not open. More fixes are indexed on the troubleshooting hub, and the correct first-run order is in the install guide.
FAQ
BetterJoy’s ZIP already includes a ViGEmBus installer. Why install 1.22.0 separately?
The bundled installer is an old 1.16-era build that has worked for many users, but it predates the final driver by years. If you hit the not-found exception, moving to the maintained-final 1.22.0 removes the old build as a variable.
ViGEmBus is “retired.” Is it still safe and usable?
Retired means no future updates, not broken: 1.22.0 remains the widely used final release on Windows 10 and 11. The practical caution from the author’s end-of-life notes is about the old auto-updater phoning a retired domain — another reason to install 1.22.0 (which removed the updater) rather than an ancient version.
The exception appears when I connect the controller, not at startup. Same fix?
Yes. The client library also touches the bus when a virtual controller is created, so a partially installed driver can survive until first use. Run the same remove–install–reboot repair.
