diff --git a/src/client.ts b/src/client.ts index 86432d8c0..ae2afe9ca 100644 --- a/src/client.ts +++ b/src/client.ts @@ -4990,68 +4990,72 @@ export class MatrixClient extends TypedEventEmitter ref.roomId)); - if (roomIds.size < upgradeHistory.length) { + ret.push(successorRoom); + const roomIds = new Set(ret.map((ref) => ref.roomId)); + if (roomIds.size < ret.length) { // The last room added to the list introduced a previous roomId // To avoid recursion, return the last rooms - 1 - return upgradeHistory.slice(0, upgradeHistory.length - 1); + return ret.slice(0, ret.length - 1); } // Set the current room to the reference room so we know where we're at - currentRoom = refRoom; - tombstoneEvent = currentRoom.currentState.getStateEvents(EventType.RoomTombstone, ""); + room = successorRoom; + tombstoneEvent = room.currentState.getStateEvents(EventType.RoomTombstone, ""); } - - return upgradeHistory; + return ret; } /**