Failed to start a Jibri session, no Jibris available

Hello, @damencho @bbaldino @saghul @Aaron_K_van_Meerten How are you?
You did great work. I got an error for Install Jitsi and Jibri on two different servers. Now I am using AWS Ubuntu 18.04. I don’t use any firewall. Please check the log and tell me how I can fix this error?

Jibri Log

2020-05-11 18:59:30.237 INFO: [1] org.jitsi.jibri.Main.main() Jibri run with args [–config, /etc/jitsi/jibri/config.json]
2020-05-11 18:59:30.243 INFO: [1] org.jitsi.jibri.Main.main() Using config file /etc/jitsi/jibri/config.json
2020-05-11 18:59:30.243 INFO: [1] org.jitsi.jibri.Main.main() Using port 3333 for internal HTTP API
2020-05-11 18:59:30.243 INFO: [1] org.jitsi.jibri.Main.main() Using port 2222 for the HTTP API
2020-05-11 18:59:30.886 INFO: [1] org.jitsi.jibri.Main.loadConfig() Parsed config:
JibriConfig(recordingDirectory=/recordings, singleUseMode=false, enabledStatsD=true, finalizeRecordingScriptPath=/path/to/finalize_recording.sh, xmppEnvironments=[XmppEnvironmentConfig(name=prod environment, xmppServerHosts=[classroom.beeclear.app], xmppDomain=classroom.beeclear.app, controlLogin=XmppCredentials(domain=auth.classroom.beeclear.app, username=jibri, password=@$w0rd), controlMuc=XmppMuc(domain=internal.auth.classroom.beeclear.app, roomName=JibriBrewery, nickname=jibri-nickname), sipControlMuc=null, callLogin=XmppCredentials(domain=recorder.classroom.beeclear.app, username=recorder, password=@$w0rd), stripFromRoomDomain=conference., usageTimeoutMins=0, trustAllXmppCerts=true)])
2020-05-11 18:59:31.473 WARNING: [1] org.glassfish.jersey.internal.inject.Providers.checkProviderRuntime() A provider org.jitsi.jibri.api.http.internal.InternalHttpApi registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider org.jitsi.jibri.api.http.internal.InternalHttpApi will be ignored.
2020-05-11 18:59:31.741 INFO: [1] org.jitsi.jibri.api.xmpp.XmppApi.updatePresence() Jibri reports its status is now JibriStatus(busyStatus=IDLE, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections
2020-05-11 18:59:31.743 INFO: [1] org.jitsi.xmpp.mucclient.MucClientManager.log() Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@5b989dc7
2020-05-11 18:59:31.749 INFO: [1] org.jitsi.jibri.api.xmpp.XmppApi.start() Connecting to xmpp environment on classroom.beeclear.app with config XmppEnvironmentConfig(name=prod environment, xmppServerHosts=[classroom.beeclear.app], xmppDomain=classroom.beeclear.app, controlLogin=XmppCredentials(domain=auth.classroom.beeclear.app, username=jibri, password=@$w0rd), controlMuc=XmppMuc(domain=internal.auth.classroom.beeclear.app, roomName=JibriBrewery, nickname=jibri-nickname), sipControlMuc=null, callLogin=XmppCredentials(domain=recorder.classroom.beeclear.app, username=recorder, password=@$w0rd), stripFromRoomDomain=conference., usageTimeoutMins=0, trustAllXmppCerts=true)
2020-05-11 18:59:31.750 INFO: [1] org.jitsi.jibri.api.xmpp.XmppApi.start() The trustAllXmppCerts config is enabled for this domain, all XMPP server provided certificates will be accepted
2020-05-11 18:59:31.778 WARNING: [19] org.jitsi.xmpp.mucclient.MucClient.log() Disabling certificate verification!
2020-05-11 18:59:31.861 WARNING: [1] org.glassfish.jersey.internal.inject.Providers.checkProviderRuntime() A provider org.jitsi.jibri.api.http.HttpApi registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider org.jitsi.jibri.api.http.HttpApi will be ignored.
2020-05-11 18:59:32.131 INFO: [19] org.jitsi.xmpp.mucclient.MucClient.log() [MucClient id=classroom.beeclear.app hostname=classroom.beeclear.app] connected
2020-05-11 18:59:32.192 SEVERE: [19] org.jitsi.xmpp.mucclient.MucClientManager.log() Failed to initialize and start a MucClient:
org.jivesoftware.smack.sasl.SASLErrorException: SASLError using SCRAM-SHA-1: not-authorized
at org.jivesoftware.smack.SASLAuthentication.authenticationFailed(SASLAuthentication.java:292)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1100)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPConnection.java:1000)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:1016)
at java.lang.Thread.run(Thread.java:748)
2020-05-11 19:00:01.791 WARNING: [28] org.jivesoftware.smackx.ping.PingManager.pingServerIfNecessary() XMPPConnection was not authenticated
2020-05-11 19:11:05.865 WARNING: [30] org.jivesoftware.smack.AbstractXMPPConnection.callConnectionClosedOnErrorListener() Connection XMPPTCPConnection[not-authenticated] (0) closed with error
org.jivesoftware.smack.XMPPException$StreamErrorException: system-shutdown You can read more about the meaning of this stream error at http://xmpp.org/rfcs/rfc6120.html#streams-error-conditions
stream:errorReceived SIGTERM</stream:error>
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1064)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPConnection.java:1000)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:1016)
at java.lang.Thread.run(Thread.java:748)
2020-05-11 19:11:05.865 INFO: [30] org.jitsi.xmpp.mucclient.MucClient.log() [MucClient id=classroom.beeclear.app hostname=classroom.beeclear.app] closed on error:
org.jivesoftware.smack.XMPPException$StreamErrorException: system-shutdown You can read more about the meaning of this stream error at http://xmpp.org/rfcs/rfc6120.html#streams-error-conditions
stream:errorReceived SIGTERM</stream:error>
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1064)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPConnection.java:1000)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:1016)
at java.lang.Thread.run(Thread.java:748)
2020-05-11 19:11:13.167 INFO: [33] org.jitsi.xmpp.mucclient.MucClient.log() [MucClient id=classroom.beeclear.app hostname=classroom.beeclear.app] connected
2020-05-11 19:11:13.206 INFO: [33] org.jitsi.xmpp.mucclient.MucClient.log() [MucClient id=classroom.beeclear.app hostname=classroom.beeclear.app] reconnection failed
2020-05-11 19:12:22.816 WARNING: [35] org.jivesoftware.smack.AbstractXMPPConnection.callConnectionClosedOnErrorListener() Connection XMPPTCPConnection[not-authenticated] (0) closed with error
org.jivesoftware.smack.XMPPException$StreamErrorException: system-shutdown You can read more about the meaning of this stream error at http://xmpp.org/rfcs/rfc6120.html#streams-error-conditions
stream:errorReceived SIGTERM</stream:error>
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1064)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPConnection.java:1000)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:1016)
at java.lang.Thread.run(Thread.java:748)
2020-05-11 19:12:22.816 INFO: [35] org.jitsi.xmpp.mucclient.MucClient.log() [MucClient id=classroom.beeclear.app hostname=classroom.beeclear.app] closed on error:
org.jivesoftware.smack.XMPPException$StreamErrorException: system-shutdown You can read more about the meaning of this stream error at http://xmpp.org/rfcs/rfc6120.html#streams-error-conditions
stream:errorReceived SIGTERM</stream:error>
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1064)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPConnection.java:1000)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:1016)
at java.lang.Thread.run(Thread.java:748)
2020-05-11 19:12:30.088 INFO: [36] org.jitsi.xmpp.mucclient.MucClient.log() [MucClient id=classroom.beeclear.app hostname=classroom.beeclear.app] connected
2020-05-11 19:12:30.117 INFO: [36] org.jitsi.xmpp.mucclient.MucClient.log() [MucClient id=classroom.beeclear.app hostname=classroom.beeclear.app] reconnection failed

