Strange Jigasi exception when starting subtitles


we’ve got Jigasi working for subtitles with Google Cloud on our test machine. Now trying to replicate working config on another machine and got the following error:

java.lang.NullPointerException: Cannot invoke “org.jitsi.jigasi.AudioModeration.xmppProviderRegistered()” because the return value of “org.jitsi.jigasi.JvbConference.getAudioModeration()” is null

Full trace is below:

2021-11-11 15:54:20.161 INFO: [53] org.jitsi.jigasi.xmpp.CallControl.handleDialIq().195 [ctx=1636646060159166320016] Got dial request null → jitsi_meet_transcribe room:
2021-11-11 15:54:20.309 INFO: [53] org.jitsi.jigasi.JvbConference.start().484 [ctx=1636646060159166320016] Starting JVB conference room:
2021-11-11 15:54:20.317 INFO: [53] org.jitsi.jigasi.JvbConference.setXmppProvider().617 [ctx=1636646060159166320016] Using ProtocolProviderServiceJabberImpl(
2021-11-11 15:54:20.353 INFO: [56] org.igniterealtime.jbosh.BOSHClient.init() Starting with 1 request processors
2021-11-11 15:54:20.507 INFO: [56] impl.protocol.jabber.OperationSetBasicTelephonyJabberImpl.registrationStateChanged().127 Jingle : ON
2021-11-11 15:54:20.507 INFO: [56] org.jitsi.jigasi.JvbConference.registrationStateChanged().673 [ctx=1636646060159166320016] Registering XMPP.
2021-11-11 15:54:20.538 INFO: [56] impl.protocol.jabber.ProtocolProviderServiceJabberImpl.authenticated().2423 Authenticated: false
2021-11-11 15:54:20.538 SEVERE: [56] service.protocol.AbstractProtocolProviderService.fireRegistrationStateChanged().201 An error occurred while executing RegistrationStateChangeListener#registrationStateChanged(RegistrationStateChangeEvent) of org.jitsi.jigasi.JvbConference@7c79eb7c
java.lang.NullPointerException: Cannot invoke “org.jitsi.jigasi.AudioModeration.xmppProviderRegistered()” because the return value of “org.jitsi.jigasi.JvbConference.getAudioModeration()” is null
at org.jitsi.jigasi.JvbConference.registrationStateChanged(
2021-11-11 15:54:30.320 SEVERE: [53] org.jitsi.jigasi.xmpp.CallControlMucActivator.processIQInternal().626 [ctx=1636646060159166320016] Error processing RayoIq
java.lang.Exception: Fail to join muc!
at org.jitsi.jigasi.xmpp.CallControlMucActivator$WaitToJoinRoom.waitToJoinRoom(
at org.jitsi.jigasi.xmpp.CallControlMucActivator$DialIqHandler.setDialResponseAndRegisterHangUpHandler(
at org.jitsi.jigasi.xmpp.CallControlMucActivator$DialIqHandler.processIQInternal(
at org.jitsi.jigasi.xmpp.CallControlMucActivator$DialIqHandler.lambda$processIQ$0(
at java.base/java.util.concurrent.Executors$
at java.base/
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(
at java.base/java.util.concurrent.ThreadPoolExecutor$
at java.base/

Jigasi is installed on the same machine were jitsi is installed. We use hidden domain and custom username/password for jigasi. Login to MUC works because when we change password to a wrong value we see different exception (org.jivesoftware.smack.sasl.SASLErrorException: SASLError using SCRAM-SHA-1: not-authorized).

The above exception happens only when moderator starts subtitles. Jigasi has a fresh install on this server from jitsi repositories. Other jitsi packages were just updated too.

Would appreciate any directions where to look for the cause of this error in config files.

Thank you,

Yep, that was fixed yesterday in the latest build in unstable you can update to using that.

@damencho thanks for your reply! Could you please provide a hint how to install jigasi form the unstable branch? Shall we manually download a .deb package?


yeah if you have the stable stable/ just change it to unstable/

Forgot to ask: do we need only jigasi from unstable or every jitsi package from unstable?

With every such jitsi packages update we lose our customizations, like logo, favicon etc. Is there any way to preserve those between updates without creating a full source fork at github? Thanks!

Only jigasi from unstable, but seems there are more bugs in it about transcribers … We need to merge this fix: Fixes another NPE when audio moderation not found. by damencho · Pull Request #386 · jitsi/jigasi · GitHub and get that version.


@damencho thanks for the merges. We have tried the following build of jigasi from the unstable branch:


Jigasi boots and joins MUC correctly but when you try to start subtitles the following errors are logged:

2021-11-12 10:31:09.774 SEVERE: [108] Failed to build a graph for the given custom options.
2021-11-12 10:31:09.774 SEVERE: [108] Failed to realize:
2021-11-12 10:31:09.774 SEVERE: [108] Cannot build a flow graph with the customized options:
2021-11-12 10:31:09.775 SEVERE: [108] Unable to transcode format: LINEAR, 48000.0 Hz, 16-bit, Mono, LittleEndian, Signed
2021-11-12 10:31:09.775 SEVERE: [108] to: opus/rtp, 48000.0 Hz, Stereo
2021-11-12 10:31:09.775 SEVERE: [108] outputting to: raw.rtp
2021-11-12 10:31:09.775 SEVERE: [108] Unable to add customed codecs:
2021-11-12 10:31:09.775 SEVERE: [108] org.jitsi.impl.neomedia.audiolevel.AudioLevelEffect2@169bcb93
2021-11-12 10:31:09.776 SEVERE: [107] Error: Unable to realize

The full stack trace is here:

jigasi_1.1-214-g759029d-1.log (6.3 KB)

Do you have any ideas what else should be changed to make it working?

Thank you,

Hi @damencho ,

did you have chance to review the above exception? Older messages in this forum say that it may be related to native sound processing libraries not being found. But I’ve checked the libjitsimeet jar from jigasi unstable repo and those native libraries are included there.

Any ideas what is going on? Unfortunately, it is a true blocker for us.


Not really. You can enable translator mode and it will not do any transcoding and just pass too the transcriber service opus.


and try again