Jitsi web breaks when setting new video resolution

Hi,

We configured jitsi meet web to have ideal video resolution of 640 x 320 in config.js of jitsi web docker image. This results in the jitsi meet web UI breaking, upon clicking the join meeting button.

Here is our config.js for jitsi web

// Jitsi Meet configuration.
var config = {};

if (!config.hasOwnProperty('hosts')) config.hosts = {};

config.hosts.domain = 'meet.jitsi';
config.focusUserJid = 'focus@auth.meet.jitsi';

var subdomain = "<!--# echo var="subdomain" default="" -->";
if (subdomain) {
    subdomain = subdomain.substr(0,subdomain.length-1).split('.').join('_').toLowerCase() + '.';
}
config.hosts.muc = 'muc.'+subdomain+'meet.jitsi';
config.bosh = '/http-bind';
config.websocket = 'wss://<XMPP_HOST>/xmpp-websocket';


// Video configuration.
//

if (!config.hasOwnProperty('constraints')) config.constraints = {};
if (!config.constraints.hasOwnProperty('video')) config.constraints.video = {};

config.resolution = 720;
config.constraints.video.height = { ideal: 320, max: 720, min: 180 };
config.constraints.video.width = { ideal: 640, max: 1280, min: 320};
config.disableSimulcast = true;
config.startVideoMuted = 10;
config.startWithVideoMuted = false;

if (!config.hasOwnProperty('flags')) config.flags = {};
config.flags.sourceNameSignaling = false;
config.flags.sendMultipleVideoStreams = false;


// ScreenShare Configuration.
//
config.desktopSharingFrameRate = { min: 5, max: 5 };

// Audio configuration.
//

config.enableNoAudioDetection = true;
config.enableTalkWhileMuted = false;
config.disableAP = false;

if (!config.hasOwnProperty('audioQuality')) config.audioQuality = {};
config.audioQuality.stereo = false;

config.startAudioOnly = false;
config.startAudioMuted = 10;
config.startWithAudioMuted = false;
config.startSilent = false;
config.enableOpusRed = false;
config.disableAudioLevels = false;
config.enableNoisyMicDetection = true;


// Peer-to-Peer options.
//

if (!config.hasOwnProperty('p2p')) config.p2p = {};

config.p2p.enabled = false;


// Breakout Rooms
//

config.hideAddRoomButton = true;


// Etherpad
//

// Recording.
//

// Analytics.
//

if (!config.hasOwnProperty('analytics')) config.analytics = {};

// Enables callstatsUsername to be reported as statsId and used
// by callstats as repoted remote id.
config.enableStatsID = false;


// Dial in/out services.
//


// Calendar service integration.
//

config.enableCalendarIntegration = false;

// Invitation service.
//

// Miscellaneous.
//

// Prejoin page.
if (!config.hasOwnProperty('prejoinConfig')) config.prejoinConfig = {};
config.prejoinConfig.enabled = true;

// Hides the participant name editing field in the prejoin screen.
config.prejoinConfig.hideDisplayName = false;
 
// List of buttons to hide from the extra join options dropdown on prejoin screen.
// Welcome page.
config.enableWelcomePage = true;

// Close page.
config.enableClosePage = true;

// Default language.
// Require users to always specify a display name.
config.requireDisplayName = false;


// Chrome extension banner.
// Advanced.
//

// Lipsync hack in jicofo, may not be safe.
config.enableLipSync = false;

config.enableRemb = true;
config.enableTcc = true;

// Enable IPv6 support.
config.useIPv6 = true;

// Transcriptions (subtitles and buttons can be configured in interface_config)
config.transcribingEnabled = false;

// Deployment information.
//

if (!config.hasOwnProperty('deploymentInfo')) config.deploymentInfo = {};

// Testing
//

if (!config.hasOwnProperty('testing')) config.testing = {};
if (!config.testing.hasOwnProperty('octo')) config.testing.octo = {};

config.testing.capScreenshareBitrate = 1;
config.testing.octo.probability = 0;

// Deep Linking
config.disableDeepLinking = true;

// P2P preferred codec
// enable preffered video Codec
if (!config.hasOwnProperty('videoQuality')) config.videoQuality = {};
config.videoQuality.preferredCodec = 'VP9';
config.videoQuality.enforcePreferredCodec = false;