Jicofo log

Jicofo 2020-05-11 19:43:18.014 INFO: [10] org.eclipse.jetty.server.handler.ContextHandler.doStart() Started o.e.j.s.ServletContextHandler@21f14c27{/,null,AVAILABLE}
Jicofo 2020-05-11 19:43:18.030 INFO: [10] org.eclipse.jetty.server.AbstractConnector.doStart() Started ServerConnector@3e94f153{HTTP/1.1,[http/1.1]}{0.0.0.0:8888}
Jicofo 2020-05-11 19:43:18.031 INFO: [10] org.eclipse.jetty.server.Server.doStart() Started @2023ms
Jicofo 2020-05-11 19:43:18.080 INFO: [10] org.jitsi.jicofo.health.Health.log() Internal health checks are disabled. No checks will be performed, but the REST API will always return 200.
Jicofo 2020-05-11 19:43:18.083 INFO: [10] org.jitsi.jicofo.health.Health.log() Performed a successful health check in PT0S. Sticky failure: false
Jicofo 2020-05-11 19:43:18.085 INFO: [10] org.jitsi.jicofo.health.Health.log() Started with interval=9223372036854775807, timeout=PT30S, maxDuration=PT20S, stickyFailures=false.
Jicofo 2020-05-11 19:43:18.086 INFO: [1] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() org.jitsi.jicofo.BRIDGE_MUC=JvbBrewery@internal.auth.classroom.beeclear.app
Jicofo 2020-05-11 19:43:18.086 INFO: [1] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() org.jitsi.jicofo.jibri.PENDING_TIMEOUT=90
Jicofo 2020-05-11 19:43:18.086 INFO: [1] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() org.jitsi.jicofo.jibri.BREWERY=JibriBrewery@internal.auth.classroom.beeclear.app
Jicofo 2020-05-11 19:43:18.092 INFO: [1] org.jitsi.xmpp.component.ComponentBase.log() Component org.jitsi.jicofo. config:
Jicofo 2020-05-11 19:43:18.092 INFO: [1] org.jitsi.xmpp.component.ComponentBase.log() ping interval: 10000 ms
Jicofo 2020-05-11 19:43:18.092 INFO: [1] org.jitsi.xmpp.component.ComponentBase.log() ping timeout: 5000 ms
Jicofo 2020-05-11 19:43:18.092 INFO: [1] org.jitsi.xmpp.component.ComponentBase.log() ping threshold: 3
Jicofo 2020-05-11 19:43:31.129 INFO: [44] org.jitsi.jicofo.xmpp.FocusComponent.handleConferenceIq().401 Focus request for room: rakibulinux@conference.classroom.beeclear.app
Jicofo 2020-05-11 19:43:31.137 INFO: [44] org.jitsi.jicofo.FocusManager.log() Created new focus for rakibulinux@conference.classroom.beeclear.app@auth.classroom.beeclear.app. Conference count 1,options:
Jicofo 2020-05-11 19:43:31.139 INFO: [44] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Joining the room: rakibulinux@conference.classroom.beeclear.app
Jicofo 2020-05-11 19:43:31.296 INFO: [28] org.jitsi.jicofo.ChatRoomRoleAndPresence.log() Chat room event ChatRoomMemberPresenceChangeEvent[type=MemberJoined sourceRoom=org.jitsi.impl.protocol.xmpp.ChatRoomImpl@76f15f26 member=ChatMember[rakibulinux@conference.classroom.beeclear.app/ad7d5caa, jid: null]@1218888511]
Jicofo 2020-05-11 19:43:31.299 INFO: [28] org.jitsi.jicofo.ChatRoomRoleAndPresence.log() Granted owner to rakibulinux@conference.classroom.beeclear.app/ad7d5caa
Jicofo 2020-05-11 19:43:31.300 INFO: [28] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Member rakibulinux@conference.classroom.beeclear.app/ad7d5caa joined.
Jicofo 2020-05-11 19:43:39.185 SEVERE: [29] org.jitsi.jicofo.recording.jibri.JibriSession.log() Unable to find an available Jibri, can’t start
Jicofo 2020-05-11 19:43:39.186 INFO: [29] org.jitsi.jicofo.recording.jibri.JibriRecorder.log() Failed to start a Jibri session, no Jibris available

