Recording fails to start

Hello

I can’t get Docker installation to work recording.

It says “preparing to record the meeting” for about half a minute and then Jibri container has this error:

2021-10-25 10:52:36.046 SEVERE: [71] org.jitsi.jibri.selenium.JibriSelenium.log() An error occurred while joining the call
org.openqa.selenium.TimeoutException: timeout: Timed out receiving message from renderer: -0.001
  (Session info: chrome=90.0.4430.212)
  (Driver info: chromedriver=90.0.4430.24 (4c6d850f087da467d926e8eddb76550aed655991-refs/branch-heads/4430@{#429}),platform=Linux 5.4.17-2102.204.4.4.el8uek.x86_64 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: '2583429bb77e', ip: '172.26.0.6', os.name: 'Linux', os.arch: 'amd64', os.version: '5.4.17-2102.204.4.4.el8uek.x86_64', java.version: '1.8.0_292'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities {acceptInsecureCerts: false, acceptSslCerts: false, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 90.0.4430.24 (4c6d850f087da..., userDataDir: /tmp/.com.google.Chrome.MLX28Y}, cssSelectorsEnabled: true, databaseEnabled: false, goog:chromeOptions: {debuggerAddress: localhost:41981}, 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: 90.0.4430.212, webStorageEnabled: true, webauthn:extension:largeBlob: true, webauthn:virtualAuthenticators: true}
Session ID: e1bd3b3a4b1a95d6972e2a7b0936a82a
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214)
	at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166)
	at org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue(JsonHttpResponseCodec.java:40)
	at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:80)
	at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:44)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543)
	at org.openqa.selenium.remote.RemoteWebDriver.get(RemoteWebDriver.java:271)
	at org.jitsi.jibri.selenium.pageobjects.AbstractPageObject.visit(AbstractPageObject.kt:35)
	at org.jitsi.jibri.selenium.JibriSelenium$joinCall$1.run(JibriSelenium.kt:278)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
