diff --git a/src/client.js b/src/client.js index 82c4e377b..6f794e73b 100644 --- a/src/client.js +++ b/src/client.js @@ -762,13 +762,13 @@ MatrixClient.prototype.getRoom = function(roomId) { * in case lazy loading of memberships is in use. * @param {string} roomId The room ID */ -MatrixClient.prototype.loadRoomMembersIfNeeded = function(roomId) { +MatrixClient.prototype.loadRoomMembersIfNeeded = async function(roomId) { const room = this.getRoom(roomId); if (!room || !room.membersNeedLoading()) { return; } const membersPromise = this.joinedMembers(roomId); - room.setLazilyLoadedMembers(membersPromise); + await room.setLazilyLoadedMembers(membersPromise); }; /** diff --git a/src/models/room.js b/src/models/room.js index 8e0511f2a..b577a1047 100644 --- a/src/models/room.js +++ b/src/models/room.js @@ -234,12 +234,8 @@ Room.prototype.setLazilyLoadedMembers = async function(joinedMembersPromise) { try { members = await joinedMembersPromise; } catch (err) { - const errorMessage = `Fetching room members for ${this.roomId} failed.` + - " Room members will appear incomplete."; - console.error(errorMessage); - console.error(err); this._membersNeedLoading = true; - return; + throw err; //rethrow so calling code is aware operation failed } this._timelineSets.forEach((tlSet) => tlSet.setJoinedMembers(members.joined)); this.emit('Room', this);