Failed to record meeting jitsi jibri, local kuberntes cluster

hello, I installed Jitsi with Jibri on local Kubernetes cluster in the same pod .
for the moment, I can start meeting and have multiple users but I can’t record any session and when I press the record button an error message appears “All recorders are currently busy”
I have this log on Jibri container:

Jibri 2022-08-11 10:29:48.206 FINE: [45] [hostname=localhost id=localhost] MucClient$3.handleIQRequest#503: Received an IQ with type set: IQ Stanza (jibri http://jitsi.org/protocol/jibri) [to=jibri@auth.meet.jitsi/DzpAhIKUk1wM,from=jibribrewery@internal-muc.meet.jitsi/focus,id=amlicmlAYXV0aC5tZWV0LmppdHNpL0R6cEFoSUtVazF3TQAySDdFOC0zMADlGd8LEQnCuw==,type=set,]
Jibri 2022-08-11 10:29:48.208 INFO: [45] XmppApi.handleJibriIq#230: Received JibriIq <iq xmlns='jabber:client' to='jibri@auth.meet.jitsi/DzpAhIKUk1wM' from='jibribrewery@internal-muc.meet.jitsi/focus' id='amlicmlAYXV0aC5tZWV0LmppdHNpL0R6cEFoSUtVazF3TQAySDdFOC0zMADlGd8LEQnCuw==' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' action='start' recording_mode='file' room='aaadade@muc.meet.jitsi' session_id='qupbndlrydpblgxl' app_data='{"file_recording_metadata":{"share":true}}'/></iq> from environment [MucClient id=localhost hostname=localhost]
Jibri 2022-08-11 10:29:48.210 INFO: [45] XmppApi.handleStartJibriIq#262: Received start request, starting service
Jibri 2022-08-11 10:29:48.272 INFO: [45] XmppApi.handleStartService#373: Parsed call url info: CallUrlInfo(baseUrl=192.168.0.155, callName=aaadade, urlParams=[])
Jibri 2022-08-11 10:29:48.273 INFO: [45] JibriManager.startFileRecording#138: Starting a file recording with params: FileRecordingRequestParams(callParams=CallParams(callUrlInfo=CallUrlInfo(baseUrl=192.168.0.155, callName=aaadade, urlParams=[]), email='', passcode=null, callStatsUsernameOverride=, displayName=), sessionId=qupbndlrydpblgxl, callLoginParams=XmppCredentials(domain=<no value>, port=null, username=recorder, password=*****))
Jibri 2022-08-11 10:29:48.285 SEVERE: [45] XmppApi.handleStartJibriIq#294: Error starting Jibri service 
java.lang.ExceptionInInitializerError
	at org.jitsi.jibri.service.impl.FileRecordingJibriService.<init>(FileRecordingJibriService.kt:108)
	at org.jitsi.jibri.service.impl.FileRecordingJibriService.<init>(FileRecordingJibriService.kt:102)
	at org.jitsi.jibri.JibriManager.startFileRecording(JibriManager.kt:139)
	at org.jitsi.jibri.api.xmpp.XmppApi.handleStartService(XmppApi.kt:377)
	at org.jitsi.jibri.api.xmpp.XmppApi.handleStartJibriIq(XmppApi.kt:269)
	at org.jitsi.jibri.api.xmpp.XmppApi.handleJibriIq(XmppApi.kt:237)
	at org.jitsi.jibri.api.xmpp.XmppApi.handleIq(XmppApi.kt:219)
	at org.jitsi.xmpp.mucclient.MucClient.handleIq(MucClient.java:541)
	at org.jitsi.xmpp.mucclient.MucClient.access$400(MucClient.java:51)
	at org.jitsi.xmpp.mucclient.MucClient$3.handleIQRequest(MucClient.java:504)
	at org.jivesoftware.smack.AbstractXMPPConnection$3.run(AbstractXMPPConnection.java:1565)
	at org.jivesoftware.smack.AbstractXMPPConnection$10.run(AbstractXMPPConnection.java:2143)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.nio.file.NoSuchFileException: <no value>/ffmpeg.0.txt.lck
	at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116)
	at java.base/sun.nio.fs.UnixFileSystemProvider.newFileChannel(UnixFileSystemProvider.java:182)
	at java.base/java.nio.channels.FileChannel.open(FileChannel.java:292)
	at java.base/java.nio.channels.FileChannel.open(FileChannel.java:345)
	at java.logging/java.util.logging.FileHandler.openFiles(FileHandler.java:512)
	at java.logging/java.util.logging.FileHandler.<init>(FileHandler.java:279)
	at org.jitsi.jibri.capture.ffmpeg.util.FfmpegFileHandler.<init>(FfmpegFileHandler.kt:26)
	at org.jitsi.jibri.capture.ffmpeg.FfmpegCapturer.<clinit>(FfmpegCapturer.kt:79)
	... 15 more