if (!config.videoQuality.hasOwnProperty('maxBitratesVideo')) config.videoQuality.maxBitratesVideo = {};
// Reactions
config.disableReactions = false;

// Polls
config.disablePolls = true;

// Configure toolbar buttons
config.toolbarButtons = [ 'microphone','camera','closedcaptions','desktop','fullscreen','fodeviceselecetion','hangup','profile','chat','sharedvideo','shareaudio','settings','raisehand','videoquality','videobackgroundblur','filmstrip','shortcuts','tileview','mute-everyone','mute-video-everyone','select-background','invite' ];
// Hides the buttons at pre-join screen
// Configure remote participant video menu
if (!config.hasOwnProperty('remoteVideoMenu')) config.remoteVideoMenu = {};
config.remoteVideoMenu.disabled = false;
config.remoteVideoMenu.disableKick = false;
config.remoteVideoMenu.disableGrantModerator = false;
config.remoteVideoMenu.disablePrivateChat = false;

// Configure e2eping
if (!config.hasOwnProperty('e2eping')) config.e2eping = {};
config.e2eping.enabled = false;

config.connectionIndicators = { disabled: false };
config.enableLayerSuspension = true;
config.toolbarButtons = [ 'participants-pane', 'microphone','camera','closedcaptions','desktop','fullscreen','fodeviceselecetion','hangup','profile','chat','sharedvideo','shareaudio','settings','raisehand','videoquality','videobackgroundblur','filmstrip','shortcuts','tileview','mute-everyone','mute-video-everyone','select-background','invite' ];

Errors from jitsi meet web UI


