From 3b0bc0bb4a89a7bca22b2e4ed549055f0376627d Mon Sep 17 00:00:00 2001 From: R Midhun Suresh Date: Mon, 8 Dec 2025 16:40:44 +0530 Subject: [PATCH] Fix `/join ` command failing due to race condition (#31433) * Explicitly pass via_servers in join room options * Fix test --- src/stores/RoomViewStore.tsx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/stores/RoomViewStore.tsx b/src/stores/RoomViewStore.tsx index faf54f1a8f..743f6c4f74 100644 --- a/src/stores/RoomViewStore.tsx +++ b/src/stores/RoomViewStore.tsx @@ -445,13 +445,21 @@ export class RoomViewStore extends EventEmitter { this.setState(newState); if (payload.auto_join) { - this.dis?.dispatch({ + const joinPayload: JoinRoomPayload = { ...payload, 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) {