Turning on the microphone causes TypeError: this._vadEmitter is null

Hello everyone!
Please help me understand what kind of error happens in my application and how to fix it. The error occurs in firefox when a user joins a conference or turns on/off the microphone. It looks like this:
Uncaught (in promise) TypeError: this._vadEmitter is null
_startVADEmitter lib-jitsi-meet.min.js:10
addVADDetectionService lib-jitsi-meet.min.js:10
emit lib-jitsi-meet.min.js:1
_setActiveState lib-jitsi-meet.min.js:17
changeMuteState lib-jitsi-meet.min.js:17
_changeDetectorsMuteState lib-jitsi-meet.min.js:10
_vadInitTracker lib-jitsi-meet.min.js:10
promise callback*_trackMuteChanged lib-jitsi-meet.min.js:10
emit lib-jitsi-meet.min.js:1
_fireMuteChangeEvent lib-jitsi-meet.min.js:10
emit lib-jitsi-meet.min.js:1
_setMuted lib-jitsi-meet.min.js:10
promise callback*_setMuted lib-jitsi-meet.min.js:10
promise callback*_queueSetMuted lib-jitsi-meet.min.js:10
mute lib-jitsi-meet.min.js:10
…

And there is always a warning before this error:

2021-04-21T07:52:53.791Z [modules/detection/VADAudioAnalyser.js] <_trackAdded/this._vadInitTracker<>: Failed to start VADAudioAnalyser DOMException: AudioContext.createMediaStreamSource: Connecting AudioNodes from AudioContexts with different sample-rate is currently not supported.

I found that _procNodeSampleRate in TrackVADEmitter is 4096, but audioContext has a sample rate of 44100. Is it normal or unexpected behaviour?

Paging @andrei-gavrilescu

Hello everyone,

This issue has the same root cause described here.
TLDR the error shouldn’t affect the meeting experience in any way, fixing the actual problem can prove problematic, but until then we could disable VAD on Firefox.

How about we do that then? At least people wouldn’t be confused by the error.

Yup, will add a task for it.

2 Likes