Jibri can't record calls

Hello everyone!

I installed a Jitsi Meet server which works like a charm, not Dockered, it runs on a VM, I tried to enable meet recordings with Jibri with the following guide: TUTORIAL - How to Install the NEW JIBRI

Now if I start recording, it will try to start the recording and then stops a couple of seconds later, the jibri log would show this message several times until the recording trying dies:

2022-03-24 12:00:04.933 FINE: [59] CallPage$visit$$inlined$measureTimedValue$lambda$1.apply#58: Not joined yet: Cannot read properties of undefined (reading ‘isJoined’)

2022-03-24 12:00:02.881 FINE: [59] CallPage$visit$$inlined$measureTimedValue$lambda$1.apply#58: Not joined yet: Cannot read properties of undefined (reading ‘isJoined’)
2022-03-24 12:00:03.394 FINE: [59] CallPage$visit$$inlined$measureTimedValue$lambda$1.apply#58: Not joined yet: Cannot read properties of undefined (reading ‘isJoined’)
2022-03-24 12:00:03.907 FINE: [59] CallPage$visit$$inlined$measureTimedValue$lambda$1.apply#58: Not joined yet: Cannot read properties of undefined (reading ‘isJoined’)
2022-03-24 12:00:04.420 FINE: [59] CallPage$visit$$inlined$measureTimedValue$lambda$1.apply#58: Not joined yet: Cannot read properties of undefined (reading ‘isJoined’)
2022-03-24 12:00:04.933 FINE: [59] CallPage$visit$$inlined$measureTimedValue$lambda$1.apply#58: Not joined yet: Cannot read properties of undefined (reading ‘isJoined’)
2022-03-24 12:00:04.945 SEVERE: [59] CallPage.visit#65: Timed out waiting for call page to load
2022-03-24 12:00:04.950 INFO: [59] [session_id=lwcbmenwudjadjee] JibriSelenium.onSeleniumStateChange#215: Transitioning from state Starting up to Error: FailedToJoinCall SESSION Failed to join the call
2022-03-24 12:00:04.951 INFO: [59] [session_id=lwcbmenwudjadjee] StatefulJibriService.onServiceStateChange#39: File recording service transitioning from state Starting up to Error: FailedToJoinCall SESSION Fai
led to join the call
2022-03-24 12:00:04.954 INFO: [59] XmppApi$createServiceStatusHandler$1.invoke#311: Current service had an error Error: FailedToJoinCall SESSION Failed to join the call, sending error iq
2022-03-24 12:00:04.954 FINE: [59] JibriStatsDClient.incrementCounter#38: Incrementing statsd counter: stop:recording
2022-03-24 12:00:04.955 INFO: [59] JibriManager.stopService#260: Stopping the current service
2022-03-24 12:00:04.957 INFO: [59] [session_id=lwcbmenwudjadjee] FileRecordingJibriService.stop#182: Stopping capturer
2022-03-24 12:00:04.959 INFO: [59] [session_id=lwcbmenwudjadjee] JibriSubprocess.stop#75: Stopping ffmpeg process
2022-03-24 12:00:04.964 INFO: [59] [session_id=lwcbmenwudjadjee] JibriSubprocess.stop#89: ffmpeg exited with value null
2022-03-24 12:00:04.964 INFO: [59] [session_id=lwcbmenwudjadjee] FileRecordingJibriService.stop#184: Quitting selenium
2022-03-24 12:00:04.965 INFO: [59] [session_id=lwcbmenwudjadjee] FileRecordingJibriService.stop#191: No media was recorded, deleting directory and skipping metadata file & finalize
2022-03-24 12:00:04.966 INFO: [59] [session_id=lwcbmenwudjadjee] JibriSelenium.leaveCallAndQuitBrowser#336: Leaving call and quitting browser
2022-03-24 12:00:04.966 INFO: [59] [session_id=lwcbmenwudjadjee] JibriSelenium.leaveCallAndQuitBrowser#339: Recurring call status checks cancelled
2022-03-24 12:00:05.001 INFO: [59] [session_id=lwcbmenwudjadjee] JibriSelenium.leaveCallAndQuitBrowser#345: Got 26 log entries for type browser
2022-03-24 12:00:05.314 INFO: [59] [session_id=lwcbmenwudjadjee] JibriSelenium.leaveCallAndQuitBrowser#345: Got 1386 log entries for type driver
2022-03-24 12:00:05.761 INFO: [59] [session_id=lwcbmenwudjadjee] JibriSelenium.leaveCallAndQuitBrowser#345: Got 0 log entries for type client
2022-03-24 12:00:05.761 INFO: [59] [session_id=lwcbmenwudjadjee] JibriSelenium.leaveCallAndQuitBrowser#354: Leaving web call
2022-03-24 12:00:05.826 INFO: [59] [session_id=lwcbmenwudjadjee] JibriSelenium.leaveCallAndQuitBrowser#361: Quitting chrome driver
2022-03-24 12:00:05.917 INFO: [59] [session_id=lwcbmenwudjadjee] JibriSelenium.leaveCallAndQuitBrowser#363: Chrome driver quit
2022-03-24 12:00:05.919 INFO: [59] JibriStatusManager$$special$$inlined$observable$1.afterChange#72: Busy status has changed: BUSY → IDLE

