On XBoxOne - Unity - Microphone disconnect leads to crash after assertion: 'state->mInstanceCount > 0' failed and flood of Error 30

On XBox - Microphone disconnect leads to crash after

[FMOD] assert : assertion: 'state->mInstanceCount > 0' failed
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:LogError(Object)

Followed by

[FMOD] AsyncManager::asyncThreadLoop : System::update returned error 28.
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:LogError(Object)

And a flood of the following error:

[FMOD] AsyncManager::asyncThreadLoop : System::update returned error 30.
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:LogError(Object)

This an intermittent crash and doesn’t happen consistently on mic disconnect, only sometimes. We are going through the certification process so this is very inportant.

Hello, has anyone had a similar issue or would be able to point me in the right direction? We are going through the certification process and it would be incredibly helpful to get to the bottom of this.

The first assert is caused by an instrument being stopped, the 28 error is an internal error that I can’t quite trace back to anything specific from your log and the last one is an invalid handle error, which I’m guessing is caused by the stopped instrument which has been cleaned up.
So far I haven’t been able to get a reproduction by playing and stopping instruments randomly while plugging and unplugging a headset into a controller- I will need some more information before attempting to reproduce your issue:

  • Can you please let me know your FMOD version?
  • Can you also please set your logging level in the FMOD Integration Settings to LOG, ensure API Error Logging is enabled, and send through the complete output you from a crash after removing the microphone?
  • Can you provide a code snippet of how you are using the microphone in your game? Just so I can get some context for a possible fix for you