Breakout room not created and timeout error

After upgrading to jitsi-meet 2.0.8218-1 and also to 2.0.8319-1 breakout rooms stopped working. A moderator can create one, and users can be assigned (which is also shown to them), but they are all alone in the breakout room. Also the participant list in the breakout room remains empty.

prosody.err

Mar 06 18:55:10 myjitsiserver.net:muc_breakout_rooms error No main room (87977d3f-afe6-43ef-85cf-f86f25b39120@breakout.myjitsiserver.net)!

jicofo.log
Jicofo 2023-03-05 15:08:04.442 INFO: [62] [room=c66281a0-15d2-4b44-9b38-45b6a16d6ca1@breakout.myjitsiserver.net] JitsiMeetConferenceImpl.s
top#423: Stopped.
Jicofo 2023-03-05 15:08:04.442 WARNING: [62] FocusManager.conferenceRequest#118: Exception while trying to start the conference
org.jivesoftware.smack.SmackException$NoResponseException: No response received within reply timeout. Timeout was 15000ms (~15s). StanzaColl
ector has been cancelled. Waited for response using: AndFilter: (StanzaTypeFilter: Presence, OrFilter: (AndFilter: (FromMatchesFilter (ignor
eResourcepart): c66281a0-15d2-4b44-9b38-45b6a16d6ca1@breakout.myjitsiserver.net, MUCUserStatusCodeFilter: status=110), AndFilter: (FromMat
chesFilter (full): c66281a0-15d2-4b44-9b38-45b6a16d6ca1@breakout.myjitsiserver.net/focus, StanzaIdFilter: id=ED7DB-39, PresenceTypeFilter:
 type=error))).
        at org.jivesoftware.smack.SmackException$NoResponseException.newWith(SmackException.java:124)
        at org.jivesoftware.smack.SmackException$NoResponseException.newWith(SmackException.java:104)
        at org.jivesoftware.smack.StanzaCollector.nextResultOrThrow(StanzaCollector.java:281)
        at org.jivesoftware.smackx.muc.MultiUserChat.enter(MultiUserChat.java:408)
        at org.jivesoftware.smackx.muc.MultiUserChat.createOrJoin(MultiUserChat.java:546)
        at org.jivesoftware.smackx.muc.MultiUserChat.createOrJoin(MultiUserChat.java:521)
        at org.jitsi.impl.protocol.xmpp.ChatRoomImpl.joinAs(ChatRoomImpl.java:305)
        at org.jitsi.impl.protocol.xmpp.ChatRoomImpl.join(ChatRoomImpl.java:230)
        at org.jitsi.jicofo.conference.JitsiMeetConferenceImpl.joinTheRoom(JitsiMeetConferenceImpl.java:473)
        at org.jitsi.jicofo.conference.JitsiMeetConferenceImpl.start(JitsiMeetConferenceImpl.java:320)
        at org.jitsi.jicofo.FocusManager.conferenceRequest(FocusManager.kt:115)
        at org.jitsi.jicofo.FocusManager.conferenceRequest$default(FocusManager.kt:96)
        at org.jitsi.jicofo.xmpp.ConferenceIqHandler.handleConferenceIq(ConferenceIqHandler.kt:95)
        at org.jitsi.jicofo.xmpp.ConferenceIqHandler.handleIQRequest$lambda-8(ConferenceIqHandler.kt:170)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Jicofo 2023-03-05 15:08:04.443 SEVERE: [62] Main.lambda$main$0#50: An uncaught exception occurred in thread=Thread[Jicofo Global IO Poolpool
-1-thread-24,5,main]
myjitsiserver-cfg.lua
plugin_paths = { "/usr/share/jitsi-meet/prosody-plugins/" }

-- domain mapper options, must at least have domain base set to use the mapper
muc_mapper_domain_base = "myjitsiserver.net";

external_service_secret = "secret";

external_services = {
     { type = "turn", host = "turn.myjitsiserver.net", port = 3478 },
     { type = "turns", host = "turn.myjitsiserver.net", port = 443 }
};

-- cross options deprecate with 0.12.0 RAS
-- cross_domain_bosh = true;
-- cross_domain_websocket = true;