Do you have any clue of what could be the issue? Thank you very much in advance for any help.

Server Info:
Esxi VM
4 cores
16 RAM
Debian GNU/Linux 11 (Bullseye)
jitsi-meet version 2.0.7001-1
jibri version 8.0-121-g27323fe-1

Greetings,
Asdru.

1 Like

You may try this installer on a fresh Debian 11 Bullseye VM

Hi @asdru

After updating the Jitsi Meet packages I got the same error as yours. I have also updated ChromeDriver to the latest version but still the same error.

2022-03-26 18:45:03.665 FINE: [56] CallPage$visit$$inlined$measureTimedValue$lambda$1.apply#58: Not joined yet: Cannot read properties of undefined (reading 'isJoined')
2022-03-26 18:45:04.173 FINE: [56] CallPage$visit$$inlined$measureTimedValue$lambda$1.apply#58: Not joined yet: Cannot read properties of undefined (reading 'isJoined')
2022-03-26 18:45:04.683 FINE: [56] CallPage$visit$$inlined$measureTimedValue$lambda$1.apply#58: Not joined yet: Cannot read properties of undefined (reading 'isJoined')
2022-03-26 18:45:05.187 FINE: [56] CallPage$visit$$inlined$measureTimedValue$lambda$1.apply#58: Not joined yet: Cannot read properties of undefined (reading 'isJoined')
2022-03-26 18:45:05.189 SEVERE: [56] CallPage.visit#65: Timed out waiting for call page to load
2022-03-26 18:45:05.190 INFO: [56] [session_id=kvqaifrpmydiqfwl] JibriSelenium.onSeleniumStateChange#215: Transitioning from state Starting up to Error: FailedToJoinCall SESSION Failed to join the call
2022-03-26 18:45:05.190 INFO: [56] [session_id=kvqaifrpmydiqfwl] StatefulJibriService.onServiceStateChange#39: Streaming service transitioning from state Starting up to Error: FailedToJoinCall SESSION Failed to join the call
2022-03-26 18:45:05.191 INFO: [56] XmppApi$createServiceStatusHandler$1.invoke#311: Current service had an error Error: FailedToJoinCall SESSION Failed to join the call, sending error iq <iq xmlns='jabber:client' to='jibribrewery@internal.auth.meet.fediverse.tv/focus' id='TZG5G-9' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' status='off' failure_reason='error' should_retry='true'/></iq>
2022-03-26 18:45:05.192 FINE: [56] JibriStatsDClient.incrementCounter#38: Incrementing statsd counter: stop:live_stream
2022-03-26 18:45:05.192 INFO: [56] JibriManager.stopService#260: Stopping the current service
2022-03-26 18:45:05.192 INFO: [56] [session_id=kvqaifrpmydiqfwl] StreamingJibriService.stop#137: Stopping capturer
2022-03-26 18:45:05.193 INFO: [56] [session_id=kvqaifrpmydiqfwl] JibriSubprocess.stop#75: Stopping ffmpeg process
2022-03-26 18:45:05.193 INFO: [56] [session_id=kvqaifrpmydiqfwl] JibriSubprocess.stop#89: ffmpeg exited with value null
2022-03-26 18:45:05.193 INFO: [56] [session_id=kvqaifrpmydiqfwl] StreamingJibriService.stop#139: Stopped capturer
2022-03-26 18:45:05.193 INFO: [56] [session_id=kvqaifrpmydiqfwl] StreamingJibriService.stop#140: Quitting selenium
2022-03-26 18:45:05.193 INFO: [56] [session_id=kvqaifrpmydiqfwl] JibriSelenium.leaveCallAndQuitBrowser#336: Leaving call and quitting browser
2022-03-26 18:45:05.193 INFO: [56] [session_id=kvqaifrpmydiqfwl] JibriSelenium.leaveCallAndQuitBrowser#339: Recurring call status checks cancelled
2022-03-26 18:45:05.201 INFO: [56] [session_id=kvqaifrpmydiqfwl] JibriSelenium.leaveCallAndQuitBrowser#345: Got 7 log entries for type browser
2022-03-26 18:45:05.265 INFO: [56] [session_id=kvqaifrpmydiqfwl] JibriSelenium.leaveCallAndQuitBrowser#345: Got 1012 log entries for type driver
2022-03-26 18:45:05.352 INFO: [56] [session_id=kvqaifrpmydiqfwl] JibriSelenium.leaveCallAndQuitBrowser#345: Got 0 log entries for type client
2022-03-26 18:45:05.352 INFO: [56] [session_id=kvqaifrpmydiqfwl] JibriSelenium.leaveCallAndQuitBrowser#354: Leaving web call
2022-03-26 18:45:05.381 INFO: [56] [session_id=kvqaifrpmydiqfwl] JibriSelenium.leaveCallAndQuitBrowser#361: Quitting chrome driver
2022-03-26 18:45:05.449 INFO: [56] [session_id=kvqaifrpmydiqfwl] JibriSelenium.leaveCallAndQuitBrowser#363: Chrome driver quit
2022-03-26 18:45:05.449 INFO: [56] [session_id=kvqaifrpmydiqfwl] StreamingJibriService.stop#142: Quit selenium
2022-03-26 18:45:05.450 INFO: [56] JibriStatusManager$$special$$inlined$observable$1.afterChange#72: Busy status has changed: BUSY -> IDLE
2022-03-26 18:45:05.450 FINE: [56] WebhookClient$updateStatus$1.invokeSuspend#107: Updating 0 subscribers of status
2022-03-26 18:45:05.450 INFO: [56] XmppApi.updatePresence#203: Jibri reports its status is now JibriStatus(busyStatus=IDLE, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections

