From ebaa849431e0c106b7ccee7300636942ce2e80ea Mon Sep 17 00:00:00 2001 From: R Midhun Suresh Date: Fri, 5 Dec 2025 13:43:09 +0530 Subject: [PATCH 1/2] Explicitly pass via_servers in join room options --- src/stores/RoomViewStore.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/stores/RoomViewStore.tsx b/src/stores/RoomViewStore.tsx index faf54f1a8f4..b61a89fec7a 100644 --- a/src/stores/RoomViewStore.tsx +++ b/src/stores/RoomViewStore.tsx @@ -447,6 +447,9 @@ export class RoomViewStore extends EventEmitter { if (payload.auto_join) { this.dis?.dispatch({ ...payload, + opts: { + viaServers: payload.via_servers, + }, action: Action.JoinRoom, roomId: payload.room_id, metricsTrigger: payload.metricsTrigger as JoinRoomPayload["metricsTrigger"], From 1339988bb4f51bf419c021a77b4c19aa43755e56 Mon Sep 17 00:00:00 2001 From: R Midhun Suresh Date: Fri, 5 Dec 2025 15:29:11 +0530 Subject: [PATCH 2/2] Fix test --- src/stores/RoomViewStore.tsx | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/stores/RoomViewStore.tsx b/src/stores/RoomViewStore.tsx index b61a89fec7a..743f6c4f747 100644 --- a/src/stores/RoomViewStore.tsx +++ b/src/stores/RoomViewStore.tsx @@ -445,16 +445,21 @@ export class RoomViewStore extends EventEmitter { this.setState(newState); if (payload.auto_join) { - this.dis?.dispatch({ + const joinPayload: JoinRoomPayload = { ...payload, - opts: { - viaServers: payload.via_servers, - }, action: Action.JoinRoom, roomId: payload.room_id, metricsTrigger: payload.metricsTrigger as JoinRoomPayload["metricsTrigger"], canAskToJoin: SettingsStore.getValue("feature_ask_to_join"), - }); + }; + // Explicitly pass viaServers in case state doesn't contain the same due to + // some race issues. + if (payload.via_servers) { + joinPayload.opts = { + viaServers: payload.via_servers, + }; + } + this.dis?.dispatch(joinPayload); } if (room) {