2021-10-25 10:52:36.047 INFO: [71] org.jitsi.jibri.selenium.JibriSelenium.log() Transitioning from state Starting up to Error: FailedToJoinCall SESSION Failed to join the call
2021-10-25 10:52:36.047 INFO: [71] org.jitsi.jibri.service.impl.FileRecordingJibriService.log() File recording service transitioning from state Starting up to Error: FailedToJoinCall SESSION Failed to join the call
2021-10-25 10:52:36.053 INFO: [71] org.jitsi.jibri.api.xmpp.XmppApi.log() Current service had an error Error: FailedToJoinCall SESSION Failed to join the call, sending error iq <iq to='jibribrewery@internal-muc.meet.jitsi/focus' id='JDoj3-42' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' status='off' failure_reason='error' should_retry='true'/></iq>
2021-10-25 10:52:36.055 FINE: [71] org.jitsi.jibri.statsd.JibriStatsDClient.log() Incrementing statsd counter: stop:recording
2021-10-25 10:52:36.055 INFO: [71] org.jitsi.jibri.JibriManager.log() Stopping the current service
2021-10-25 10:52:36.056 INFO: [71] org.jitsi.jibri.service.impl.FileRecordingJibriService.log() Stopping capturer
2021-10-25 10:52:36.056 INFO: [71] org.jitsi.jibri.util.JibriSubprocess.log() Stopping ffmpeg process
2021-10-25 10:52:36.057 INFO: [71] org.jitsi.jibri.util.JibriSubprocess.log() ffmpeg exited with value null
2021-10-25 10:52:36.058 INFO: [71] org.jitsi.jibri.service.impl.FileRecordingJibriService.log() Quitting selenium
2021-10-25 10:52:36.082 INFO: [71] org.jitsi.jibri.service.impl.FileRecordingJibriService.log() Participants in this recording: []
2021-10-25 10:52:36.092 INFO: [71] org.jitsi.jibri.selenium.JibriSelenium.log() Leaving call and quitting browser
2021-10-25 10:52:36.093 INFO: [71] org.jitsi.jibri.selenium.JibriSelenium.log() Recurring call status checks cancelled
2021-10-25 10:52:36.110 INFO: [71] org.jitsi.jibri.selenium.JibriSelenium.log() Got 0 log entries for type browser
2021-10-25 10:52:36.128 INFO: [71] org.jitsi.jibri.selenium.JibriSelenium.log() Got 88 log entries for type driver
2021-10-25 10:52:36.159 INFO: [71] org.jitsi.jibri.selenium.JibriSelenium.log() Got 0 log entries for type client
2021-10-25 10:52:36.159 INFO: [71] org.jitsi.jibri.selenium.JibriSelenium.log() Leaving web call
2021-10-25 10:52:36.198 INFO: [71] org.jitsi.jibri.selenium.JibriSelenium.log() Quitting chrome driver
2021-10-25 10:52:36.282 INFO: [71] org.jitsi.jibri.selenium.JibriSelenium.log() Chrome driver quit
2021-10-25 10:52:36.283 INFO: [71] org.jitsi.jibri.service.impl.FileRecordingJibriService.log() Finalizing the recording
2021-10-25 10:52:36.286 SEVERE: [71] org.jitsi.jibri.service.impl.FileRecordingJibriService.log() Failed to run finalize script
java.io.IOException: Cannot run program "/path/to/finalize": error=2, No such file or directory
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
	at org.jitsi.jibri.util.ProcessWrapper.start(ProcessWrapper.kt:88)
	at org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize(FileRecordingJibriService.kt:220)
	at org.jitsi.jibri.service.impl.FileRecordingJibriService.stop(FileRecordingJibriService.kt:205)
	at org.jitsi.jibri.JibriManager.stopService(JibriManager.kt:263)
	at org.jitsi.jibri.JibriManager$startService$1.invoke(JibriManager.kt:211)
	at org.jitsi.jibri.JibriManager$startService$1.invoke(JibriManager.kt:85)
	at org.jitsi.jibri.util.StatusPublisher$addStatusHandler$1.invoke(StatusPublisher.kt:37)
	at org.jitsi.jibri.util.StatusPublisher$addStatusHandler$1.invoke(StatusPublisher.kt:29)
	at org.jitsi.jibri.util.StatusPublisher$publishStatus$1.invoke(StatusPublisher.kt:53)
	at org.jitsi.jibri.util.StatusPublisher$publishStatus$1.invoke(StatusPublisher.kt:29)
	at kotlin.collections.CollectionsKt__MutableCollectionsKt.filterInPlace$CollectionsKt__MutableCollectionsKt(MutableCollections.kt:285)
	at kotlin.collections.CollectionsKt__MutableCollectionsKt.retainAll(MutableCollections.kt:276)
	at org.jitsi.jibri.util.StatusPublisher.publishStatus(StatusPublisher.kt:53)
	at org.jitsi.jibri.service.impl.StatefulJibriService.onServiceStateChange(StatefulJibriService.kt:40)
	at org.jitsi.jibri.service.impl.StatefulJibriService.access$onServiceStateChange(StatefulJibriService.kt:26)
	at org.jitsi.jibri.service.impl.StatefulJibriService$1.invoke(StatefulJibriService.kt:35)
	at org.jitsi.jibri.service.impl.StatefulJibriService$1.invoke(StatefulJibriService.kt:26)
	at org.jitsi.jibri.util.NotifyingStateMachine.notify(NotifyingStateMachine.kt:26)
	at org.jitsi.jibri.service.JibriServiceStateMachine.access$notify(JibriServiceStateMachine.kt:46)
	at org.jitsi.jibri.service.JibriServiceStateMachine$stateMachine$1$5.invoke(JibriServiceStateMachine.kt:100)
	at org.jitsi.jibri.service.JibriServiceStateMachine$stateMachine$1$5.invoke(JibriServiceStateMachine.kt:46)
	at com.tinder.StateMachine.notifyOnTransition(StateMachine.kt:65)
	at com.tinder.StateMachine.transition(StateMachine.kt:23)
	at org.jitsi.jibri.service.JibriServiceStateMachine.transition(JibriServiceStateMachine.kt:112)
	at org.jitsi.jibri.service.impl.StatefulJibriService$registerSubComponent$1.invoke(StatefulJibriService.kt:46)
	at org.jitsi.jibri.service.impl.StatefulJibriService$registerSubComponent$1.invoke(StatefulJibriService.kt:26)
	at org.jitsi.jibri.util.StatusPublisher$addStatusHandler$1.invoke(StatusPublisher.kt:37)
	at org.jitsi.jibri.util.StatusPublisher$addStatusHandler$1.invoke(StatusPublisher.kt:29)
	at org.jitsi.jibri.util.StatusPublisher$publishStatus$1.invoke(StatusPublisher.kt:53)
	at org.jitsi.jibri.util.StatusPublisher$publishStatus$1.invoke(StatusPublisher.kt:29)
	at kotlin.collections.CollectionsKt__MutableCollectionsKt.filterInPlace$CollectionsKt__MutableCollectionsKt(MutableCollections.kt:285)
	at kotlin.collections.CollectionsKt__MutableCollectionsKt.retainAll(MutableCollections.kt:276)
	at org.jitsi.jibri.util.StatusPublisher.publishStatus(StatusPublisher.kt:53)
	at org.jitsi.jibri.selenium.JibriSelenium.onSeleniumStateChange(JibriSelenium.kt:208)
	at org.jitsi.jibri.selenium.JibriSelenium.access$onSeleniumStateChange(JibriSelenium.kt:158)
	at org.jitsi.jibri.selenium.JibriSelenium$1.invoke(JibriSelenium.kt:193)
	at org.jitsi.jibri.selenium.JibriSelenium$1.invoke(JibriSelenium.kt:158)
	at org.jitsi.jibri.util.NotifyingStateMachine.notify(NotifyingStateMachine.kt:26)
	at org.jitsi.jibri.selenium.SeleniumStateMachine.access$notify(SeleniumStateMachine.kt:33)
	at org.jitsi.jibri.selenium.SeleniumStateMachine$stateMachine$1$5.invoke(SeleniumStateMachine.kt:78)
	at org.jitsi.jibri.selenium.SeleniumStateMachine$stateMachine$1$5.invoke(SeleniumStateMachine.kt:33)
	at com.tinder.StateMachine.notifyOnTransition(StateMachine.kt:65)
	at com.tinder.StateMachine.transition(StateMachine.kt:23)
	at org.jitsi.jibri.selenium.SeleniumStateMachine.transition(SeleniumStateMachine.kt:83)
	at org.jitsi.jibri.selenium.JibriSelenium$joinCall$1.run(JibriSelenium.kt:311)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: error=2, No such file or directory
	at java.lang.UNIXProcess.forkAndExec(Native Method)
	at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
	at java.lang.ProcessImpl.start(ProcessImpl.java:134)
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
	... 50 more