JVB log

2020-05-11 19:49:12.144 INFO: [16] VideobridgeExpireThread.expire#144: Running expire()
2020-05-11 19:49:12.340 INFO: [18] Videobridge.createConference#320: create_conf, id=85d9ad006af0ba3 gid=null logging=false
2020-05-11 19:49:12.346 INFO: [18] AbstractHealthCheckService.run#171: Performed a successful health check in PT0.007S. Sticky failure: false
2020-05-11 19:49:22.339 INFO: [18] Videobridge.createConference#320: create_conf, id=d3eaf95ff5c135b1 gid=null logging=false
2020-05-11 19:49:22.385 INFO: [18] AbstractHealthCheckService.run#171: Performed a successful health check in PT0.046S. Sticky failure: false
2020-05-11 19:49:32.339 INFO: [18] Videobridge.createConference#320: create_conf, id=a66a93c1197a600e gid=null logging=false
2020-05-11 19:49:32.350 INFO: [18] AbstractHealthCheckService.run#171: Performed a successful health check in PT0.01S. Sticky failure: false
2020-05-11 19:49:42.340 INFO: [18] Videobridge.createConference#320: create_conf, id=b1a8882c84bebdca gid=null logging=false
2020-05-11 19:49:42.346 INFO: [18] AbstractHealthCheckService.run#171: Performed a successful health check in PT0.007S. Sticky failure: false
2020-05-11 19:49:52.340 INFO: [18] Videobridge.createConference#320: create_conf, id=886b02b8e0affd89 gid=null logging=false
2020-05-11 19:49:52.347 INFO: [18] AbstractHealthCheckService.run#171: Performed a successful health check in PT0.007S. Sticky failure: false

