Jibri: Recording failed to start (SESSION Failed to join call)

Hi There.
I’ve installed Jibri to Ubuntu 16.04. Youtube live streaming is working but when I click “Start recording” it is showing “preparing to record meeting”. After a while it is stopping with error message “Recording failed to start”.

Jitsi meet url - recordtmma.live
Jibri is using separated server (IP : 160.153.235.121)

I checked Jibri log:

========================

2020-04-29 10:57:45.786 FINE: [45] org.jitsi.jibri.selenium.pageobjects.CallPage.visit() Visiting url https://recordtmma.live/test-0101#config.iAmRecorder=true&config.externalConnectUrl=null&config.startWithAudioMuted=true&config.startWithVideoMuted=true&interfaceConfig.APP_NAME=“Jibri”&config.analytics.disabled=true&config.p2p.enabled=false
2020-04-29 10:58:16.925 SEVERE: [45] org.jitsi.jibri.selenium.pageobjects.CallPage.visit() Timed out waiting for call page to load
2020-04-29 10:58:16.937 INFO: [45] org.jitsi.jibri.selenium.JibriSelenium.onSeleniumStateChange() Transitioning from state Starting up to Error: SESSION Failed to join call
2020-04-29 10:58:16.941 INFO: [45] org.jitsi.jibri.service.impl.FileRecordingJibriService.onServiceStateChange() File recording service transitioning from state Starting up to Error: SESSION Failed to join call
2020-04-29 10:58:16.942 INFO: [45] org.jitsi.jibri.api.xmpp.XmppApi.invoke() Current service had an error, sending error iq
2020-04-29 10:58:16.943 FINE: [45] org.jitsi.jibri.statsd.JibriStatsDClient.incrementCounter() Incrementing statsd counter: stop:recording

==========================

I think this seems showing what is problem.

Please suggest me how to fix this issue.

Thanks a lot.

This means Jibri was unable to successfully join the call. It could be a network connectivity problem (make sure the Jibri machine can access your server successfully), or it could be a login issue (Jibri logging in to prosody)…make sure you’ve followed the prosody section of the Jibri readme correctly (making the accounts in prosody, right domains, and configuring Jibri correctly: proper usernames, domains, passwords)

1 Like

Thank you so much @bbaldino.
Problem is solved. :slight_smile:
It was typo error on /etc/prosody/config.d/recordtmma.live-config.js of Jitsi server.

Hi @bbaldino.
There is no option to store recording file to AWS S3?

You can store the file wherever you want by writing your own custom finalize script. The finalize script is passed the directory with the recording file after the recording is done and you can then do whatever you want with it.

Hi @bbaldino.
Thank you letting me know.
I tried to install jitis-upload-integrations package but it was not working on my Jibri server.
I used apt install jitsi-upload-integrations but getting error: ‘E: Unable to locate package jitsi-upload-integrations’.

I don’t think we build a debian package for that. But either way, I don’t think we have an s3 integration there.

How can i find the finalize script?
You mean this https://github.com/jitsi/jibri/blob/master/resources/finalize_recording.sh?

Regards,

You write the finalize script yourself. The one in github is an example. You write it and then set the path to the script in the jibri config file

I have a problem on recording.

Recording is stopping automatically after 20 mins or 40 mins.
Jibri have limited recording file size?
If then how to increase it?

This is jibri log:\