Logger.js:154 2022-11-14T14:59:49.910Z [modules/RTC/RTCUtils.js] <Bn.init>:  Disable AP: false
Logger.js:154 2022-11-14T14:59:49.910Z [modules/RTC/RTCUtils.js] <Bn.init>:  Stereo: false
Logger.js:154 2022-11-14T14:59:49.912Z [modules/statistics/AnalyticsAdapter.js] <Object.dispose>:  Disposing of analytics adapter.
r @ Logger.js:154
dispose @ AnalyticsAdapter.js:116
(anonymous) @ functions.js:142
(anonymous) @ middleware.js:95
(anonymous) @ middleware.any.js:46
(anonymous) @ middleware.js:53
(anonymous) @ middleware.js:27
(anonymous) @ middleware.js:23
(anonymous) @ middleware.web.js:11
(anonymous) @ middleware.web.js:36
(anonymous) @ middleware.any.js:112
(anonymous) @ middleware.js:16
(anonymous) @ middleware.js:91
(anonymous) @ middleware.js:75
(anonymous) @ middleware.js:24
(anonymous) @ middleware.js:20
(anonymous) @ middleware.js:15
(anonymous) @ middleware.js:197
(anonymous) @ middleware.js:23
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:76
(anonymous) @ middleware.js:244
(anonymous) @ middleware.web.js:25
(anonymous) @ middleware.js:201
(anonymous) @ middleware.js:38
(anonymous) @ middleware.web.js:126
(anonymous) @ middleware.js:180
dispatch @ redux.js:636
(anonymous) @ actions.web.js:140
await in (anonymous) (async)
(anonymous) @ index.js:11
(anonymous) @ middleware.js:30
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:19
(anonymous) @ middleware.web.js:29
(anonymous) @ middleware.any.js:47
(anonymous) @ middleware.js:67
(anonymous) @ middleware.js:45
(anonymous) @ middleware.js:65
(anonymous) @ middleware.js:20
(anonymous) @ middleware.js:175
(anonymous) @ middleware.js:71
(anonymous) @ middleware.js:87
(anonymous) @ middleware.js:40
(anonymous) @ middleware.ts:165
(anonymous) @ middleware.js:80
(anonymous) @ middleware.js:80
(anonymous) @ middleware.js:31
(anonymous) @ middleware.web.js:46
(anonymous) @ middleware.web.js:24
(anonymous) @ middleware.any.js:94
(anonymous) @ middleware.js:80
(anonymous) @ middleware.web.js:303
(anonymous) @ middleware.js:50
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:16
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:23
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:16
(anonymous) @ middleware.js:106
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:260
(anonymous) @ middleware.js:39
(anonymous) @ middleware.js:24
(anonymous) @ middleware.js:28
(anonymous) @ middleware.web.js:20
(anonymous) @ middleware.js:42
(anonymous) @ middleware.js:332
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:147
(anonymous) @ middleware.js:44
(anonymous) @ middleware.js:49
(anonymous) @ middleware.js:97
(anonymous) @ middleware.js:12
(anonymous) @ middleware.js:39
(anonymous) @ middleware.js:35
(anonymous) @ middleware.web.js:65
(anonymous) @ middleware.any.js:109
(anonymous) @ middleware.js:207
(anonymous) @ middleware.js:106
(anonymous) @ middleware.any.js:46
(anonymous) @ middleware.js:53
(anonymous) @ middleware.js:27
(anonymous) @ middleware.js:23
(anonymous) @ middleware.web.js:11
(anonymous) @ middleware.web.js:36
(anonymous) @ middleware.any.js:112
(anonymous) @ middleware.js:16
(anonymous) @ middleware.js:91
(anonymous) @ middleware.js:75
(anonymous) @ middleware.js:24
(anonymous) @ middleware.js:20
(anonymous) @ middleware.js:15
(anonymous) @ middleware.js:197
(anonymous) @ middleware.js:23
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:76
(anonymous) @ middleware.js:244
(anonymous) @ middleware.web.js:25
(anonymous) @ middleware.js:201
(anonymous) @ middleware.js:38
(anonymous) @ middleware.web.js:126
(anonymous) @ middleware.js:180
_openURL @ AbstractApp.js:114
componentDidMount @ AbstractApp.js:49
await in componentDidMount (async)
ms @ react-dom.production.min.js:219
Pl @ react-dom.production.min.js:259
t.unstable_runWithPriority @ scheduler.production.min.js:18
Wr @ react-dom.production.min.js:122
Dl @ react-dom.production.min.js:252
gl @ react-dom.production.min.js:243
dl @ react-dom.production.min.js:237
Jl @ react-dom.production.min.js:285
(anonymous) @ react-dom.production.min.js:289
yl @ react-dom.production.min.js:244
ac @ react-dom.production.min.js:289
t.render @ react-dom.production.min.js:296
$fe.renderEntryPoint @ index.web.js:54
(anonymous) @ 7d424f78-1cd4-4522-9d37-0f1f23b6db35:26
Logger.js:154 2022-11-14T14:59:49.912Z [features/analytics] Initialized 0 analytics handlers
Logger.js:154 2022-11-14T14:59:49.913Z [features/base/media] Start muted: audio, 
Logger.js:154 2022-11-14T14:59:49.915Z [features/base/media] Start audio only set to false
Logger.js:154 2022-11-14T14:59:49.945Z [index.web] <HTMLDocument.<anonymous>>:  (TIME) document ready:	 383.5
7d424f78-1cd4-4522-9d37-0f1f23b6db35:45 Service worker registered. ServiceWorkerRegistration {installing: null, waiting: null, active: ServiceWorker, navigationPreload: NavigationPreloadManager, scope: 'https://meet-vc1.qa.videochat.ionos.com/', …}
Logger.js:154 2022-11-14T14:59:49.971Z [modules/RTC/RTCUtils.js] <Ia>:  list of media devices has changed: (11) [InputDeviceInfo, InputDeviceInfo, InputDeviceInfo, InputDeviceInfo, InputDeviceInfo, InputDeviceInfo, MediaDeviceInfo, MediaDeviceInfo, MediaDeviceInfo, MediaDeviceInfo, MediaDeviceInfo]
Logger.js:154 2022-11-14T14:59:49.995Z [modules/RTC/RTCUtils.js] Audio output device set to default
Logger.js:154 2022-11-14T14:59:50.016Z [features/base/connection] Using service URL wss://meet-vc1.qa.videochat.ionos.com/xmpp-websocket
Logger.js:154 2022-11-14T14:59:50.017Z [modules/xmpp/xmpp.js] <Zo._initStrophePlugins>:  P2P STUN servers:  [{…}]
Logger.js:154 2022-11-14T14:59:50.020Z [modules/xmpp/xmpp.js] <Zo.connectionHandler>:  (TIME) Strophe connecting:	 457.89999997615814
Logger.js:154 2022-11-14T14:59:50.022Z [modules/RTC/RTCUtils.js] <Bn.<anonymous>>:  Got media constraints:  {"video":{"height":{"ideal":720},"width":{"ideal":1280},"facingMode":"user"},"audio":{"autoGainControl":true,"deviceId":"5e8435907683eef0652343e1b3d874b21becf70e05752ef4b07af38e262d07af","echoCancellation":true,"noiseSuppression":true}}
Logger.js:154 2022-11-14T14:59:50.119Z [modules/RTC/RTCUtils.js] onUserMediaSuccess
Logger.js:154 2022-11-14T14:59:50.124Z [features/base/media] Sync audio track muted state to muted
Logger.js:154 2022-11-14T14:59:50.127Z [modules/RTC/JitsiLocalTrack.js] Mute LocalTrack[1,audio]: true
Logger.js:154 2022-11-14T14:59:50.314Z [modules/xmpp/XmppConnection.js] <ks._maybeEnableStreamResume>:  Enabling XEP-0198 stream management
Logger.js:154 2022-11-14T14:59:50.314Z [modules/xmpp/XmppConnection.js] <ks._maybeStartWSKeepAlive>:  WebSocket keep alive interval: 60000ms
Logger.js:154 2022-11-14T14:59:50.314Z [modules/xmpp/strophe.ping.js] <ws.startInterval>:  XMPP pings will be sent every 10000 ms
Logger.js:154 2022-11-14T14:59:50.314Z [modules/xmpp/xmpp.js] <Zo.connectionHandler>:  (TIME) Strophe connected:	 752.2999999523163
Logger.js:154 2022-11-14T14:59:50.314Z [modules/xmpp/xmpp.js] <Zo.connectionHandler>:  My Jabber ID: oehfefrwb_zm4bjrkgjrdyqd@meet.jitsi/Tv_r0WFFQFD0
Logger.js:154 2022-11-14T14:59:51.890Z [features/base/redux] <Object.persistState>:  redux state persisted. b515c7dc5a40a62c8e8aa6738b28d587 -> 9216e17fc50e05a352a766622158e80c
Logger.js:154 2022-11-14T14:59:51.900Z [modules/xmpp/xmpp.js] <Zo.createRoom>:  JID oehfefrwb_zm4bjrkgjrdyqd@meet.jitsi/Tv_r0WFFQFD0 using MUC nickname bc684585
Logger.js:154 2022-11-14T14:59:51.901Z [modules/xmpp/ChatRoom.js] <new pr>:  Joined MUC as 7d424f78-1cd4-4522-9d37-0f1f23b6db35@muc.meet.jitsi/bc684585
Logger.js:154 2022-11-14T14:59:51.902Z [modules/connectivity/ParticipantConnectionStatus.js] <new Nn>:  RtcMuteTimeout set to: 10000
Logger.js:154 2022-11-14T14:59:51.903Z [modules/statistics/AvgRTPStatsReporter.js] <new Od>:  Avg RTP stats will be calculated every 15 samples
Logger.js:154 2022-11-14T14:59:51.903Z [JitsiConference.js] <new Rl>:  backToP2PDelay: 5
Logger.js:154 2022-11-14T14:59:51.903Z [JitsiConference.js] <new Rl>:  End-to-End Encryption is supported
Logger.js:154 2022-11-14T14:59:51.906Z [JitsiConference.js] <Rl._doReplaceTrack>:  _doReplaceTrack - no JVB JingleSession
Logger.js:154 2022-11-14T14:59:51.907Z [JitsiConference.js] <Rl._doReplaceTrack>:  _doReplaceTrack - no P2P JingleSession
Logger.js:154 2022-11-14T14:59:51.918Z [modules/xmpp/moderator.js] <cr.setFocusUserJid>:  Focus jid set to:  focus@auth.meet.jitsi
Logger.js:154 2022-11-14T14:59:51.919Z [modules/xmpp/moderator.js] <cr.createConferenceIq>:  Session ID: null machine UID: fc32a1fa2ebeba754344a323df859b64
Logger.js:154 2022-11-14T14:59:51.920Z [conference.js] Initialized with 1 local tracks
Logger.js:154 2022-11-14T14:59:51.933Z [JitsiMeetJS.js] <Object.getGlobalOnErrorHandler>:  UnhandledError: Focus error, retry after 1000 Script: null Line: null Column: null StackTrace:  Error: Focus error, retry after 1000
    at cr._allocateConferenceFocusError (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:376847)
    at https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:375888
    at I.Handler.handler (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:154229)
    at I.Handler.run (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:149528)
    at https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:157966
    at Object.forEachChild (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:141196)
    at I.Connection._dataRecv (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:157815)
    at O.Websocket._onMessage (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:187045)
