Jibri errors

Hi!

I have jitsi and jibri installed on the same server. Some users can record, others get errors. That’s what I found in jibri log.0.txt

Any ideas?

2022-06-10 15:17:06.433 SEVERE: [56] JibriServiceFinalizeCommandRunner.doFinalize#63: Failed to run finalize script
java.io.IOException: Cannot run program “/path/to/finalize_recording.sh”: 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.JibriServiceFinalizeCommandRunner.doFinalize(JibriServiceFinalizeCommandRunner.kt:47)
at org.jitsi.jibri.service.impl.FileRecordingJibriService.stop(FileRecordingJibriService.kt:232)
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.capture.ffmpeg.FfmpegCapturer.onFfmpegStateMachineStateChange(FfmpegCapturer.kt:131)
at org.jitsi.jibri.capture.ffmpeg.FfmpegCapturer.access$onFfmpegStateMachineStateChange(FfmpegCapturer.kt:67)
at org.jitsi.jibri.capture.ffmpeg.FfmpegCapturer$5.invoke(FfmpegCapturer.kt:96)
at org.jitsi.jibri.capture.ffmpeg.FfmpegCapturer$5.invoke(FfmpegCapturer.kt:67)
at org.jitsi.jibri.util.NotifyingStateMachine.notify(NotifyingStateMachine.kt:26)
at org.jitsi.jibri.capture.ffmpeg.FfmpegStatusStateMachine.access$notify(FfmpegStatusStateMachine.kt:69)
at org.jitsi.jibri.capture.ffmpeg.FfmpegStatusStateMachine$stateMachine$1$5.invoke(FfmpegStatusStateMachine.kt:130)
at org.jitsi.jibri.capture.ffmpeg.FfmpegStatusStateMachine$stateMachine$1$5.invoke(FfmpegStatusStateMachine.kt:69)
at com.tinder.StateMachine.notifyOnTransition(StateMachine.kt:65)
at com.tinder.StateMachine.transition(StateMachine.kt:23)
at org.jitsi.jibri.capture.ffmpeg.FfmpegStatusStateMachine.transition(FfmpegStatusStateMachine.kt:135)
at org.jitsi.jibri.capture.ffmpeg.FfmpegCapturer.onFfmpegProcessUpdate(FfmpegCapturer.kt:124)
at org.jitsi.jibri.capture.ffmpeg.FfmpegCapturer.access$onFfmpegProcessUpdate(FfmpegCapturer.kt:67)
at org.jitsi.jibri.capture.ffmpeg.FfmpegCapturer$4.invoke(FfmpegCapturer.kt:95)
at org.jitsi.jibri.capture.ffmpeg.FfmpegCapturer$4.invoke(FfmpegCapturer.kt:67)
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.util.JibriSubprocess$launch$1$1.invoke(JibriSubprocess.kt:48)
at org.jitsi.jibri.util.JibriSubprocess$launch$1$1.invoke(JibriSubprocess.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.util.ProcessStatePublisher$startProcessAliveChecks$1$$special$$inlined$also$lambda$1.run(ProcessStatePublisher.kt:92)
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.(UNIXProcess.java:247)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
… 70 more

If there is only one jibri instance, you can only record one meeting at a time.