Jitsi and Jibri error (docker)

Hi,

I installed Jibri on docker and it is working fine most of the time. There is an error however sometimes, which I assume has nothing to do with Jibri but rather with Jitsi.

I run Jibri on docker, and I start the recording. Most of the times it works fine, video and audio are recorded and I can play them. However, some times after I press stop recording, there are some errors on browser logs, and when I replay that recording no video or audio is shown, just this picture is shown for the exact time that I recorded. Picture:

While reading browser.0.log I see these errors:

  1. 2019-10-21 08:32:30.378 INFO: [116] browser.leaveCallAndQuitBrowser() [2019-10-21T08:32:05+0000] [SEVERE] https://mydomain.com/libs/app.bundle.min.js?v=139 59:72640 “[modules/UI/videolayout/SmallVideo.js]” "\u003Cg.w.updateView>: " “Unable to init avatar - no id” g

which is not critical, I see it all the time.

  1. 2019-10-21 08:32:30.378 INFO: [116] browser.leaveCallAndQuitBrowser() [2019-10-21T08:32:06+0000] [SEVERE] https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139 5:251750 “[JitsiMeetJS.js]” "\u003CObject.getGlobalOnErrorHandler>: " “UnhandledError: null” “Script: null” “Line: null” “Column: null” "StackTrace: " Error: P2P mode disabled in the configuration
    at ee._rejectIncomingCall (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:294797)
    at ee._onIncomingCallP2P (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:292844)
    at ee.onIncomingCall (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:292963)
    at r.emit (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:144505)
    at s.value (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:25:89616)
    at r.Handler.run (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:21518)
    at https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:29835
    at Object.forEachChild (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:13288)
    at r.Connection._dataRecv (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:29668)
    at e.Bosh._onRequestStateChange (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:49334)

This one is not shown the other times. Only once every few recordings, this error is shown and the recording is broken (picture above). Then after this one, this other error is shown:

  1. 2019-10-21 08:32:30.378 INFO: [116] browser.leaveCallAndQuitBrowser() [2019-10-21T08:32:06+0000] [SEVERE] https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139 5:251750 “[JitsiMeetJS.js]” "\u003CObject.getGlobalOnErrorHandler>: " “UnhandledError: null” “Script: null” “Line: null” “Column: null” "StackTrace: " Error: Strophe: TypeError: Cannot set property ‘onicecandidate’ of undefined
    at t.value (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:213207)
    at t.value (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:203284)
    at s.value (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:25:91305)
    at t.value (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:203169)
    at ee._rejectIncomingCall (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:294822)
    at ee._onIncomingCallP2P (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:292844)
    at ee.onIncomingCall (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:292963)
    at r.emit (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:144505)
    at s.value (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:25:89616)
    at r.Handler.run (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:21518)
    at https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:29835
    at Object.forEachChild (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:13288)
    at r.Connection._dataRecv (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:29668)
    at e.Bosh._onRequestStateChange (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:49334)
    at Object.i.Strophe.log (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:40:12011)
    at Object.fatal (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:18487)
    at Object._handleError (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:17878)
    at r.Handler.run (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:21546)
    at https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:29835
    at Object.forEachChild (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:13288)
    at r.Connection._dataRecv (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:29668)
    at e.Bosh._onRequestStateChange (https://mydomain.com/libs/lib-jitsi-meet.min.js?v=139:6:49334)

Any idea what could be wrong?

P.S. One thing, worth mentioning, I have built Jitsi Meet from sources and have not pulled it from your rep since 2 months. Could this have an impact, considering that Jicofo, JVB and lib-jitsi-meet are not built from sources?

Also, in console of chrome I see this error:

Error: Jingle error: {“reason”:“timeout”,“session”:“JingleSessionPC[p2p=true,initiator=true,sid=622edb7a243d]”}

I see the problem now but I don’t know how to solve it. When recording fails, I saw that it is because a P2P session is started between me and Jibri (so Jitsi assumes that Jibri is normal conference participant). How can I fix this, any ideas?

useStunTurn: true both globally and p2p section and deploy and configure coturn

Are you using a recent version of Jibri? This PR in Jibri set it so we automatically disable p2p when Jibri joins to handle this scenario. I don’t have the specific version of Jibri that first had this fix handy, but it was in late August of this year.

@bbaldino thank you. I am using Jibri built by commit “4026852” of date 20 September 2019, after the “disable p2p” commit. Any idea why it might still happen?

@Tanvir thank you. I’ll fall back to that solution if I don’t find another one, because I don’t know how to deploy and configure a TURN server. Should I do it on the server where I have Jibri or Jitsi?

@bbaldino I found one way to fix it. I was using commit 4010d2a of “lib-jitsi-meet”, so I updated it to commit 179f3b8 and it is working now. Still, in the console logs I see that sometimes it says “Will start P2P with …”, but now it works even when it says this. Thank you for your help!