Prosody log

May 11 19:43:05 portmanager info Activated service ‘component’ on [127.0.0.1]:5347, [::1]:5347
May 11 19:43:05 conference.classroom.beeclear.app:muc_domain_mapper info Loading mod_muc_domain_mapper for host focus.classroom.beeclear.app!
May 11 19:43:06 mod_bosh info Client tried to use sid ‘f7ab3186-72c7-49b6-af53-7da8d1fa62b7’ which we don’t know about
May 11 19:43:12 jcp56261a46c1b0 info Incoming Jabber component connection
May 11 19:43:12 focus.classroom.beeclear.app:component info External component successfully authenticated
May 11 19:43:12 conference.classroom.beeclear.app:muc_domain_mapper warn Session filters applied
May 11 19:43:12 c2s56261a475aa0 info Client connected
May 11 19:43:12 c2s56261a475aa0 info Stream encrypted (TLSv1.2 with ECDHE-RSA-AES256-GCM-SHA384)
May 11 19:43:12 c2s56261a475aa0 info Authenticated as jvb@auth.classroom.beeclear.app
May 11 19:43:12 conference.classroom.beeclear.app:muc_domain_mapper warn Session filters applied
May 11 19:43:12 c2s56261a4b5680 info Client connected
May 11 19:43:12 c2s56261a4b5680 info Stream encrypted (TLSv1.2 with ECDHE-RSA-AES256-GCM-SHA384)
May 11 19:43:15 conference.classroom.beeclear.app:muc_domain_mapper warn Session filters applied
May 11 19:43:15 c2s56261a4c5fb0 info Client connected
May 11 19:43:15 c2s56261a4c5fb0 info Stream encrypted (TLSv1.2 with ECDHE-RSA-AES256-GCM-SHA384)
May 11 19:43:15 jcp56261a46c1b0 info component disconnected: focus.classroom.beeclear.app (false)
May 11 19:43:16 c2s56261a4c5fb0 info Client disconnected: closed
May 11 19:43:16 conference.classroom.beeclear.app:muc_domain_mapper warn Session filters applied
May 11 19:43:16 c2s56261a2664b0 info Client connected
May 11 19:43:17 c2s56261a2664b0 info Stream encrypted (TLSv1.2 with ECDHE-RSA-AES256-GCM-SHA384)
May 11 19:43:17 c2s56261a2664b0 info Authenticated as focus@auth.classroom.beeclear.app
May 11 19:43:17 focus.classroom.beeclear.app:component warn Component not connected, bouncing error for:
May 11 19:43:18 jcp56261a007af0 info Incoming Jabber component connection
May 11 19:43:18 focus.classroom.beeclear.app:component info External component successfully authenticated
May 11 19:43:29 conference.classroom.beeclear.app:muc_domain_mapper warn Session filters applied
May 11 19:43:29 mod_bosh info New BOSH session, assigned it sid ‘1f0681ab-a137-4fdc-8b3b-a504228d358f’
May 11 19:43:29 bosh1f0681ab-a137-4fdc-8b3b-a504228d358f info Authenticated as ad7d5caa-cdab-44c6-afc3-f0888f9296ac@classroom.beeclear.app