and this log on my jicofo container


Jicofo 2022-08-11 10:29:40.921 INFO: [39] ConferenceIqHandler.handleConferenceIq#63: Focus request for room: aaadade@muc.meet.jitsi
Jicofo 2022-08-11 10:29:40.931 INFO: [39] [room=aaadade@muc.meet.jitsi] JitsiMeetConferenceImpl.<init>#268: Created new conference.
Jicofo 2022-08-11 10:29:40.932 INFO: [39] [room=aaadade@muc.meet.jitsi] JitsiMeetConferenceImpl.joinTheRoom#452: Joining aaadade@muc.meet.jitsi
Jicofo 2022-08-11 10:29:41.082 WARNING: [30] org.jivesoftware.smack.util.PacketParserUtils.parsePresence: Failed to parse extension element in Presence stanza: PresenceBuilder(from='aaadade@muc.meet.jitsi/7a9215eb' to='focus@auth.meet.jitsi/focus' language='en' type='available' Extension Elements[{jabber:client}stats-id, {http://jabber.org/protocol/caps}c, {jabber:client}avatar-id])
java.lang.IllegalArgumentException: Nickname must be given
	at org.jivesoftware.smack.util.StringUtils.requireNotNullNorEmpty(StringUtils.java:551)
	at org.jivesoftware.smackx.nick.packet.Nick.<init>(Nick.java:49)
	at org.jivesoftware.smackx.nick.provider.NickProvider.parse(NickProvider.java:34)
	at org.jivesoftware.smackx.nick.provider.NickProvider.parse(NickProvider.java:28)
	at org.jivesoftware.smack.provider.Provider.parse(Provider.java:53)
	at org.jivesoftware.smack.util.PacketParserUtils.parseExtensionElement(PacketParserUtils.java:834)
	at org.jivesoftware.smack.util.PacketParserUtils.parsePresence(PacketParserUtils.java:477)
	at org.jivesoftware.smack.util.PacketParserUtils.parseStanza(PacketParserUtils.java:115)
	at org.jivesoftware.smack.AbstractXMPPConnection.parseAndProcessStanza(AbstractXMPPConnection.java:1457)
	at org.jivesoftware.smack.tcp.XMPPTCPConnection.access$1000(XMPPTCPConnection.java:130)
	at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:969)
	at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$700(XMPPTCPConnection.java:913)
	at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:936)
	at java.base/java.lang.Thread.run(Thread.java:829)
Jicofo 2022-08-11 10:29:41.084 INFO: [32] [room=aaadade@muc.meet.jitsi meeting_id=51f76b07-7703-4afc-a9e3-087fefb36854] JitsiMeetConferenceImpl.onMemberJoined#599: Member joined:7a9215eb
Jicofo 2022-08-11 10:29:41.086 INFO: [32] AutoOwnerRoleManager.electNewOwner#106: Electing new owner: ChatMember[aaadade@muc.meet.jitsi/7a9215eb, jid: null]@272964521
Jicofo 2022-08-11 10:29:41.089 WARNING: [30] org.jivesoftware.smack.util.PacketParserUtils.parsePresence: Failed to parse extension element in Presence stanza: PresenceBuilder(from='aaadade@muc.meet.jitsi/7a9215eb' to='focus@auth.meet.jitsi/focus' language='en' type='available' Extension Elements[{jabber:client}stats-id, {http://jabber.org/protocol/caps}c, {jabber:client}avatar-id])
java.lang.IllegalArgumentException: Nickname must be given
	at org.jivesoftware.smack.util.StringUtils.requireNotNullNorEmpty(StringUtils.java:551)
	at org.jivesoftware.smackx.nick.packet.Nick.<init>(Nick.java:49)
	at org.jivesoftware.smackx.nick.provider.NickProvider.parse(NickProvider.java:34)
	at org.jivesoftware.smackx.nick.provider.NickProvider.parse(NickProvider.java:28)
	at org.jivesoftware.smack.provider.Provider.parse(Provider.java:53)
	at org.jivesoftware.smack.util.PacketParserUtils.parseExtensionElement(PacketParserUtils.java:834)
	at org.jivesoftware.smack.util.PacketParserUtils.parsePresence(PacketParserUtils.java:477)
	at org.jivesoftware.smack.util.PacketParserUtils.parseStanza(PacketParserUtils.java:115)
	at org.jivesoftware.smack.AbstractXMPPConnection.parseAndProcessStanza(AbstractXMPPConnection.java:1457)
	at org.jivesoftware.smack.tcp.XMPPTCPConnection.access$1000(XMPPTCPConnection.java:130)
	at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:969)
	at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$700(XMPPTCPConnection.java:913)
	at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:936)
	at java.base/java.lang.Thread.run(Thread.java:829)
Jicofo 2022-08-11 10:29:48.196 INFO: [31] [room=aaadade@muc.meet.jitsi meeting_id=51f76b07-7703-4afc-a9e3-087fefb36854] BaseJibri.handleJibriRequest#75: Accepted jibri request: <iq xmlns='jabber:client' to='focus@auth.meet.jitsi/focus' from='aaadade@muc.meet.jitsi/7a9215eb' id='Zm9jdXNAYXV0aC5tZWV0LmppdHNpL2ZvY3VzADdhYzQ5ZmJjLWJlNjMtNGEzZi05NjhiLWRhY2VmYmU3MjZmMDpzZW5kSVEAGws+08xU5w8=' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' action='start' recording_mode='file' app_data='{"file_recording_metadata":{"share":true}}'/></iq>
Jicofo 2022-08-11 10:29:48.201 INFO: [39] [room=aaadade@muc.meet.jitsi meeting_id=51f76b07-7703-4afc-a9e3-087fefb36854] JibriSession.startInternal#319: Starting session with Jibri jibribrewery@internal-muc.meet.jitsi/jibri
Jicofo 2022-08-11 10:29:48.203 INFO: [39] [room=aaadade@muc.meet.jitsi meeting_id=51f76b07-7703-4afc-a9e3-087fefb36854] JibriSession.sendJibriStartIq#473: Starting Jibri jibribrewery@internal-muc.meet.jitsi/jibri for stream ID: null in room: aaadade@muc.meet.jitsi
Jicofo 2022-08-11 10:29:48.287 SEVERE: [39] [room=aaadade@muc.meet.jitsi meeting_id=51f76b07-7703-4afc-a9e3-087fefb36854] JibriSession.sendJibriStartIq#532: Unexpected status received in response to the start IQ: <iq xmlns='jabber:client' to='focus@auth.meet.jitsi/focus' from='jibribrewery@internal-muc.meet.jitsi/jibri' id='2H7E8-30' type='result'><jibri xmlns='http://jitsi.org/protocol/jibri' status='off' failure_reason='error' should_retry='true'/></iq>
Jicofo 2022-08-11 10:29:48.288 SEVERE: [39] [room=aaadade@muc.meet.jitsi meeting_id=51f76b07-7703-4afc-a9e3-087fefb36854] JibriSession.startInternal#325: Failed to send start Jibri IQ: org.jitsi.jicofo.jibri.JibriSession$StartException$UnexpectedResponse: Unexpected response
org.jitsi.jicofo.jibri.JibriSession$StartException$UnexpectedResponse: Unexpected response
	at org.jitsi.jicofo.jibri.JibriSession.sendJibriStartIq(JibriSession.java:536)
	at org.jitsi.jicofo.jibri.JibriSession.startInternal(JibriSession.java:321)
	at org.jitsi.jicofo.jibri.JibriSession.start(JibriSession.java:285)
	at org.jitsi.jicofo.jibri.JibriRecorder.handleStartRequest(JibriRecorder.kt:112)
	at org.jitsi.jicofo.jibri.BaseJibri.doHandleIQRequest(BaseJibri.kt:170)
	at org.jitsi.jicofo.jibri.BaseJibri.incomingIqQueue$lambda-0(BaseJibri.kt:56)
	at org.jitsi.utils.queue.PacketQueue$HandlerAdapter.handleItem(PacketQueue.java:416)
	at org.jitsi.utils.queue.AsyncQueueHandler$1.run(AsyncQueueHandler.java:136)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Jicofo 2022-08-11 10:29:48.288 INFO: [39] JibriDetector.instanceFailed#88: Instance failed: jibribrewery@internal-muc.meet.jitsi/jibri. Will not be selected for the next PT1M
Jicofo 2022-08-11 10:29:48.289 SEVERE: [39] [room=aaadade@muc.meet.jitsi meeting_id=51f76b07-7703-4afc-a9e3-087fefb36854] JibriSession.startInternal#307: Unable to find an available Jibri, can't start
Jicofo 2022-08-11 10:29:48.289 INFO: [39] [room=aaadade@muc.meet.jitsi meeting_id=51f76b07-7703-4afc-a9e3-087fefb36854] JibriRecorder.handleStartRequest#120: Failed to start a Jibri session, all Jibris were busy

I appreciate any help
thank you

Did you set anything for JIBRI_INSTANCE_ID or did the container generate one? Check the generated config file /etc/jitsi/jibri/jibri.conf inside the container.

this is my jibri.conf inside my container


jibri {
    // A unique identifier for this Jibri
    id = "jibri"

    api {
      xmpp {
        // See example_xmpp_envs.conf for an example of what is expected here
        environments = [

            {
                // A user-friendly name for this environment
                name = "<no value>-0"
    
                // A list of XMPP server hosts to which we'll connect
                xmpp-server-hosts = [ 
                    "localhost"
                ]
    
                // The base XMPP domain
                xmpp-domain = "meet.jitsi"

                // An (optional) base url the Jibri will join if it is set
                base-url = "192.168.0.155"
                // The MUC we'll join to announce our presence for
                // recording and streaming services
                control-muc {
                    domain = "internal-muc.meet.jitsi"
                    room-name = "jibribrewery"
                    nickname = "jibri"
                }
    
                // The login information for the control MUC
                control-login {
                    domain = "auth.meet.jitsi"
                    port = "5222"
                    username = "jibri"
                    password = "3e25ad925fb9418f750f22acd41064ed"
                }

                // The login information the selenium web client will use
                call-login {
                    domain = "<no value>"
                    username = "recorder"
                    password = "66637aafca9bfb11bdc2d6f33f8cb73a"
                }
                
                // The value we'll strip from the room JID domain to derive
                // the call URL
                strip-from-room-domain = "muc."
    
                // How long Jibri sessions will be allowed to last before
                // they are stopped.  A value of 0 allows them to go on
                // indefinitely
                usage-timeout = "0"
                
                // Whether or not we'll automatically trust any cert on
                // this XMPP domain
                trust-all-xmpp-certs = true
            }

        ]
      }
    }
    recording {
      recordings-directory = "jibri/"
      }

    ffmpeg {
      resolution =  "1280x720"
      }

This is incorrect.

1 Like

Your jibri.conf is rife with errors. I’d suggest using the jibri.conf in the tutorial below as a reference; make sure your domains match:

1 Like

@saghul thank you for replying
how to fix this ?

Since you are using Docker with k8s, you’ll need to pass the right values to the env variables.