Debian GNU/Linux 10 (Buster)
jitsi-meet version 2.0.7001-1
jibri version 8.0-121-g27323fe-1

Can u paste your jibri.conf file. Please hide password.

Hi @vineet,

Here you have it:

 jibri {
  id = ""
  single-use-mode = false

  recording {
#    recordings-directory = "/usr/recordings"
    finalize-script = "/usr/local/bin/finalize_recording.sh"
  }

  streaming {
    rtmp-allow-list = [
      ".*"
    ]
  }

  chrome {
    flags = [
      "--headless",
      "--no-sandbox",
      "--log-file=/var/log/jitsi/jibri/chromedriver.log"
      "--ignore-certificate-errors"
      "--use-fake-ui-for-media-stream",
      "--start-maximized",
      "--kiosk",
      "--enabled",
      "--disable-infobars",
      "--autoplay-policy=no-user-gesture-required"
    ]
  }

  ffmpeg {
    resolution = "1920x1080"
    audio-source = "alsa"
    audio-device = "plug:bsnoop"
  }

  api {
    http {
      internal-api-port = 8001
      external-api-port = 8002
    }

    xmpp {
      environments = [{
        name = "my-environment"
        xmpp-server-hosts = ["meet.domain.com"]
        xmpp-domain = "meet.fdomain.com"

        control-muc {
          domain = "internal.auth.meet.domain.com"
          room-name = "JibriBrewery"
          nickname = "jibri-nickname"
        }

        control-login {
          domain = "auth.meet.domain.com"
          username = "jibri"
          password = "superpasswd"
        }

        call-login {
          domain = "recorder.meet.domain.com"
          username = "recorder"
          password = "superpasswd"
        }

        strip-from-room-domain = "conference."
        usage-timeout = 0
        trust-all-xmpp-certs = true
      }]
    }
  }

  stats {
    enable-stats-d = true
  }

  call-status-checks {
    no-media-timeout = 30 seconds
    all-muted-timeout = 10 minutes
    default-call-empty-timeout = 30 seconds
  }
}