consider_bosh_secure = true;
consider_websocket_secure = true;

-- by default prosody 0.12 sends cors headers, if you want to disable it uncomment the following (the config is available on 0.12.1)
-- http_cors_override = {
--    bosh = {
--        enabled = false;
--    };
--    websocket = {
--        enabled = false;
--    };
-- }

-- https_ports = { }; -- Remove this line to prevent listening on port 5284

-- by default prosody 0.12 sends cors headers, if you want to disable it uncomment the following (the config is available on 0.12.1)
-- http_cors_override = {
--    bosh = {
--        enabled = false;
--    };
--    websocket = {
--        enabled = false;
--    };
-- }
-- https://ssl-config.mozilla.org/#server=haproxy&version=2.1&config=intermediate&openssl=1.1.0g&guideline=5.4
ssl = {
    protocol = "tlsv1_2+";
    ciphers = "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
    dhparam = "/etc/prosody/certs/dh-2048.pem";
}

unlimited_jids = { "focus@auth.myjitsiserver.net", "jvb@auth.myjitsiserver.net" }

-- STAGING - remove on prod
http_default_host = "staging.myjitsiserver.net"

VirtualHost "myjitsiserver.net"
    http_host = "staging.myjitsiserver.net"
    -- enabled = false -- Remove this line to enable this host
    --   authentication = "anonymous"
    authentication = "token" -- do not delete me - NEW with 0.12.2
    -- Properties below are modified by jitsi-meet-tokens package config
    -- and authentication above is switched to "token"
    app_id="jitsi"
    app_secret="secret="
    allow_empty_token = true;
    -- Assign this host a certificate for TLS, otherwise it would use the one
    -- set in the global section (if any).
    -- Note that old-style SSL on port 5223 only supports one certificate, and will always
    -- use the global one.
    ssl = {
        key = "/etc/prosody/certs/myjitsiserver.net.key";
        certificate = "/etc/prosody/certs/myjitsiserver.net.crt";
        dhparam = "/etc/prosody/certs/dh-2048.pem";
    }
    av_moderation_component = "avmoderation.myjitsiserver.net"
    speakerstats_component = "speakerstats.myjitsiserver.net"
    conference_duration_component = "conferenceduration.myjitsiserver.net"
    end_conference_component = "endconference.myjitsiserver.net"
    -- we need bosh
    modules_enabled = {
        "bosh";
        "pubsub";
        "ping"; -- Enable mod_ping
        "speakerstats";
        "external_services";
        "conference_duration";
        "end_conference";
        "muc_lobby_rooms";
        "av_moderation";
        "muc_breakout_rooms";
        "room_metadata"; -- NEW
        "websocket";  -- deprecated?
        -- "smacks";  -- deprecated?
    }
    c2s_require_encryption = false -- 09.04.2022
    lobby_muc = "lobby.myjitsiserver.net"
    main_muc = "conference.myjitsiserver.net"
    breakout_rooms_muc = "breakout.myjitsiserver.net"
    room_metadata_component = "metadata.myjitsiserver.net"
    muc_lobby_whitelist = { "recorder.myjitsiserver.net" } -- Here we can whitelist jibri to enter lobby enabled rooms
    -- smacks_max_unacked_stanzas = 5;
    -- smacks_hibernation_time = 60;
    -- smacks_max_hibernated_sessions = 1;
    -- smacks_max_old_sessions = 1;

Component "conference.myjitsiserver.net" "muc"
    restrict_room_creation = true
    storage = "memory"
    modules_enabled = {
        "muc_meeting_id";
        "muc_domain_mapper";
        -- "token_verification"; -- NOT here anymore with 0.12.2?!
        "muc_rate_limit";
        "polls";
    }
    admins = { "focus@auth.myjitsiserver.net", "jibri@auth.myjitsiserver.net" }
    muc_room_locking = false
    muc_room_default_public_jids = true