2021-10-25 10:52:36.287 INFO: [71] org.jitsi.jibri.status.JibriStatusManager.log() Busy status has changed: BUSY -> IDLE
2021-10-25 10:52:36.288 FINE: [71] org.jitsi.jibri.webhooks.v1.WebhookClient.log() Updating 0 subscribers of status
2021-10-25 10:52:36.289 INFO: [71] org.jitsi.jibri.api.xmpp.XmppApi.log() Jibri reports its status is now JibriStatus(busyStatus=IDLE, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections
2021-10-25 10:52:36.289 FINE: [71] org.jitsi.xmpp.mucclient.MucClientManager.log() Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@544fbd0f
2021-10-25 10:52:36.290 FINE: [71] org.jitsi.xmpp.mucclient.MucClientManager.log() Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@2c1296b4
2021-10-25 10:52:36.298 FINE: [38] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element busy-status from namespace http://jitsi.org/protocol/jibri
2021-10-25 10:52:36.299 FINE: [38] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element health-status from namespace http://jitsi.org/protocol/health

What I tried:

  • Setting PUBLIC_URL to my domain
  • Setting XMPP_CROSS_DOMAIN=true
  • Populating “/etc/jitsi/jibri/jibri.conf” with correct domains
  • Adding “–ignore-certificate-errors” to Chrome flags
  • Enabling module “modprobe snd-aloop”

but it still fails. Any help would be appreciated.

I don’t know why, but after a day it started working, however the resulting video file has grey scren and no audio, so something still not works.