r @ Logger.js:154
getGlobalOnErrorHandler @ JitsiMeetJS.js:538
window.onerror @ middleware.js:110
callErrorHandler @ GlobalOnErrorHandler.js:61
cr._allocateConferenceFocusError @ moderator.js:382
(anonymous) @ moderator.js:309
(anonymous) @ strophe.umd.js:2716
run @ strophe.umd.js:1875
(anonymous) @ strophe.umd.js:3157
forEachChild @ strophe.umd.js:830
_dataRecv @ strophe.umd.js:3146
_onMessage @ strophe.umd.js:5836
Logger.js:154 2022-11-14T14:59:51.933Z [modules/xmpp/moderator.js] <cr._allocateConferenceFocusError>:  Focus error, retry after 1000 <iq xmlns=​"jabber:​client" from=​"focus.meet.jitsi" to=​"oehfefrwb_zm4bjrkgjrdyqd@meet.jitsi/​Tv_r0WFFQFD0" type=​"error" id=​"3a90f016-7b8d-4418-829f-94f228182884:​sendIQ">​…​</iq>​
r @ Logger.js:154
cr._allocateConferenceFocusError @ moderator.js:383
(anonymous) @ moderator.js:309
(anonymous) @ strophe.umd.js:2716
run @ strophe.umd.js:1875
(anonymous) @ strophe.umd.js:3157
forEachChild @ strophe.umd.js:830
_dataRecv @ strophe.umd.js:3146
_onMessage @ strophe.umd.js:5836
Logger.js:154 2022-11-14T14:59:51.938Z [features/overlay] <Foe.componentDidMount>:  The conference will be reloaded after 28 seconds.
Logger.js:154 2022-11-14T14:59:51.940Z [conference.js] <Hce._onConferenceFailed>:  CONFERENCE FAILED: conference.focusDisconnected focus.meet.jitsi 1
i @ Logger.js:154
_onConferenceFailed @ conference.js:320
r.emit @ events.js:153
r.emit @ events.js:153
cr._allocateConferenceFocusError @ moderator.js:393
(anonymous) @ moderator.js:309
(anonymous) @ strophe.umd.js:2716
run @ strophe.umd.js:1875
(anonymous) @ strophe.umd.js:3157
forEachChild @ strophe.umd.js:830
_dataRecv @ strophe.umd.js:3146
_onMessage @ strophe.umd.js:5836
Logger.js:154 2022-11-14T14:59:52.214Z [modules/UI/videolayout/LargeVideoManager.js] hover in local
Logger.js:154 2022-11-14T14:59:52.944Z [modules/xmpp/moderator.js] <cr.createConferenceIq>:  Session ID: null machine UID: fc32a1fa2ebeba754344a323df859b64
Logger.js:154 2022-11-14T14:59:52.958Z [JitsiMeetJS.js] <Object.getGlobalOnErrorHandler>:  UnhandledError: Focus error, retry after 2000 Script: null Line: null Column: null StackTrace:  Error: Focus error, retry after 2000
    at cr._allocateConferenceFocusError (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:376847)
    at https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:375888
    at I.Handler.handler (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:154229)
    at I.Handler.run (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:149528)
    at https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:157966
    at Object.forEachChild (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:141196)
    at I.Connection._dataRecv (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:157815)
    at O.Websocket._onMessage (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:187045)
