# getNumDrivers returns "NoDevice" after re-plugging last device

**URL:** https://qa.fmod.com/t/getnumdrivers-returns-nodevice-after-re-plugging-last-device/21742
**Category:** Unity
**Created:** [June 10, 2024, 11:54am UTC](https://qa.fmod.com/t/getnumdrivers-returns-nodevice-after-re-plugging-last-device/21742 "2024-06-10T11:54:02Z")
**Posts on this page:** 1
**Showing post:** 9

<div class="post-metadata">

### Author: ![li\_fmod](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/li_fmod/32/6577_2.png) [@li\_fmod](https://qa.fmod.com/u/li_fmod)
#### Post date: [March 11, 2026, 12:54am UTC](https://qa.fmod.com/t/getnumdrivers-returns-nodevice-after-re-plugging-last-device/21742/9 "2026-03-11T00:54:04Z")

</div>

Hi,

Thanks for sharing the code and logs.

Since Connor is away, I will continue with this support case.

I was able to reproduce this locally with a minimal Unity test. When the `DEVICELISTCHANGED` callback is registered, FMOD reports `NoSound Driver` after the last device is disabled, and it does not automatically switch back when the device becomes available again.

This matches the behavior described in the documentation:  
[https://www.fmod.com/docs/2.02/api/troubleshooting.html#my-audio-device-does-not-change-automatically](https://www.fmod.com/docs/2.02/api/troubleshooting.html#my-audio-device-does-not-change-automatically)

In this case the application needs to handle the device change itself (for example by selecting a driver again or reinitializing the system). If the callback is not registered, FMOD will normally handle device switching automatically.

There is also a related discussion here about handling device changes on Windows:

> [@FMOD.System.getDriver is unreliable after the default device is changed on Windows](https://qa.fmod.com/t/fmod-system-getdriver-is-unreliable-after-the-default-device-is-changed-on-windows/17294/6):
>
> This behavior is a result of registering for the FMOD\_SYSTEM\_CALLBACK\_DEVICELISTCHANGED callback, which overrides the default behavior. The value returned from System::getDriver is only updated when calling System::setDriver and by overriding the FMOD\_SYSTEM\_CALLBACK\_DEVICELISTCHANGED callback, FMOD no longer does this automatically, you will need to handle this in your callback.

Hope this helps!

---

_[View the full topic](https://qa.fmod.com/t/getnumdrivers-returns-nodevice-after-re-plugging-last-device/21742)._