This is “cat /etc/jitsi/jibri/config.json”

{
// NOTE: this is a SAMPLE config file, it will need to be configured with
// values from your environment

// Where recording files should be temporarily stored
"recording_directory":"/recordings",
// The path to the script which will be run on completed recordings
"finalize_recording_script_path": "/path/to/finalize_recording.sh",
"xmpp_environments": [
    {
        // A friendly name for this environment which can be used
        //  for logging, stats, etc.
        "name": "prod environment",
        // The hosts of the XMPP servers to connect to as part of
        //  this environment
        "xmpp_server_hosts": [
            "classroom.beeclear.app"
        ],
        // The xmpp domain we'll connect to on the XMPP server
        "xmpp_domain": "classroom.beeclear.app",
        // Jibri will login to the xmpp server as a privileged user 
        "control_login": {
            // The domain to use for logging in
            "domain": "auth.classroom.beeclear.app",
            // The credentials for logging in
            "username": "jibri",
            "password": "@$w0rd"
        },
        // Using the control_login information above, Jibri will join 
        //  a control muc as a means of announcing its availability 
        //  to provide services for a given environment
        "control_muc": {
            "domain": "internal.auth.classroom.beeclear.app",
            "room_name": "JibriBrewery",
            "nickname": "jibri-nickname"
        },
        // All participants in a call join a muc so they can exchange
        //  information.  Jibri can be instructed to join a special muc
        //  with credentials to give it special abilities (e.g. not being
        //  displayed to other users like a normal participant)
        "call_login": {
            "domain": "recorder.classroom.beeclear.app",
            "username": "recorder",
            "password": "@$w0rd"
        },
        // When jibri gets a request to start a service for a room, the room
        //  jid will look like:
        //  roomName@optional.prefixes.subdomain.xmpp_domain
        // We'll build the url for the call by transforming that into:
        //  https://xmpp_domain/subdomain/roomName
        // So if there are any prefixes in the jid (like jitsi meet, which
        //  has its participants join a muc at conference.xmpp_domain) then
        //  list that prefix here so it can be stripped out to generate
        //  the call url correctly
        "room_jid_domain_string_to_strip_from_start": "conference.",
        // The amount of time, in minutes, a service is allowed to continue.
        //  Once a service has been running for this long, it will be
        //  stopped (cleanly).  A value of 0 means an indefinite amount
        //  of time is allowed
        "usage_timeout": "0"
    }
]

}

Console error
Logger.js:154 2020-05-11T19:43:39.084Z [JitsiMeetJS.js] <Object.getGlobalOnErrorHandler>: UnhandledError: null Script: null Line: null Column: null StackTrace:

just to confirm, did you open the port 5222 (for jibri instance) on jitsi instance?

Thanks for Quick replay

No, I didn’t open any port. How i can do this. I am not using any firewall my “ufw disable”

Regards

Since you are using AWS EC2 Instance, you have to open the port from your AWS Security groups.

From AWS EC2 i have allow all traffic. I follow this video: https://youtu.be/ukdTGVVcqE0

That is too dangerous.!

In which instance you have opened jitsi or jibri?
FYI: You should open on jitsi instance.

Is 5222 UDP port?

5222 port in on but same error

I installed jitsi on non-cloud kubernetes behind a NAT, everything works well except Jibri. Jibri is well installed but fails with every recording start. What can be done to solve this problem, an idea?
Thanks.

Hello, @sharath, are you there?
Please check my 5222 port from AWS EC2 is it okay? I see still it’s not connected.

I have fixed This problem.