Error when starting JVB using jvb.sh - Parameter specified as non-null is null: method org.jitsi.videobridge.rest.binders.ServiceBinder.<init>, parameter statsCollector

Hi everyone,
I’m trying to install Jitsi manually on an Ubuntu 18.04 server followed this tutorial: https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-manual.
Things seem go well as I could start a conference via browser. But it says “Unfortunately, something goes wrong” when one more person trying to join the room.

Checked the browser console and there’s an error:
CONFERENCE FAILED: conference.videobridgeNotAvailable.

The error is clearly! But I don’t know how to solve this. I tried to start jvb using this command:

./jvb.sh --host=localhost --domain=jitsimeet.mydomain.com --port=5347 --secret=XXXX --apis=xmpp,rest

After run the command, I see an exception throwed. Here’s the log:

2020-10-15 09:28:41.811 INFO: [1] JitsiConfig.<clinit>#46: Initialized newConfig: merge of system properties,system properties,reference.conf @ jar:file:/srv/jvb/jitsi-videobridge.jar!/reference.conf: 1,reference.conf @ jar:file:/srv/jvb/lib/ice4j-3.0-22-g67ffceb.jar!/reference.conf: 1,reference.conf @ jar:file:/srv/jvb/lib/jitsi-media-transform-1.0-198-g1babb83.jar!/reference.conf: 1
2020-10-15 09:28:41.828 INFO: [1] ReadOnlyConfigurationService.reloadConfiguration#40: net.java.sip.communicator.SC_HOME_DIR_LOCATION not set
2020-10-15 09:28:41.829 INFO: [1] JitsiConfig.<clinit>#67: Initialized legacyConfig: sip communicator props (no description provided)
2020-10-15 09:28:41.830 INFO: [1] JitsiConfig$Companion.reloadNewConfig#83: Reloading the Typesafe config source (previously reloaded 0 times).
2020-10-15 09:28:42.232 INFO: [10] org.ice4j.ice.harvest.MappingCandidateHarvesters.initialize: Using AwsCandidateHarvester.
2020-10-15 09:28:42.269 INFO: [10] org.ice4j.ice.harvest.AwsCandidateHarvester.obtainEC2Addresses: Detected AWS local IP: 172.31.5.56:9/udp
2020-10-15 09:28:42.269 INFO: [10] org.ice4j.ice.harvest.AwsCandidateHarvester.obtainEC2Addresses: Detected AWS public IP: 13.125.155.134:9/udp
2020-10-15 09:28:42.269 INFO: [10] org.ice4j.ice.harvest.MappingCandidateHarvesters.initialize: Using org.ice4j.ice.harvest.AwsCandidateHarvester, face=/172.31.5.56, mask=/13.125.155.134
2020-10-15 09:28:42.269 INFO: [10] org.ice4j.ice.harvest.MappingCandidateHarvesters.initialize: Initialized mapping harvesters (delay=412ms).  stunDiscoveryFailed=false
2020-10-15 09:28:42.337 INFO: [1] LastNReducer.<init>#60: LastNReducer with reductionScale: 0.75 recoverScale: 1.25 impactTime: PT1M minLastN: 0 maxEnforcedLastN: 40
2020-10-15 09:28:42.341 INFO: [1] TaskPools.<clinit>#81: TaskPools detected 2 processors, creating the CPU pool with that many threads
2020-10-15 09:28:42.367 INFO: [1] UlimitCheck.printUlimits#115: Running with open files limit 1048576 (hard 1048576), thread limit 15622 (hard 15622).
2020-10-15 09:28:42.368 INFO: [1] VideobridgeExpireThread.start#88: Starting with 60 second interval.
2020-10-15 09:28:42.369 INFO: [1] HealthChecker.start#118: Started with interval=10000, timeout=PT30S, maxDuration=PT3S, stickyFailures=false.
2020-10-15 09:28:42.507 WARNING: [1] MainKt.main#84: Statistics are not enabled, publishing updated presence will not work.
2020-10-15 09:28:42.511 INFO: [1] MainKt.main#101: Not starting CallstatsService, disabled in configuration.
2020-10-15 09:28:42.514 INFO: [1] MainKt.main#119: Not starting public http server
2020-10-15 09:28:42.515 INFO: [1] MainKt.main#128: Starting private http server
Exception in thread "main" java.lang.IllegalArgumentException: Parameter specified as non-null is null: method org.jitsi.videobridge.rest.binders.ServiceBinder.<init>, parameter statsCollector
	at org.jitsi.videobridge.rest.binders.ServiceBinder.<init>(ServiceBinder.kt)
	at org.jitsi.videobridge.rest.root.Application.<init>(Application.java:37)
	at org.jitsi.videobridge.MainKt.main(Main.kt:129)

Following are my configuration:
The sip-communicator.properties file:

org.jitsi.impl.neomedia.transform.srtp.SRTPCryptoContext.checkReplay=false
org.jitsi.videobridge.TCP_HARVESTER_PORT=4443

The config.js file:

var config = {
        // Connection
        hosts: {
            // XMPP domain.
            domain: 'jitsimeet.mydomain.com',

            // When using authentication, domain for guest users.
            // anonymousdomain: 'guest.example.com',

            // Domain for authenticated users. Defaults to <domain>.
            // authdomain: 'jitsi-meet.example.com',

            // Call control component (Jigasi).
            // call_control: 'callcontrol.jitsi-meet.example.com',

            // Focus component domain. Defaults to focus.<domain>.
            focus: 'focus.jitsimeet.mydomain.com',

            // XMPP MUC domain. FIXME: use XEP-0030 to discover it.
            muc: 'conference.jitsimeet.mydomain.com',
            bridge: 'jitsi-videobridge.jitsimeet.mydomain.com'
        },
        
        useNicks: false,

        // BOSH URL. FIXME: use XEP-0156 to discover it.
        bosh: '//jitsimeet.mydomain.com/http-bind',
....<the rest i left default>

The prosody configuration:

VirtualHost "jitsimeet.mydomain.com"
    authentication = "anonymous"
    ssl = {
        key = "/var/lib/prosody/jitsimeet.mydomain.com.key";
        certificate = "/var/lib/prosody/jitsimeet.mydomain.com.crt";
    }
    modules_enabled = {
        "bosh";
        "pubsub";
    }
    c2s_require_encryption = false
VirtualHost "auth.jitsimeet.mydomain.com"
    ssl = {
        key = "/var/lib/prosody/auth.jitsimeet.mydomain.com.key";
        certificate = "/var/lib/prosody/auth.jitsimeet.mydomain.com.crt";
    }
    authentication = "internal_hashed"
admins = { "focus@auth.jitsimeet.mydomain.com" }

Component "conference.jitsimeet.mydomain.com" "muc"
Component "jitsi-videobridge.jitsimeet.mydomain.com"
    component_secret = "V1D34_S3CR3T"
Component "focus.jitsimeet.mydomain.com"
    component_secret = "V1D34_S3CR3T"

Thank you for helping me on the problem!!

Thanks for the report. This occurs when stats are disabled, and there’s a PR for a fix here.

1 Like

My pleasure!
Thank you for fixing.