r @ Logger.js:154
getGlobalOnErrorHandler @ JitsiMeetJS.js:538
window.onerror @ middleware.js:110
callErrorHandler @ GlobalOnErrorHandler.js:61
cr._allocateConferenceFocusError @ moderator.js:382
(anonymous) @ moderator.js:309
(anonymous) @ strophe.umd.js:2716
run @ strophe.umd.js:1875
(anonymous) @ strophe.umd.js:3157
forEachChild @ strophe.umd.js:830
_dataRecv @ strophe.umd.js:3146
_onMessage @ strophe.umd.js:5836
Logger.js:154 2022-11-14T14:59:52.958Z [modules/xmpp/moderator.js] <cr._allocateConferenceFocusError>:  Focus error, retry after 2000 <iq xmlns=​"jabber:​client" from=​"focus.meet.jitsi" to=​"oehfefrwb_zm4bjrkgjrdyqd@meet.jitsi/​Tv_r0WFFQFD0" type=​"error" id=​"66e2fe43-5760-4cce-a743-e803d87fe334:​sendIQ">​…​</iq>​
r @ Logger.js:154
cr._allocateConferenceFocusError @ moderator.js:383
(anonymous) @ moderator.js:309
(anonymous) @ strophe.umd.js:2716
run @ strophe.umd.js:1875
(anonymous) @ strophe.umd.js:3157
forEachChild @ strophe.umd.js:830
_dataRecv @ strophe.umd.js:3146
_onMessage @ strophe.umd.js:5836
Logger.js:154 2022-11-14T14:59:52.960Z [conference.js] <Hce._onConferenceFailed>:  CONFERENCE FAILED: conference.focusDisconnected focus.meet.jitsi 2
i @ Logger.js:154
_onConferenceFailed @ conference.js:320
r.emit @ events.js:153
r.emit @ events.js:153
cr._allocateConferenceFocusError @ moderator.js:393
(anonymous) @ moderator.js:309
(anonymous) @ strophe.umd.js:2716
run @ strophe.umd.js:1875
(anonymous) @ strophe.umd.js:3157
forEachChild @ strophe.umd.js:830
_dataRecv @ strophe.umd.js:3146
_onMessage @ strophe.umd.js:5836
Logger.js:154 2022-11-14T14:59:54.962Z [modules/xmpp/moderator.js] <cr.createConferenceIq>:  Session ID: null machine UID: fc32a1fa2ebeba754344a323df859b64
Logger.js:154 2022-11-14T14:59:54.977Z [JitsiMeetJS.js] <Object.getGlobalOnErrorHandler>:  UnhandledError: Focus error, retry after 4000 Script: null Line: null Column: null StackTrace:  Error: Focus error, retry after 4000
    at cr._allocateConferenceFocusError (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:376847)
    at https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:375888
    at I.Handler.handler (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:154229)
    at I.Handler.run (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:149528)
    at https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:157966
    at Object.forEachChild (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:141196)
    at I.Connection._dataRecv (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:157815)
    at O.Websocket._onMessage (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:187045)
