Failed to read the ‘localStorage’ property from ‘Window’: Access is denied for this document

Hi,

I have problem to enabled recording in docker deployment:

The error ocurred is:

2020-04-03 02:27:38.958 SEVERE: [712] org.jitsi.jibri.selenium.JibriSelenium.run() An error occurred while joining the call: org.openqa.selenium.WebDriverException: : Failed to read the ‘localStorage’ property from ‘Window’: Access is denied for this document.

Chrome version: 80.0.3987.162
ThirdParty cookies enabled

Chrome only said in dev console:
image

Full Logs from Jibri

2020-04-03 02:27:38.013 FINE: [703] org.jitsi.xmpp.mucclient.MucClient.log() Received an IQ with type set: IQ Stanza (jibri http://jitsi.org/protocol/jibri) [to=jibri@auth.meet.jitsi/0ad6oj4s,from=jibribrewery@internal-muc.meet.jitsi/focus,id=amlicmlAYXV0aC5tZWV0LmppdHNpLzBhZDZvajRzAFh1ZXh0LTE5NjMwAKWjWnDuDGV2QAr0MMCypo4=,type=set,]
2020-04-03 02:27:38.014 INFO: [703] org.jitsi.jibri.api.xmpp.XmppApi.handleJibriIq() Received JibriIq from environment [MucClient id=xmpp.meet.jitsi hostname=xmpp.meet.jitsi]
2020-04-03 02:27:38.014 INFO: [703] org.jitsi.jibri.api.xmpp.XmppApi.handleStartJibriIq() Received start request
2020-04-03 02:27:38.015 INFO: [703] org.jitsi.jibri.api.xmpp.XmppApi.handleStartJibriIq() Sending ‘pending’ response to start IQ
2020-04-03 02:27:38.015 INFO: [704] org.jitsi.jibri.api.xmpp.XmppApi.run() Starting service
2020-04-03 02:27:38.021 INFO: [704] org.jitsi.jibri.api.xmpp.XmppApi.handleStartService() Parsed call url info: CallUrlInfo(baseUrl=https://meet.jitsi, callName=darksheepshareslightly, urlParams=)
2020-04-03 02:27:38.022 INFO: [704] org.jitsi.jibri.JibriManager.startFileRecording() Starting a file recording with params: FileRecordingRequestParams(callParams=CallParams(callUrlInfo=CallUrlInfo(baseUrl=https://meet.jitsi, callName=darksheepshareslightly, urlParams=)), sessionId=yofqqsvbxnadzfkp, callLoginParams=XmppCredentials(domain=recorder.meet.jitsi, username=recorder, password=passw0rd)) finalize script path: /config/finalize.sh and recordings directory: /config/recordings
2020-04-03 02:27:38.706 INFO: [704] org.openqa.selenium.remote.ProtocolHandshake.createSession() Detected dialect: OSS
2020-04-03 02:27:38.717 INFO: [704] org.jitsi.jibri.selenium.JibriSelenium.() Starting empty call check with a timeout of PT30S
2020-04-03 02:27:38.718 FINE: [704] org.jitsi.jibri.capture.ffmpeg.FfmpegCapturer.() Detected os as OS: LINUX
2020-04-03 02:27:38.719 INFO: [704] org.jitsi.jibri.service.impl.FileRecordingJibriService.() Writing recording to /config/recordings/yofqqsvbxnadzfkp
2020-04-03 02:27:38.719 FINE: [704] org.jitsi.jibri.statsd.JibriStatsDClient.incrementCounter() Incrementing statsd counter: start:recording
2020-04-03 02:27:38.720 INFO: [704] org.jitsi.jibri.status.JibriStatusManager.log() Busy status has changed: IDLE -> BUSY
2020-04-03 02:27:38.720 INFO: [704] org.jitsi.jibri.api.xmpp.XmppApi.updatePresence() Jibri reports its status is now JibriStatus(busyStatus=BUSY, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections
2020-04-03 02:27:38.720 INFO: [704] org.jitsi.xmpp.mucclient.MucClientManager.log() Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@58701473
2020-04-03 02:27:38.721 FINE: [704] org.jitsi.xmpp.mucclient.MucClientManager.log() Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@166bc17
2020-04-03 02:27:38.728 FINE: [31] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element busy-status from namespace http://jitsi.org/protocol/jibri
2020-04-03 02:27:38.728 FINE: [31] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element health-status from namespace http://jitsi.org/protocol/health
2020-04-03 02:27:38.958 SEVERE: [712] org.jitsi.jibri.selenium.JibriSelenium.run() An error occurred while joining the call: org.openqa.selenium.WebDriverException: : Failed to read the ‘localStorage’ property from ‘Window’: Access is denied for this document.
(Session info: chrome=80.0.3987.149)
(Driver info: chromedriver=80.0.3987.106 (f68069574609230cf9b635cd784cfb1bf81bb53a-refs/branch-heads/3987@{#882}),platform=Linux 3.10.0-1062.18.1.el7.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: ‘9d751070e04d’, ip: ‘172.18.0.7’, os.name: ‘Linux’, os.arch: ‘amd64’, os.version: ‘3.10.0-1062.18.1.el7.x86_64’, java.version: ‘1.8.0_242’
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities {acceptInsecureCerts: false, acceptSslCerts: false, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 80.0.3987.106 (f68069574609…, userDataDir: /tmp/.com.google.Chrome.jjFYxG}, cssSelectorsEnabled: true, databaseEnabled: false, goog:chromeOptions: {debuggerAddress: localhost:45999}, 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: 80.0.3987.149, webStorageEnabled: true}
Session ID: 46dc6681c2cfdb8847dfc0250b04425e 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.JibriSelenium.setLocalStorageValues(JibriSelenium.kt:175)
org.jitsi.jibri.selenium.JibriSelenium.access$setLocalStorageValues(JibriSelenium.kt:112)
org.jitsi.jibri.selenium.JibriSelenium$joinCall$1.run(JibriSelenium.kt:255)
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
java.util.concurrent.FutureTask.run(FutureTask.java:266)
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-04-03 02:27:38.958 INFO: [712] org.jitsi.jibri.selenium.JibriSelenium.onSeleniumStateChange() Transitioning from state Starting up to Error: SESSION Failed to join call
2020-04-03 02:27:38.959 INFO: [712] org.jitsi.jibri.service.impl.FileRecordingJibriService.onServiceStateChange() File recording service transitioning from state Starting up to Error: SESSION Failed to join call
2020-04-03 02:27:38.959 INFO: [712] org.jitsi.jibri.api.xmpp.XmppApi.invoke() Current service had an error, sending error iq

Full logs from Jicofo

Jicofo 2020-04-03 16:04:21.963 INFO: [125] org.jitsi.jicofo.recording.jibri.JibriSession.log() Starting session with Jibri jibribrewery@internal-muc.meet.jitsi/jibri-instanse-622607450
Jicofo 2020-04-03 16:04:21.964 INFO: [125] org.jitsi.jicofo.recording.jibri.JibriSession.log() Starting Jibri jibribrewery@internal-muc.meet.jitsi/jibri-instanse-622607450 for stream ID: null in room: frequentheritagesaffordsame@muc.meet.jitsi
Jicofo 2020-04-03 16:04:21.970 INFO: [125] org.jitsi.jicofo.recording.jibri.JibriSession.log() Updating status from JIBRI: for frequentheritagesaffordsame@muc.meet.jitsi
Jicofo 2020-04-03 16:04:21.970 INFO: [125] org.jitsi.jicofo.recording.jibri.JibriSession.log() Got Jibri status update: Jibri jibribrewery@internal-muc.meet.jitsi/jibri-instanse-622607450 has status pending and failure reason null, current Jibri jid is jibribrewery@internal-muc.meet.jitsi/jibri-instanse-622607450
Jicofo 2020-04-03 16:04:21.971 INFO: [125] org.jitsi.jicofo.recording.jibri.JibriRecorder.log() Started Jibri session
Jicofo 2020-04-03 16:04:22.692 INFO: [29] org.jitsi.jicofo.recording.jibri.JibriDetector.onInstanceStatusChanged().137 Received Jibri jibribrewery@internal-muc.meet.jitsi/jibri-instanse-622607450 status
Jicofo 2020-04-03 16:04:22.693 INFO: [29] org.jitsi.jicofo.recording.jibri.JibriDetector.notifyJibriStatus().175 Jibri: jibribrewery@internal-muc.meet.jitsi/jibri-instanse-622607450 available: false
Jicofo 2020-04-03 16:04:22.955 INFO: [117] org.jitsi.jicofo.recording.jibri.JibriSession.log() Updating status from JIBRI: for frequentheritagesaffordsame@muc.meet.jitsi
Jicofo 2020-04-03 16:04:22.955 INFO: [117] org.jitsi.jicofo.recording.jibri.JibriSession.log() Got Jibri status update: Jibri jibribrewery@internal-muc.meet.jitsi/jibri-instanse-622607450 has status off and failure reason error, current Jibri jid is jibribrewery@internal-muc.meet.jitsi/jibri-instanse-622607450
Jicofo 2020-04-03 16:04:22.955 INFO: [117] org.jitsi.jicofo.recording.jibri.JibriSession.log() Jibri is no longer pending, cancelling pending timeout task
Jicofo 2020-04-03 16:04:22.955 WARNING: [117] org.jitsi.jicofo.recording.jibri.JibriSession.log() failureReason was non-null but shouldRetry wasn’t set, will NOT retry
Jicofo 2020-04-03 16:04:22.956 INFO: [117] org.jitsi.jicofo.recording.jibri.JibriSession.log() Jibri failed and signaled that we should not retry the same request
Jicofo 2020-04-03 16:04:22.956 INFO: [117] org.jitsi.jicofo.recording.jibri.JibriRecorder.log() Got jibri status off and failure error
Jicofo 2020-04-03 16:04:22.956 INFO: [117] org.jitsi.jicofo.recording.jibri.JibriRecorder.log() Publishing new jibri-recording-status: in: frequentheritagesaffordsame@muc.meet.jitsi
Jicofo 2020-04-03 16:04:22.956 INFO: [117] org.jitsi.jicofo.recording.jibri.JibriSession.log() Cleaning up current JibriSession
Jicofo 2020-04-03 16:04:23.160 INFO: [29] org.jitsi.jicofo.recording.jibri.JibriDetector.onInstanceStatusChanged().137 Received Jibri jibribrewery@internal-muc.meet.jitsi/jibri-instanse-622607450 status
Jicofo 2020-04-03 16:04:23.161 INFO: [29] org.jitsi.jicofo.recording.jibri.JibriDetector.notifyJibriStatus().175 Jibri: jibribrewery@internal-muc.meet.jitsi/jibri-instanse-622607450 available: true

I experience exactly the same problem. What I see in browser.0.txt log is:

Blockquote 2020-04-04 14:16:23.893 INFO: [46] browser.leaveCallAndQuitBrowser() [2020-04-04T14:16:23+0300] [FINE] DevTools WebSocket Command: Page.navigate (id=13) 7E98C807D278E3F2F71E102CAD291F17 {
“url”: “https://meet.jitsi
}
2020-04-04 14:16:23.897 INFO: [46] browser.leaveCallAndQuitBrowser() [2020-04-04T14:16:23+0300] [FINE] DevTools WebSocket Response: Page.navigate (id=13) 7E98C807D278E3F2F71E102CAD291F17 {
“errorText”: “net::ERR_CERT_COMMON_NAME_INVALID”,
“frameId”: “7E98C807D278E3F2F71E102CAD291F17”,
“loaderId”: “75B62B7D647BE6BCA980F14F29AE0C68”
}

It seems that there is no valid certificate for this url:“https://meet.jitsi
May be this helps…

Well I tried this https://github.com/jitsi/jibri/issues/246 and recompiled jibri with chromeOptions.addArguments("–ignore-certificate-errors") this seemed to be a progress, no net::ERR_CERT_COMMON_NAME_INVALID error any more and much more seems to expire before I ran into:

Blockquote
2020-04-04 18:01:24.570 INFO: [47] browser.leaveCallAndQuitBrowser() [2020-04-04T18:00:54+0300] [SEVERE] https://meet.jitsi/boris#config.iAmRecorder=true&config.externalConnectUrl=null&config.startWithAudioM
uted=true&config.startWithVideoMuted=true&interfaceConfig.APP_NAME=%22Jibri%22&config.analytics.disabled=true&config.p2p.enabled=false - Access to XMLHttpRequest at ‘https://*****.net/http-bind?room=
boris’ from origin ‘https://meet.jitsi’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested r
esource

May be you’ll have more luck…

I hit the same problem, did we able to change the https://meet.jitsi to the URL we setup in domain during .env?

SOLVED with

replace meet.jitsi with my domain.com in .env file.

did you replace all occurences of meet.jitsi? or some specific one?

Find all and replace.

Will it be possible for you to share your file… Some how tried multiple combos nothing seems to work :frowning:

SOLVED same as @B_K with replace meet.jitsi with jitsi.sub.domain.com in .env file.
all meet.jitsi string + remove $CONFIG directory
start and replace cert on $CONFIG/web/keys/ and restart WEB docker

I have a wildcard letsencrypt certificate on *.sub.domain.com
and the recording works now !

BTW, I solved the issue with the internal certificate from jibri to meet.jitsi
but after that I have another error due to CROSS DOMAIN from jitsi.sub.domain.com -> meet.jitsi

Attached is my .env file still not sure where the issue is :frowning:

env.txt (8.7 KB)

[cont-init.d] 10-config: exited 1.
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 01-set-timezone: executing...
[cont-init.d] 01-set-timezone: exited 0.
[cont-init.d] 10-config: executing...
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Obtaining a new certificate
Performing the following challenges:
Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA. You may need to use an authenticator plugin that can do challenges over DNS.
Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA. You may need to use an authenticator plugin that can do challenges over DNS.
Failed to obtain a certificate from the Let's Encrypt CA.
Exiting.
[cont-init.d] 10-config: exited 1.
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.

You’re ports are wrong. as per the readme

In addition, you will need to set HTTP_PORT to 80 and HTTPS_PORT to 443. for letsencrypt

Pretty sure your letsencrypt must’ve failed to fetch a cert

tried it… gives error for 443 already in use… seems one of the container uses it alread. :frowning:

Can someone please share there config(with domain scrubbed) and any additional settings that are required…(something like nginx or any other webserver) @B_K @NeoMacFly @masteryoda @hkhait

Everybody using docker-jitsi-meet could adjust the Dockerfile for jibri and build and tag a local version until they push this stopgap fix to the next version. Have a look at this commit:

Basically you could cherry-pick or make the changes yourself, then from the root of the repo do a

 make build JITSI_SERVICE=jibri

Then use your custom built image in the docker-compose jibri.yml and do

docker-compose -f docker-compose.yml -f jibri.yml up -d
1 Like

where are this file? tanks

Thanks alot for this! Saved my day :slight_smile:

1 Like

I’m using jitsi docker repo.
I checked the Dockerfile in jibri folder.
These changes are already there.
But still having the same error.

Could you please help me out with this?
I would highly appreciate your help.

Thanks.

Good, the changes are there, but you now need to build your own local jibri docker image, because the last release of docker-jitsi-meet doesn’t contain the change yet (it’s 16 days old).
go to the root of the repo

cd docker-jitsi-meet/

Edit the file jibri/Makefile to contain the following change on line 2, adding a custom docker tag.

docker build $(BUILD_ARGS) -t $(JITSI_REPO)/jibri:workaround01 .

From the root of the repo, run:

make build JITSI_SERVICE=jibri

then edit jibri.yml on line 5 and change the docker image to your locally built and tagged one:

image: jitsi/jibri:workaround01

Then start it with docker-compose.

docker-compose -f docker-compose.yml -f jibri.yml up -d
1 Like

Thank you so much.

It fixed the error I was getting.

But now, after start recording and then stop recording, I’m getting the below error.
2020-05-01 21:28:28.588 FINE: [57] org.jitsi.xmpp.mucclient.MucClient.log() Received an IQ with type set: IQ Stanza (jibri http://jitsi.org/protocol/jibri) [to=jibri@auth.meet.jitsi/6ZsNkITH,from=jibribrewery@internal-muc.meet.jitsi/focus,id=amlicmlAYXV0aC5tZWV0LmppdHNpLzZac05rSVRIAFJ6c0RpLTUwOQAHojJVQsIA/wUylkm1JIWK,type=set,] 2020-05-01 21:28:28.589 INFO: [57] org.jitsi.jibri.api.xmpp.XmppApi.handleJibriIq() Received JibriIq <iq to='jibri@auth.meet.jitsi/6ZsNkITH' from='jibribrewery@internal-muc.meet.jitsi/focus' id='amlicmlAYXV0aC5tZWV0LmppdHNpLzZac05rSVRIAFJ6c0RpLTUwOQAHojJVQsIA/wUylkm1JIWK' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' action='stop'/></iq> from environment [MucClient id=xmpp.meet.jitsi hostname=xmpp.meet.jitsi] 2020-05-01 21:28:28.589 FINE: [57] org.jitsi.jibri.statsd.JibriStatsDClient.incrementCounter() Incrementing statsd counter: stop:recording 2020-05-01 21:28:28.589 INFO: [57] org.jitsi.jibri.JibriManager.stopService() Stopping the current service 2020-05-01 21:28:28.592 INFO: [57] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Stopping capturer 2020-05-01 21:28:28.592 INFO: [57] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() Stopping ffmpeg process 2020-05-01 21:28:28.592 INFO: [57] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() ffmpeg exited with value null 2020-05-01 21:28:28.592 INFO: [57] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Quitting selenium 2020-05-01 21:28:28.604 INFO: [57] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Participants in this recording: [] 2020-05-01 21:28:28.616 INFO: [57] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 7 log entries for type browser 2020-05-01 21:28:28.644 INFO: [57] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 834 log entries for type driver 2020-05-01 21:28:28.734 INFO: [57] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 0 log entries for type client 2020-05-01 21:28:28.735 INFO: [57] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Leaving web call 2020-05-01 21:28:28.766 INFO: [57] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Quitting chrome driver 2020-05-01 21:28:28.836 INFO: [57] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Chrome driver quit 2020-05-01 21:28:28.837 INFO: [57] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Finalizing the recording 2020-05-01 21:28:28.837 SEVERE: [57] org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize() Failed to run finalize script: java.io.IOException: Cannot run program "/config/finalize.sh": error=2, No such file or directory with stack: java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) org.jitsi.jibri.util.ProcessWrapper.start(ProcessWrapper.kt:87) org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize(FileRecordingJibriService.kt:205)org.jitsi.jibri.service.impl.FileRecordingJibriService.stop(FileRecordingJibriService.kt:190)
org.jitsi.jibri.JibriManager.stopService(JibriManager.kt:254)
org.jitsi.jibri.api.xmpp.XmppApi.handleStopJibriIq(XmppApi.kt:256)
org.jitsi.jibri.api.xmpp.XmppApi.handleJibriIq(XmppApi.kt:163)
org.jitsi.jibri.api.xmpp.XmppApi.handleIq(XmppApi.kt:147)
org.jitsi.xmpp.mucclient.MucClient.handleIq(MucClient.java:446)
org.jitsi.xmpp.mucclient.MucClient.access$500(MucClient.java:47)
org.jitsi.xmpp.mucclient.MucClient$2.handleIQRequest(MucClient.java:412)
org.jivesoftware.smack.AbstractXMPPConnection$4.run(AbstractXMPPConnection.java:1188)
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-01 21:28:28.838 INFO: [57] org.jitsi.jibri.status.JibriStatusManager.log() Busy status has changed: BUSY -> IDLE
2020-05-01 21:28:28.838 INFO: [57] org.jitsi.jibri.api.xmpp.XmppApi.updatePresence() Jibri reports its status is now JibriStatus(busyStatus=IDLE, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections
2020-05-01 21:28:28.838 INFO: [57] org.jitsi.xmpp.mucclient.MucClientManager.log() Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@568ce9bc
2020-05-01 21:28:28.838 FINE: [57] org.jitsi.xmpp.mucclient.MucClientManager.log() Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@4cb47d0e
2020-05-01 21:28:28.842 FINE: [31] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element busy-status from namespace http://jitsi.org/protocol/jibri
2020-05-01 21:28:28.842 FINE: [31] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element health-status from namespace http://jitsi.org/protocol/health
2020-05-01 21:28:29.136 SEVERE: [69] org.jitsi.jibri.selenium.JibriSelenium.run() An error occurred while joining the call: org.openqa.selenium.NoSuchSessionException: Session ID is null. Using WebDriver after calling quit()?
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: '012fd1827017', ip: '172.20.0.8', os.name: 'Linux', os.arch: 'amd64', os.version: '4.15.0-96-generic', java.version: '1.8.0_242'
Driver info: driver.version: RemoteWebDriver with stack: 
org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:125)
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$visit$1.apply(CallPage.kt:48)
org.jitsi.jibri.selenium.pageobjects.CallPage$visit$1.apply(CallPage.kt:33)
org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:248)
org.jitsi.jibri.selenium.pageobjects.CallPage.visit(CallPage.kt:47)
org.jitsi.jibri.selenium.JibriSelenium$joinCall$1.run(JibriSelenium.kt:256)
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
java.util.concurrent.FutureTask.run(FutureTask.java:266)
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-01 21:28:29.136 INFO: [69] org.jitsi.jibri.selenium.JibriSelenium.onSeleniumStateChange() Transitioning from state Starting up to Error: SESSION Failed to join call
2020-05-01 21:28:29.137 INFO: [69] org.jitsi.jibri.service.impl.FileRecordingJibriService.onServiceStateChange() File recording service transitioning from state Starting up to Error: SESSION Failed to join call
2020-05-01 21:28:29.137 INFO: [69] org.jitsi.jibri.api.xmpp.XmppApi.invoke() Current service had an error, sending error iq <iq to='jibribrewery@internal-muc.meet.jitsi/focus' id='4ilrm-56' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' status='off' failure_reason='error'/></iq>
2020-05-01 21:28:29.138 INFO: [69] org.jitsi.jibri.JibriManager.stopService() No service active, ignoring stop

Could you tell me what’s the cause of this error?
I’d really appreciate that.

Thanks.

The recording seems to work fine. Now, you need to add the finalize script (can be an empty file).
You can see the path in your .env file:

# The finalizing script. Will run after recording is complete.
JIBRI_FINALIZE_RECORDING_SCRIPT_PATH=/config/finalize_recording.sh

Look for your local jitsi config folder (default is ~/.jitsi-meet-cfg) and create an empty file like this:

touch ~/.jitsi-meet-cfg/jibri/config/finalize_recording.sh
1 Like

Thank you again for your solution.
It worked and fixed the finalize.sh error.

but now, again, it’s showing another error:

2020-05-01 22:49:49.831 FINE: [153] org.jitsi.xmpp.mucclient.MucClient.log() Received an IQ with type set: IQ Stanza (jibri http://jitsi.org/protocol/jibri) [to=jibri@auth.meet.jitsi/olRa0WuT,from=jibribrewery@internal-muc.meet.jitsi/focus,id=amlicmlAYXV0aC5tZWV0LmppdHNpL29sUmEwV3VUADRwRXViLTI4ODYAP8BE7RmD8jyixLPoKsnfLw==,type=set,]
2020-05-01 22:49:49.832 INFO: [153] org.jitsi.jibri.api.xmpp.XmppApi.handleJibriIq() Received JibriIq <iq to='jibri@auth.meet.jitsi/olRa0WuT' from='jibribrewery@internal-muc.meet.jitsi/focus' id='amlicmlAYXV0aC5tZWV0LmppdHNpL29sUmEwV3VUADRwRXViLTI4ODYAP8BE7RmD8jyixLPoKsnfLw==' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' action='start' recording_mode='file' room='appscrip@muc.meet.jitsi' session_id='rskxqzkssiplwaly' app_data='{"file_recording_metadata":{"share":true}}'/></iq> from environment [MucClient id=xmpp.meet.jitsi hostname=xmpp.meet.jitsi]
2020-05-01 22:49:49.832 INFO: [153] org.jitsi.jibri.api.xmpp.XmppApi.handleStartJibriIq() Received start request
2020-05-01 22:49:49.833 INFO: [153] org.jitsi.jibri.api.xmpp.XmppApi.handleStartJibriIq() Sending 'pending' response to start IQ
2020-05-01 22:49:49.833 INFO: [154] org.jitsi.jibri.api.xmpp.XmppApi.run() Starting service
2020-05-01 22:49:49.842 INFO: [154] org.jitsi.jibri.api.xmpp.XmppApi.handleStartService() Parsed call url info: CallUrlInfo(baseUrl=https://meet.jitsi, callName=appscrip, urlParams=[])
2020-05-01 22:49:49.842 INFO: [154] org.jitsi.jibri.JibriManager.startFileRecording() Starting a file recording with params: FileRecordingRequestParams(callParams=CallParams(callUrlInfo=CallUrlInfo(baseUrl=https://meet.jitsi, callName=appscrip, urlParams=[])), sessionId=rskxqzkssiplwaly, callLoginParams=XmppCredentials(domain=recorder.meet.jitsi, username=recorder, password=2d891803b4e1e737b5c7e8267ab44066)) finalize script path: /config/finalize.sh and recordings directory: /config/recordings
Starting ChromeDriver 78.0.3904.105 (60e2d8774a8151efa6a00b1f358371b1e0e07ee2-refs/branch-heads/3904@{#877}) on port 10347
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
2020-05-01 22:49:50.263 INFO: [154] org.openqa.selenium.remote.ProtocolHandshake.createSession() Detected dialect: OSS
2020-05-01 22:49:50.275 INFO: [154] org.jitsi.jibri.selenium.JibriSelenium.<init>() Starting empty call check with a timeout of PT30S
2020-05-01 22:49:50.276 FINE: [154] org.jitsi.jibri.capture.ffmpeg.FfmpegCapturer.<init>() Detected os as OS: LINUX
2020-05-01 22:49:50.276 INFO: [154] org.jitsi.jibri.service.impl.FileRecordingJibriService.<init>() Writing recording to /config/recordings/rskxqzkssiplwaly
2020-05-01 22:49:50.278 FINE: [154] org.jitsi.jibri.statsd.JibriStatsDClient.incrementCounter() Incrementing statsd counter: start:recording
2020-05-01 22:49:50.278 INFO: [154] org.jitsi.jibri.status.JibriStatusManager.log() Busy status has changed: IDLE -> BUSY
2020-05-01 22:49:50.278 INFO: [154] org.jitsi.jibri.api.xmpp.XmppApi.updatePresence() Jibri reports its status is now JibriStatus(busyStatus=BUSY, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections
2020-05-01 22:49:50.281 INFO: [154] org.jitsi.xmpp.mucclient.MucClientManager.log() Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@7d763565
2020-05-01 22:49:50.282 FINE: [154] org.jitsi.xmpp.mucclient.MucClientManager.log() Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@bbea5b1
2020-05-01 22:49:50.285 FINE: [32] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element busy-status from namespace http://jitsi.org/protocol/jibri
2020-05-01 22:49:50.286 FINE: [32] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element health-status from namespace http://jitsi.org/protocol/health
2020-05-01 22:49:51.664 FINE: [165] org.jitsi.jibri.selenium.pageobjects.CallPage.visit() Visiting url https://meet.jitsi/appscrip#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-05-01 22:50:22.558 SEVERE: [165] org.jitsi.jibri.selenium.pageobjects.CallPage.visit() Timed out waiting for call page to load
2020-05-01 22:50:22.559 INFO: [165] org.jitsi.jibri.selenium.JibriSelenium.onSeleniumStateChange() Transitioning from state Starting up to Error: SESSION Failed to join call
2020-05-01 22:50:22.559 INFO: [165] org.jitsi.jibri.service.impl.FileRecordingJibriService.onServiceStateChange() File recording service transitioning from state Starting up to Error: SESSION Failed to join call
2020-05-01 22:50:22.559 INFO: [165] org.jitsi.jibri.api.xmpp.XmppApi.invoke() Current service had an error, sending error iq <iq to='jibribrewery@internal-muc.meet.jitsi/focus' id='7SZiO-225' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' status='off' failure_reason='error'/></iq>
2020-05-01 22:50:22.560 FINE: [165] org.jitsi.jibri.statsd.JibriStatsDClient.incrementCounter() Incrementing statsd counter: stop:recording
2020-05-01 22:50:22.560 INFO: [165] org.jitsi.jibri.JibriManager.stopService() Stopping the current service
2020-05-01 22:50:22.560 INFO: [165] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Stopping capturer
2020-05-01 22:50:22.560 INFO: [165] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() Stopping ffmpeg process
2020-05-01 22:50:22.561 INFO: [165] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() ffmpeg exited with value null
2020-05-01 22:50:22.562 INFO: [165] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Quitting selenium
2020-05-01 22:50:22.571 INFO: [165] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Participants in this recording: []
2020-05-01 22:50:22.579 INFO: [165] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 7 log entries for type browser
2020-05-01 22:50:22.621 INFO: [165] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 1038 log entries for type driver
2020-05-01 22:50:22.789 INFO: [165] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 0 log entries for type client
2020-05-01 22:50:22.790 INFO: [165] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Leaving web call
2020-05-01 22:50:22.820 INFO: [165] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Quitting chrome driver
2020-05-01 22:50:22.893 INFO: [165] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Chrome driver quit
2020-05-01 22:50:22.893 INFO: [165] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Finalizing the recording
2020-05-01 22:50:22.895 SEVERE: [165] org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize() Failed to run finalize script: java.io.IOException: Cannot run program "/config/finalize.sh": error=2, No such file or directory with stack: 
java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
org.jitsi.jibri.util.ProcessWrapper.start(ProcessWrapper.kt:87)
org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize(FileRecordingJibriService.kt:205)
org.jitsi.jibri.service.impl.FileRecordingJibriService.stop(FileRecordingJibriService.kt:190)
org.jitsi.jibri.JibriManager.stopService(JibriManager.kt:254)
org.jitsi.jibri.JibriManager$startService$1.invoke(JibriManager.kt:205)
org.jitsi.jibri.JibriManager$startService$1.invoke(JibriManager.kt:84)
org.jitsi.jibri.util.StatusPublisher$addStatusHandler$1.invoke(StatusPublisher.kt:37)
org.jitsi.jibri.util.StatusPublisher$addStatusHandler$1.invoke(StatusPublisher.kt:29)
org.jitsi.jibri.util.StatusPublisher$publishStatus$1.invoke(StatusPublisher.kt:53)
org.jitsi.jibri.util.StatusPublisher$publishStatus$1.invoke(StatusPublisher.kt:29)
kotlin.collections.CollectionsKt__MutableCollectionsKt.filterInPlace$CollectionsKt__MutableCollectionsKt(MutableCollections.kt:191)
kotlin.collections.CollectionsKt__MutableCollectionsKt.retainAll(MutableCollections.kt:182)
org.jitsi.jibri.util.StatusPublisher.publishStatus(StatusPublisher.kt:53)
org.jitsi.jibri.service.impl.StatefulJibriService.onServiceStateChange(StatefulJibriService.kt:40)
org.jitsi.jibri.service.impl.StatefulJibriService.access$onServiceStateChange(StatefulJibriService.kt:26)
org.jitsi.jibri.service.impl.StatefulJibriService$1.invoke(StatefulJibriService.kt:35)
org.jitsi.jibri.service.impl.StatefulJibriService$1.invoke(StatefulJibriService.kt:26)
org.jitsi.jibri.util.NotifyingStateMachine.notify(NotifyingStateMachine.kt:26)
org.jitsi.jibri.service.JibriServiceStateMachine.access$notify(JibriServiceStateMachine.kt:46)
org.jitsi.jibri.service.JibriServiceStateMachine$stateMachine$1$5.invoke(JibriServiceStateMachine.kt:100)
org.jitsi.jibri.service.JibriServiceStateMachine$stateMachine$1$5.invoke(JibriServiceStateMachine.kt:46)
com.tinder.StateMachine.notifyOnTransition(StateMachine.kt:65)
com.tinder.StateMachine.transition(StateMachine.kt:23)
org.jitsi.jibri.service.JibriServiceStateMachine.transition(JibriServiceStateMachine.kt:112)
org.jitsi.jibri.service.impl.StatefulJibriService$registerSubComponent$1.invoke(StatefulJibriService.kt:46)
org.jitsi.jibri.service.impl.StatefulJibriService$registerSubComponent$1.invoke(StatefulJibriService.kt:26)
org.jitsi.jibri.util.StatusPublisher$addStatusHandler$1.invoke(StatusPublisher.kt:37)
org.jitsi.jibri.util.StatusPublisher$addStatusHandler$1.invoke(StatusPublisher.kt:29)
org.jitsi.jibri.util.StatusPublisher$publishStatus$1.invoke(StatusPublisher.kt:53)
org.jitsi.jibri.util.StatusPublisher$publishStatus$1.invoke(StatusPublisher.kt:29)
kotlin.collections.CollectionsKt__MutableCollectionsKt.filterInPlace$CollectionsKt__MutableCollectionsKt(MutableCollections.kt:191)
kotlin.collections.CollectionsKt__MutableCollectionsKt.retainAll(MutableCollections.kt:182)
org.jitsi.jibri.util.StatusPublisher.publishStatus(StatusPublisher.kt:53)
org.jitsi.jibri.selenium.JibriSelenium.onSeleniumStateChange(JibriSelenium.kt:181)
org.jitsi.jibri.selenium.JibriSelenium.access$onSeleniumStateChange(JibriSelenium.kt:112)
org.jitsi.jibri.selenium.JibriSelenium$1.invoke(JibriSelenium.kt:166)
org.jitsi.jibri.selenium.JibriSelenium$1.invoke(JibriSelenium.kt:112)
org.jitsi.jibri.util.NotifyingStateMachine.notify(NotifyingStateMachine.kt:26)
org.jitsi.jibri.selenium.SeleniumStateMachine.access$notify(SeleniumStateMachine.kt:34)
org.jitsi.jibri.selenium.SeleniumStateMachine$stateMachine$1$5.invoke(SeleniumStateMachine.kt:79)
org.jitsi.jibri.selenium.SeleniumStateMachine$stateMachine$1$5.invoke(SeleniumStateMachine.kt:34)
com.tinder.StateMachine.notifyOnTransition(StateMachine.kt:65)
com.tinder.StateMachine.transition(StateMachine.kt:23)
org.jitsi.jibri.selenium.SeleniumStateMachine.transition(SeleniumStateMachine.kt:84)
org.jitsi.jibri.selenium.JibriSelenium$joinCall$1.run(JibriSelenium.kt:257)
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
java.util.concurrent.FutureTask.run(FutureTask.java:266)
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-01 22:50:22.895 INFO: [165] org.jitsi.jibri.status.JibriStatusManager.log() Busy status has changed: BUSY -> IDLE
2020-05-01 22:50:22.896 INFO: [165] org.jitsi.jibri.api.xmpp.XmppApi.updatePresence() Jibri reports its status is now JibriStatus(busyStatus=IDLE, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections
2020-05-01 22:50:22.896 INFO: [165] org.jitsi.xmpp.mucclient.MucClientManager.log() Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@2439fec3
2020-05-01 22:50:22.896 FINE: [165] org.jitsi.xmpp.mucclient.MucClientManager.log() Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@7d763565
2020-05-01 22:50:22.899 FINE: [32] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element busy-status from namespace http://jitsi.org/protocol/jibri
2020-05-01 22:50:22.899 FINE: [32] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element health-status from namespace http://jitsi.org/protocol/health

Could you again please help me out with this?

Thank you so much.