-- internal muc component
Component "internal.auth.myjitsiserver.net" "muc"
    storage = "memory"
    modules_enabled = {
        "ping";
    }
    admins = { "focus@auth.myjitsiserver.net", "jvb@auth.myjitsiserver.net", "jibri@auth.myjitsiserver.net" }
    muc_room_locking = false
    muc_room_default_public_jids = true
    muc_room_cache_size = 1000
    c2s_require_encryption = false -- 09.04.2022
VirtualHost "guest.myjitsiserver.net" -- not anymore in 0.12.2?!
    -- trying https://community.jitsi.org/t/jwt-tokens-install-guide/53359/54
    -- authentication = "token"
    authentication = "anonymous"
    c2s_require_encryption = false -- 09.04.2022
    -- allow_empty_token = true
    modules_enabled = {
        "bosh";
        "pubsub";
        "ping"; -- Enable mod_ping
        "speakerstats";
        "external_services";
        "conference_duration";
        "muc_breakout_rooms";
        "av_moderation";
        -- "muc_lobby_rooms"; not anymore to guest
    }
    app_id="myjitsiserver.net";
    app_secret="secret";
    -- lobby_muc = "lobby.myjitsiserver.net" -- not used before in run
    main_muc = "conference.myjitsiserver.net"
    breakout_rooms_muc = "breakout.myjitsiserver.net"

VirtualHost "auth.myjitsiserver.net"
    modules_enabled = { "limits_exception"; }
-- No SSL with 0.12.2?
    ssl = {
        key = "/etc/prosody/certs/auth.myjitsiserver.net.key";
        certificate = "/etc/prosody/certs/auth.myjitsiserver.net.crt";
        dhparam = "/etc/prosody/certs/dh-2048.pem";
    }
    authentication = "internal_hashed"

VirtualHost "recorder.myjitsiserver.net"
    modules_enabled = {
        "ping";
        -- "smacks";
    }
    -- smacks_max_unacked_stanzas = 5;
    -- smacks_hibernation_time = 60;
    -- smacks_max_hibernated_sessions = 1;
    -- smacks_max_old_sessions = 1;
    authentication = "internal_plain"
    c2s_require_encryption = false -- 09.04.2022
    allow_empty_token = true

Component "focus.myjitsiserver.net" "client_proxy"
    target_address = "focus@auth.myjitsiserver.net"
    component_secret = "secret"
Component "speakerstats.myjitsiserver.net" "speakerstats_component"
    muc_component = "conference.myjitsiserver.net"

Component "conferenceduration.myjitsiserver.net" "conference_duration_component"
    muc_component = "conference.myjitsiserver.net"

Component "endconference.myjitsiserver.net" "end_conference"
    muc_component = "conference.myjitsiserver.net"

Component "avmoderation.myjitsiserver.net" "av_moderation_component"
    muc_component = "conference.myjitsiserver.net"

Component "lobby.myjitsiserver.net" "muc"
    storage = "memory"
    restrict_room_creation = true
    muc_room_locking = false
    muc_room_default_public_jids = true
    modules_enabled = {
        "muc_rate_limit";
        "polls";
    }

Component "breakout.myjitsiserver.net" "muc"
    restrict_room_creation = true
    -- allow_empty_token = true
    storage = "memory"
    modules_enabled = {
        "muc_meeting_id";
        "muc_domain_mapper";
        -- "token_verification";
        "muc_rate_limit";
        "polls";
    }
    admins = { "focus@auth.myjitsiserver.net" }
    muc_room_locking = false
    muc_room_default_public_jids = true

Component "metadata.myjitsiserver.net" "room_metadata_component"
    muc_component = "conference.myjitsiserver.net"
    breakout_rooms_component = "breakout.myjitsiserver.net"

Anybody had a similar experience?

I was doing some tests where I was creating room with Iframe API. And joining breakout room also with Iframe API.
I noticed issues about participants pane.
Total number of participants showed 0 in breakout room.
Also moderator could not see participants in other room.

I tested with meet jitisi and did not see any such issues.

I could finally fix it by removing in VirtualHost guest.yourjitsiserver.net:

-- breakout_rooms_muc = "breakout.yourjitsiserver.net" 

Which had landed there it seems by accident. We still need the guest VirtualHost for the authenticated users scenario.