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

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.

Please check the script again, I can still see an error about the finalize script.
The name of the script for your current setup has to be finalize.sh.
You need to rename it. Also I don’t know if it expects permissions to execute the file:

chmod +x ~/.jitsi-meet-cfg/jibri/config/finalize.sh

I don’t know what causes the other errors about not being able to join the call.

1 Like

About joining the call. I have the same problem. Maybe my logs from jibri are helping?

https://pastebin.com/0caPDiZv

1 Like

Thank you @teutat3s

I, actually, created a new directory in jibri folder named config and put a the finalize.sh file there. So it caused jibri to store that file in config/config/finalize.sh.

Now, I have resolved the finalize.sh issue and the error is gone.

But still, I’m getting that other issue:

2020-05-02 20:01:26.219 FINE: [41] 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/5B883gDG,from=jibribrewery@internal-muc.meet.jitsi/focus,id=amlicmlAYXV0aC5tZWV0LmppdHNpLzVCODgzZ0RHAFRLR0dnLTE4OQACkW7yIP3POGKQpdVytgN3,type=set,]
2020-05-02 20:01:26.222 INFO: [41] org.jitsi.jibri.api.xmpp.XmppApi.handleJibriIq() Received JibriIq <iq to='jibri@auth.meet.jitsi/5B883gDG' from='jibribrewery@internal-muc.meet.jitsi/focus' id='amlicmlAYXV0aC5tZWV0LmppdHNpLzVCODgzZ0RHAFRLR0dnLTE4OQACkW7yIP3POGKQpdVytgN3' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' action='start' recording_mode='file' room='appscrip@muc.meet.jitsi' session_id='zjykotaxaomoevwl' app_data='{"file_recording_metadata":{"share":true}}'/></iq> from environment [MucClient id=xmpp.meet.jitsi hostname=xmpp.meet.jitsi]
2020-05-02 20:01:26.223 INFO: [41] org.jitsi.jibri.api.xmpp.XmppApi.handleStartJibriIq() Received start request
2020-05-02 20:01:26.228 INFO: [41] org.jitsi.jibri.api.xmpp.XmppApi.handleStartJibriIq() Sending 'pending' response to start IQ
2020-05-02 20:01:26.228 INFO: [42] org.jitsi.jibri.api.xmpp.XmppApi.run() Starting service
2020-05-02 20:01:26.278 INFO: [42] org.jitsi.jibri.api.xmpp.XmppApi.handleStartService() Parsed call url info: CallUrlInfo(baseUrl=https://meet.jitsi, callName=appscrip, urlParams=[])
2020-05-02 20:01:26.280 INFO: [42] org.jitsi.jibri.JibriManager.startFileRecording() Starting a file recording with params: FileRecordingRequestParams(callParams=CallParams(callUrlInfo=CallUrlInfo(baseUrl=https://meet.jitsi, callName=appscrip, urlParams=[])), sessionId=zjykotaxaomoevwl, 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 17647
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
2020-05-02 20:01:27.343 INFO: [42] org.openqa.selenium.remote.ProtocolHandshake.createSession() Detected dialect: OSS
2020-05-02 20:01:27.362 INFO: [42] org.jitsi.jibri.selenium.JibriSelenium.<init>() Starting empty call check with a timeout of PT30S
2020-05-02 20:01:27.375 FINE: [42] org.jitsi.jibri.capture.ffmpeg.FfmpegCapturer.<init>() Detected os as OS: LINUX
2020-05-02 20:01:27.383 INFO: [42] org.jitsi.jibri.service.impl.FileRecordingJibriService.<init>() Writing recording to /config/recordings/zjykotaxaomoevwl
2020-05-02 20:01:27.384 FINE: [42] org.jitsi.jibri.statsd.JibriStatsDClient.incrementCounter() Incrementing statsd counter: start:recording
2020-05-02 20:01:27.386 INFO: [42] org.jitsi.jibri.status.JibriStatusManager.log() Busy status has changed: IDLE -> BUSY
2020-05-02 20:01:27.387 INFO: [42] 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-02 20:01:27.387 INFO: [42] org.jitsi.xmpp.mucclient.MucClientManager.log() Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@3f7c24cc
2020-05-02 20:01:27.388 FINE: [42] org.jitsi.xmpp.mucclient.MucClientManager.log() Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@771158fb
2020-05-02 20:01:27.392 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-02 20:01:27.392 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-02 20:01:28.738 FINE: [52] 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-02 20:01:59.690 SEVERE: [52] org.jitsi.jibri.selenium.pageobjects.CallPage.visit() Timed out waiting for call page to load
2020-05-02 20:01:59.693 INFO: [52] org.jitsi.jibri.selenium.JibriSelenium.onSeleniumStateChange() Transitioning from state Starting up to Error: SESSION Failed to join call
2020-05-02 20:01:59.694 INFO: [52] org.jitsi.jibri.service.impl.FileRecordingJibriService.onServiceStateChange() File recording service transitioning from state Starting up to Error: SESSION Failed to join call
2020-05-02 20:01:59.695 INFO: [52] org.jitsi.jibri.api.xmpp.XmppApi.invoke() Current service had an error, sending error iq <iq to='jibribrewery@internal-muc.meet.jitsi/focus' id='XnIg9-33' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' status='off' failure_reason='error'/></iq>
2020-05-02 20:01:59.698 FINE: [52] org.jitsi.jibri.statsd.JibriStatsDClient.incrementCounter() Incrementing statsd counter: stop:recording
2020-05-02 20:01:59.698 INFO: [52] org.jitsi.jibri.JibriManager.stopService() Stopping the current service
2020-05-02 20:01:59.699 INFO: [52] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Stopping capturer
2020-05-02 20:01:59.699 INFO: [52] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() Stopping ffmpeg process
2020-05-02 20:01:59.700 INFO: [52] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() ffmpeg exited with value null
2020-05-02 20:01:59.700 INFO: [52] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Quitting selenium
2020-05-02 20:01:59.714 INFO: [52] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Participants in this recording: []
2020-05-02 20:01:59.769 INFO: [52] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 7 log entries for type browser
2020-05-02 20:01:59.840 INFO: [52] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 1043 log entries for type driver
2020-05-02 20:02:00.043 INFO: [52] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 0 log entries for type client
2020-05-02 20:02:00.043 INFO: [52] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Leaving web call
2020-05-02 20:02:00.077 INFO: [52] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Quitting chrome driver
2020-05-02 20:02:00.149 INFO: [52] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Chrome driver quit
2020-05-02 20:02:00.149 INFO: [52] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Finalizing the recording
2020-05-02 20:02:10.157 SEVERE: [52] org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize() Timed out waiting for process logger task to complete
2020-05-02 20:02:10.158 INFO: [52] org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize() Recording finalize script finished with exit value 0
2020-05-02 20:02:10.158 INFO: [52] org.jitsi.jibri.status.JibriStatusManager.log() Busy status has changed: BUSY -> IDLE
2020-05-02 20:02:10.159 INFO: [52] 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-02 20:02:10.159 INFO: [52] org.jitsi.xmpp.mucclient.MucClientManager.log() Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@4b338f93
2020-05-02 20:02:10.159 FINE: [52] org.jitsi.xmpp.mucclient.MucClientManager.log() Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@3f7c24cc
2020-05-02 20:02:10.162 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-02 20:02:10.162 FINE: [31] 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 to resolve this issue?

Thank you.

Hello.
Could anybody help me?
I install docker jitsi-meet scenario by config of all modules.
every thing has work. Im install this scenario by host i the internet and install letsencript for https.
But we dont want Jitsi meet in the internet. We want in the local network.
If I install on local network dont work recording. im disable lets encript for installation but cant recor my videos.
in the log files i have this error for jibri container.

SEVERE: [50] org.jitsi.jibri.selenium.Jibri Selenium.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.
Please help me.

@khosronz How did you fix it?

I’m getting same error with docker-compose. I’m using Traefik in front of web for letsencrypt and web is listening on port 80. I’m using FQDN.

I have the same problem

where is the .env file located?

It should located in the same folder with the docker-compose.yml file, its a hidden file… try list it by ls -lath

Thanks for the answer, I don’t use docker, I installed jibri on the same jitsi server

I have the same problem:

2020-08-12 07:39:13.593 SEVERE: [104] 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.

I don’t use docker, I use 2 separate servers, one for JItsi and one for Jibri.

I’m using Ubuntu Server 20.04 whitout x-org and I can’t open chrome for allow third party cookies.

Can you help me please.

Hi, I have the same error. I use aws to run Jitsi stack. Jibri is running on separate machine. I disabled HTTPS on jibri

DISABLE_HTTPS=1

And I still have the following error

2020-08-18 13:25:26.998 SEVERE: [88] org.jitsi.jibri.selenium.JibriSelenium.run() An error occurred while joining the call: org.openqa.selenium.WebDriverException: <unknown>: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
  (Session info: chrome=78.0.3904.97)
  (Driver info: chromedriver=78.0.3904.105 (60e2d8774a8151efa6a00b1f358371b1e0e07ee2-refs/branch-heads/3904@{#877}),platform=Linux 4.15.0-112-generic 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: '0cd93f7d8820', ip: '172.29.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '4.15.0-112-generic', java.version: '1.8.0_252'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities {acceptInsecureCerts: false, acceptSslCerts: false, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 78.0.3904.105 (60e2d8774a81..., userDataDir: /tmp/.com.google.Chrome.2kdDvl}, cssSelectorsEnabled: true, databaseEnabled: false, goog:chromeOptions: {debuggerAddress: localhost:36235}, 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: 78.0.3904.97, webStorageEnabled: true}
Session ID: 5fd61cee946742f921f749403107eaca 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:178)
org.jitsi.jibri.selenium.JibriSelenium.access$setLocalStorageValues(JibriSelenium.kt:116)
org.jitsi.jibri.selenium.JibriSelenium$joinCall$1.run(JibriSelenium.kt:258)
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)

Hi Again, if you gays still have problem with recording.
You should try (this work for me) use STABLE docker images - non the latest one.

You have to change in the docker-compose.yml and jibri.yml and if u use in jigasi.yml, the image statement from: (example) – image: jitsi/web:latest – to image: jitsi/web:stable-4627-1

If you have already installed Jitsi and Jibri - u need rebuild docker images with:

  1. docker-compose -f docker-compose.yml -f jigasi.yml -f jibri.yml stop
  2. docker-compose -f docker-compose.yml -f jigasi.yml -f jibri.yml pull
  3. docker-compose -f docker-compose.yml -f jigasi.yml -f jibri.yml up -d

On stable version i never had problem with recordings, it works out of the box.