r @ Logger.js:154
getGlobalOnErrorHandler @ JitsiMeetJS.js:538
window.onerror @ middleware.js:110
callErrorHandler @ GlobalOnErrorHandler.js:61
cr._allocateConferenceFocusError @ moderator.js:382
(anonymous) @ moderator.js:309
(anonymous) @ strophe.umd.js:2716
run @ strophe.umd.js:1875
(anonymous) @ strophe.umd.js:3157
forEachChild @ strophe.umd.js:830
_dataRecv @ strophe.umd.js:3146
_onMessage @ strophe.umd.js:5836
Logger.js:154 2022-11-14T14:59:54.977Z [modules/xmpp/moderator.js] <cr._allocateConferenceFocusError>:  Focus error, retry after 4000 <iq xmlns=​"jabber:​client" from=​"focus.meet.jitsi" to=​"oehfefrwb_zm4bjrkgjrdyqd@meet.jitsi/​Tv_r0WFFQFD0" type=​"error" id=​"f4bba49d-78bd-40d3-baa8-a9810963cff2:​sendIQ">​…​</iq>​
r @ Logger.js:154
cr._allocateConferenceFocusError @ moderator.js:383
(anonymous) @ moderator.js:309
(anonymous) @ strophe.umd.js:2716
run @ strophe.umd.js:1875
(anonymous) @ strophe.umd.js:3157
forEachChild @ strophe.umd.js:830
_dataRecv @ strophe.umd.js:3146
_onMessage @ strophe.umd.js:5836
Logger.js:154 2022-11-14T14:59:54.982Z [conference.js] <Hce._onConferenceFailed>:  CONFERENCE FAILED: conference.focusDisconnected focus.meet.jitsi 4
i @ Logger.js:154
_onConferenceFailed @ conference.js:320
r.emit @ events.js:153
r.emit @ events.js:153
cr._allocateConferenceFocusError @ moderator.js:393
(anonymous) @ moderator.js:309
(anonymous) @ strophe.umd.js:2716
run @ strophe.umd.js:1875
(anonymous) @ strophe.umd.js:3157
forEachChild @ strophe.umd.js:830
_dataRecv @ strophe.umd.js:3146
_onMessage @ strophe.umd.js:5836
Logger.js:154 2022-11-14T14:59:58.992Z [modules/xmpp/moderator.js] <cr.createConferenceIq>:  Session ID: null machine UID: fc32a1fa2ebeba754344a323df859b64
Logger.js:154 2022-11-14T14:59:59.008Z [JitsiMeetJS.js] <Object.getGlobalOnErrorHandler>:  UnhandledError: Focus error, retry after 8000 Script: null Line: null Column: null StackTrace:  Error: Focus error, retry after 8000
    at cr._allocateConferenceFocusError (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:376847)
    at https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:375888
    at I.Handler.handler (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:154229)
    at I.Handler.run (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:149528)
    at https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:157966
    at Object.forEachChild (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:141196)
    at I.Connection._dataRecv (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:157815)
    at O.Websocket._onMessage (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:187045)