2020-05-14 10:53:24.473 INFO: [114] org.jitsi.jibri.selenium.JibriSelenium.run() Jibri client receive bitrates: {audio={download=34, upload=22}, download=2836, upload=22, video={download=2802, upload=0}}, all clients muted? false
2020-05-14 10:53:39.473 INFO: [114] org.jitsi.jibri.selenium.JibriSelenium.run() Jibri client receive bitrates: {audio={download=16, upload=22}, download=3471, upload=22, video={download=3455, upload=0}}, all clients muted? false
2020-05-14 10:53:54.533 INFO: [114] org.jitsi.jibri.selenium.JibriSelenium.run() Jibri client receive bitrates: {audio={download=28, upload=22}, download=3130, upload=22, video={download=3102, upload=0}}, all clients muted? false
2020-05-14 10:54:14.023 SEVERE: [114] org.jitsi.jibri.selenium.JibriSelenium.invoke() Error while running call status checks: org.openqa.selenium.WebDriverException: unknown error: session deleted because of page crash
from tab crashed
  (Session info: chrome=81.0.4044.129)
  (Driver info: chromedriver=81.0.4044.69 (6813546031a4bc83f717a2ef7cd4ac6ec1199132-refs/branch-heads/4044@{#776}),platform=Linux 4.4.0-178-generic x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'ip-160-153-235-121.ip.secureserver.net', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-178-generic', java.version: '1.8.0_252'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities {acceptInsecureCerts: false, acceptSslCerts: false, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 81.0.4044.69 (6813546031a4b..., userDataDir: /tmp/.com.google.Chrome.PXUpTS}, cssSelectorsEnabled: true, databaseEnabled: false, goog:chromeOptions: {debuggerAddress: localhost:36595}, handlesAlerts: true, hasTouchScreen: false, javascriptEnabled: true, locationContextEnabled: true, mobileEmulationEnabled: false, nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: LINUX, platformName: LINUX, proxy: Proxy(), rotatable: false, setWindowRect: true, strictFileInteractability: false, takesHeapSnapshot: true, takesScreenshot: true, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unexpectedAlertBehaviour: ignore, unhandledPromptBehavior: ignore, version: 81.0.4044.129, webStorageEnabled: true, webauthn:virtualAuthenticators: true}
Session ID: d71278b056c6eeb9512275cd1337737b with stack: 
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
java.lang.reflect.Constructor.newInstance(Constructor.java:423)
org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214)
org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166)
org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue(JsonHttpResponseCodec.java:40)
org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:80)
org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:44)
org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543)
org.openqa.selenium.remote.RemoteWebDriver.executeScript(RemoteWebDriver.java:480)
org.jitsi.jibri.selenium.pageobjects.CallPage.getNumParticipants(CallPage.kt:71)
org.jitsi.jibri.selenium.status_checks.EmptyCallStatusCheck.isCallEmpty(EmptyCallStatusCheck.kt:44)
org.jitsi.jibri.selenium.status_checks.EmptyCallStatusCheck.run(EmptyCallStatusCheck.kt:29)
org.jitsi.jibri.selenium.JibriSelenium$startRecurringCallStatusChecks$1$event$1.invoke(JibriSelenium.kt:201)
org.jitsi.jibri.selenium.JibriSelenium$startRecurringCallStatusChecks$1$event$1.invoke(JibriSelenium.kt:112)
kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:172)
org.jitsi.jibri.selenium.JibriSelenium$startRecurringCallStatusChecks$1.invoke(JibriSelenium.kt:301)
org.jitsi.jibri.selenium.JibriSelenium$startRecurringCallStatusChecks$1.invoke(JibriSelenium.kt:112)
org.jitsi.jibri.util.extensions.SchedulerExecutorServiceExtsKt$sam$java_lang_Runnable$0.run(SchedulerExecutorServiceExts.kt)
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
java.lang.Thread.run(Thread.java:748)

2020-05-14 10:54:14.041 INFO: [3286] org.jitsi.jibri.selenium.JibriSelenium.onSeleniumStateChange() Transitioning from state Running to Error: SESSION Chrome hung
2020-05-14 10:54:14.041 INFO: [3286] org.jitsi.jibri.service.impl.FileRecordingJibriService.onServiceStateChange() File recording service transitioning from state Running to Error: SESSION Chrome hung
2020-05-14 10:54:14.042 INFO: [3286] org.jitsi.jibri.api.xmpp.XmppApi.invoke() Current service had an error, sending error iq <iq to='jibribrewery@internal.auth.recordtmma.live/focus' id='AEeFn-6581' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' status='off' failure_reason='error'/></iq>
2020-05-14 10:54:14.046 FINE: [3286] org.jitsi.jibri.statsd.JibriStatsDClient.incrementCounter() Incrementing statsd counter: stop:recording
2020-05-14 10:54:14.046 INFO: [3286] org.jitsi.jibri.JibriManager.stopService() Stopping the current service
2020-05-14 10:54:14.047 INFO: [3286] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Stopping capturer
2020-05-14 10:54:14.047 INFO: [3286] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() Stopping ffmpeg process
2020-05-14 10:54:14.788 INFO: [3258] org.jitsi.jibri.capture.ffmpeg.FfmpegCapturer.onFfmpegStateMachineStateChange() Ffmpeg capturer transitioning from state Running to Finished
2020-05-14 10:54:14.790 INFO: [3286] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() ffmpeg exited with value 255
2020-05-14 10:54:14.790 INFO: [3286] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Quitting selenium
2020-05-14 10:54:14.800 INFO: [3286] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Participants in this recording: []

please info me abaout your solution…