Regards,
T3rr0rz0n3

Are you sure these Chrome flags work?

reference.conf

…and there’s no recording directory.

I have deleted them and left the ones in reference, but it doesn’t work either:

2022-03-26 23:05:20.874 FINE: [56] CallPage$visit$$inlined$measureTimedValue$lambda$1.apply#58: Not joined yet: Cannot read properties of undefined (reading 'isJoined')
2022-03-26 23:05:21.379 FINE: [56] CallPage$visit$$inlined$measureTimedValue$lambda$1.apply#58: Not joined yet: Cannot read properties of undefined (reading 'isJoined')
2022-03-26 23:05:21.381 SEVERE: [56] CallPage.visit#65: Timed out waiting for call page to load
2022-03-26 23:05:21.382 INFO: [56] [session_id=lanmfazgdonoxpjs] JibriSelenium.onSeleniumStateChange#215: Transitioning from state Starting up to Error: FailedToJoinCall SESSION Failed to join the call
2022-03-26 23:05:21.382 INFO: [56] [session_id=lanmfazgdonoxpjs] StatefulJibriService.onServiceStateChange#39: Streaming service transitioning from state Starting up to Error: FailedToJoinCall SESSION Failed to join the call
2022-03-26 23:05:21.383 INFO: [56] XmppApi$createServiceStatusHandler$1.invoke#311: Current service had an error Error: FailedToJoinCall SESSION Failed to join the call, sending error iq <iq xmlns='jabber:client' to='jibribrewery@internal.auth.meet.fediverse.tv/focus' id='VEDKN-10' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' status='off' failure_reason='error' should_retry='true'/></iq>
2022-03-26 23:05:21.384 FINE: [56] JibriStatsDClient.incrementCounter#38: Incrementing statsd counter: stop:live_stream
2022-03-26 23:05:21.384 INFO: [56] JibriManager.stopService#260: Stopping the current service
2022-03-26 23:05:21.384 INFO: [56] [session_id=lanmfazgdonoxpjs] StreamingJibriService.stop#137: Stopping capturer
2022-03-26 23:05:21.384 INFO: [56] [session_id=lanmfazgdonoxpjs] JibriSubprocess.stop#75: Stopping ffmpeg process
2022-03-26 23:05:21.384 INFO: [56] [session_id=lanmfazgdonoxpjs] JibriSubprocess.stop#89: ffmpeg exited with value null
2022-03-26 23:05:21.384 INFO: [56] [session_id=lanmfazgdonoxpjs] StreamingJibriService.stop#139: Stopped capturer
2022-03-26 23:05:21.384 INFO: [56] [session_id=lanmfazgdonoxpjs] StreamingJibriService.stop#140: Quitting selenium
2022-03-26 23:05:21.384 INFO: [56] [session_id=lanmfazgdonoxpjs] JibriSelenium.leaveCallAndQuitBrowser#336: Leaving call and quitting browser
2022-03-26 23:05:21.384 INFO: [56] [session_id=lanmfazgdonoxpjs] JibriSelenium.leaveCallAndQuitBrowser#339: Recurring call status checks cancelled
2022-03-26 23:05:21.392 INFO: [56] [session_id=lanmfazgdonoxpjs] JibriSelenium.leaveCallAndQuitBrowser#345: Got 7 log entries for type browser
2022-03-26 23:05:21.456 INFO: [56] [session_id=lanmfazgdonoxpjs] JibriSelenium.leaveCallAndQuitBrowser#345: Got 1093 log entries for type driver
2022-03-26 23:05:21.553 INFO: [56] [session_id=lanmfazgdonoxpjs] JibriSelenium.leaveCallAndQuitBrowser#345: Got 0 log entries for type client
2022-03-26 23:05:21.553 INFO: [56] [session_id=lanmfazgdonoxpjs] JibriSelenium.leaveCallAndQuitBrowser#354: Leaving web call
2022-03-26 23:05:21.575 INFO: [56] [session_id=lanmfazgdonoxpjs] JibriSelenium.leaveCallAndQuitBrowser#361: Quitting chrome driver
2022-03-26 23:05:21.694 INFO: [56] [session_id=lanmfazgdonoxpjs] JibriSelenium.leaveCallAndQuitBrowser#363: Chrome driver quit
2022-03-26 23:05:21.694 INFO: [56] [session_id=lanmfazgdonoxpjs] StreamingJibriService.stop#142: Quit selenium
2022-03-26 23:05:21.695 INFO: [56] JibriStatusManager$$special$$inlined$observable$1.afterChange#72: Busy status has changed: BUSY -> IDLE
2022-03-26 23:05:21.695 FINE: [56] WebhookClient$updateStatus$1.invokeSuspend#107: Updating 0 subscribers of status
2022-03-26 23:05:21.695 INFO: [56] XmppApi.updatePresence#203: Jibri reports its status is now JibriStatus(busyStatus=IDLE, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections

jibri.conf:

 jibri {
  id = ""
  single-use-mode = false

  recording {
#    recordings-directory = "/usr/recordings"
    finalize-script = "/usr/local/bin/finalize_recording.sh"
  }

  streaming {
    rtmp-allow-list = [
      ".*"
    ]
  }

  chrome {
    flags = [
      "--use-fake-ui-for-media-stream",
      "--start-maximized",
      "--kiosk",
      "--enabled",
      "--autoplay-policy=no-user-gesture-required"
    ]
  }

  ffmpeg {
    resolution = "1920x1080"
    audio-source = "alsa"
    audio-device = "plug:bsnoop"
  }

  api {
    http {
      internal-api-port = 8001
      external-api-port = 8002
    }

    xmpp {
      environments = [{
        name = "my-environment"
        xmpp-server-hosts = ["meet.domain.com"]
        xmpp-domain = "meet.fdomain.com"

        control-muc {
          domain = "internal.auth.meet.domain.com"
          room-name = "JibriBrewery"
          nickname = "jibri-nickname"
        }

        control-login {
          domain = "auth.meet.domain.com"
          username = "jibri"
          password = "superpasswd"
        }

        call-login {
          domain = "recorder.meet.domain.com"
          username = "recorder"
          password = "superpasswd"
        }

        strip-from-room-domain = "conference."
        usage-timeout = 0
        trust-all-xmpp-certs = true
      }]
    }
  }

  stats {
    enable-stats-d = true
  }

  call-status-checks {
    no-media-timeout = 30 seconds
    all-muted-timeout = 10 minutes
    default-call-empty-timeout = 30 seconds
  }
}

Because it is not necessary. I understand that if in the Jitsi configuration I do not have the option to save recordings enabled, it is not necessary to define this variable. I only have the option enabled in meet.domain.com-config.js:

liveStreamingEnabled: true,
fileRecordingsEnabled: false,

Regards,
t3rr0rz0n3

So the error you’re reporting is from trying to livestream?

Yes, sorry to have made that clear earlier. But it is the same error as when trying to record or live streaming.

And this was working before? You only started experiencing this issue recently?

Yes, it used to work properly. I just updated packages to last version, namely these:

 jibri jicofo jitsi-meet jitsi-meet-prosody jitsi-meet-turnserver jitsi-meet-web jitsi-meet-web-config jitsi-videobridge2 google-chrome-stable

After restarting services, I saw that broadcasting live was giving error. I saw that it was related to Chromedriver and proceeded to install the latest version.

Regards
T3rr0rz0n3

I’d recommend downgrading your Chrome (and Chromedriver) to a previous version that worked. Try Chrome (and Chromedriver) v91, if possible - I’m certain that works.

I also faced this issue two times just because password are wrong.
I deleted .dat file and again created one and uses new credential.

Can u check /var/lib/prosody/auth*/accounts and /var/lib/prosody/recorder*/accounts directory if user created by you exist or not.
If they does not exist, try to create one by following the link.

Try to use base-url flag if your media server is running on different port other than 443.

1 Like

I think that calling prosodyctl register again updates the password of an existing user.

I have the same issue, After installed x11vnc I can see the chrome is waiting for click Allow use microphone dialog. After click the Allow button, It can record.

My issue was caused by the chrome flags. I copied these flags from web page, but the - is not the correct char, it was something looked like hyphen.

I think that calling prosodyctl register again updates the password of an existing user.

I don’t know how prosodyctl register works in background, that’s why i told you delete then create users. Yes, the main motive is updating the password.

IIRC prosodyctl unregister works too

1 Like