r @ Logger.js:154
getGlobalOnErrorHandler @ JitsiMeetJS.js:538
window.onerror @ middleware.js:110
callErrorHandler @ GlobalOnErrorHandler.js:61
cr._allocateConferenceFocusError @ moderator.js:382
(anonymous) @ moderator.js:309
(anonymous) @ strophe.umd.js:2716
run @ strophe.umd.js:1875
(anonymous) @ strophe.umd.js:3157
forEachChild @ strophe.umd.js:830
_dataRecv @ strophe.umd.js:3146
_onMessage @ strophe.umd.js:5836
Logger.js:154 2022-11-14T14:59:59.008Z [modules/xmpp/moderator.js] <cr._allocateConferenceFocusError>:  Focus error, retry after 8000 <iq xmlns=​"jabber:​client" from=​"focus.meet.jitsi" to=​"oehfefrwb_zm4bjrkgjrdyqd@meet.jitsi/​Tv_r0WFFQFD0" type=​"error" id=​"46e7c9a4-82f5-4303-926b-79f094c1a264:​sendIQ">​…​</iq>​
r @ Logger.js:154
cr._allocateConferenceFocusError @ moderator.js:383
(anonymous) @ moderator.js:309
(anonymous) @ strophe.umd.js:2716
run @ strophe.umd.js:1875
(anonymous) @ strophe.umd.js:3157
forEachChild @ strophe.umd.js:830
_dataRecv @ strophe.umd.js:3146
_onMessage @ strophe.umd.js:5836
Logger.js:154 2022-11-14T14:59:59.011Z [conference.js] <Hce._onConferenceFailed>:  CONFERENCE FAILED: conference.focusDisconnected focus.meet.jitsi 8
i @ Logger.js:154
_onConferenceFailed @ conference.js:320
r.emit @ events.js:153
r.emit @ events.js:153
cr._allocateConferenceFocusError @ moderator.js:393
(anonymous) @ moderator.js:309
(anonymous) @ strophe.umd.js:2716
run @ strophe.umd.js:1875
(anonymous) @ strophe.umd.js:3157
forEachChild @ strophe.umd.js:830
_dataRecv @ strophe.umd.js:3146
_onMessage @ strophe.umd.js:5836
Logger.js:154 2022-11-14T15:00:07.014Z [modules/xmpp/moderator.js] <cr.createConferenceIq>:  Session ID: null machine UID: fc32a1fa2ebeba754344a323df859b64
Logger.js:154 2022-11-14T15:00:07.029Z [JitsiMeetJS.js] <Object.getGlobalOnErrorHandler>:  UnhandledError: Focus error, retry after 16000 Script: null Line: null Column: null StackTrace:  Error: Focus error, retry after 16000
    at cr._allocateConferenceFocusError (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:376847)
    at https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:375888
    at I.Handler.handler (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:154229)
    at I.Handler.run (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:149528)
    at https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:157966
    at Object.forEachChild (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:141196)
    at I.Connection._dataRecv (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:157815)
    at O.Websocket._onMessage (https://meet-vc1.qa.videochat.ionos.com/libs/lib-jitsi-meet.min.js?v=6260:2:187045)
r @ Logger.js:154
getGlobalOnErrorHandler @ JitsiMeetJS.js:538
window.onerror @ middleware.js:110
callErrorHandler @ GlobalOnErrorHandler.js:61
cr._allocateConferenceFocusError @ moderator.js:382
(anonymous) @ moderator.js:309
(anonymous) @ strophe.umd.js:2716
run @ strophe.umd.js:1875
(anonymous) @ strophe.umd.js:3157
forEachChild @ strophe.umd.js:830
_dataRecv @ strophe.umd.js:3146
_onMessage @ strophe.umd.js:5836
Logger.js:154 2022-11-14T15:00:07.029Z [modules/xmpp/moderator.js] <cr._allocateConferenceFocusError>:  Focus error, retry after 16000 <iq xmlns=​"jabber:​client" from=​"focus.meet.jitsi" to=​"oehfefrwb_zm4bjrkgjrdyqd@meet.jitsi/​Tv_r0WFFQFD0" type=​"error" id=​"9bd72947-32eb-4b52-9007-a7a2b72c57c6:​sendIQ">​…​</iq>​
r @ Logger.js:154
cr._allocateConferenceFocusError @ moderator.js:383
(anonymous) @ moderator.js:309
(anonymous) @ strophe.umd.js:2716
run @ strophe.umd.js:1875
(anonymous) @ strophe.umd.js:3157
forEachChild @ strophe.umd.js:830
_dataRecv @ strophe.umd.js:3146
_onMessage @ strophe.umd.js:5836
Logger.js:154 2022-11-14T15:00:07.034Z [conference.js] <Hce._onConferenceFailed>:  CONFERENCE FAILED: conference.focusDisconnected focus.meet.jitsi 16

Check your jicofo logs, any errors there?

Errors from jicofo logs

Jicofo 2022-11-14 17:21:33.743 SEVERE: [2584] [xmpp_connection=client] XmppProviderImpl$XmppReConnectionListener.reconnectionFailed#406: XMPP reconnection failed: SASLError using SCRAM-SHA-1: not-authorized
Jicofo 2022-11-14 17:26:33.688 WARNING: [2588] org.jivesoftware.smack.AbstractXMPPConnection.callConnectionClosedOnErrorListener: Connection XMPPTCPConnection[focus@auth.meet.jitsi/focus] (0) closed with error
org.jivesoftware.smack.XMPPException$StreamErrorException: connection-timeout You can read more about the meaning of this stream error at http://xmpp.org/rfcs/rfc6120.html#streams-error-conditions
<stream:error><connection-timeout xmlns='urn:ietf:params:xml:ns:xmpp-streams'/></stream:error>
	at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:981)
	at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$700(XMPPTCPConnection.java:913)
	at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:936)
	at java.base/java.lang.Thread.run(Thread.java:829)
Jicofo 2022-11-14 17:26:33.690 SEVERE: [2588] [xmpp_connection=client] XmppProviderImpl$XmppConnectionListener.connectionClosedOnError#380: XMPP connection closed on error: connection-timeout You can read more about the meaning of this stream error at http://xmpp.org/rfcs/rfc6120.html#streams-error-conditions
<stream:error><connection-timeout xmlns='urn:ietf:params:xml:ns:xmpp-streams'/></stream:error>

A wrong password is used for jicofo.

Wrong password between prosody and jicofo?

Yep