diff --git a/src/matrix/room/BaseRoom.js b/src/matrix/room/BaseRoom.js index 1bee3823..3314e9b1 100644 --- a/src/matrix/room/BaseRoom.js +++ b/src/matrix/room/BaseRoom.js @@ -226,6 +226,9 @@ export class BaseRoom extends EventEmitter { } // Miss, load from storage and set in map const member = await loadMember({roomId: this._roomId, userId, storage: this._storage}); + if (!member) { + return false; + } const observableMember = new RetainedObservableValue(member, () => this._observedMembers.delete(userId)); this._observedMembers.set(userId, observableMember); return observableMember; diff --git a/src/matrix/room/members/load.js b/src/matrix/room/members/load.js index eb4ca247..a7b2e641 100644 --- a/src/matrix/room/members/load.js +++ b/src/matrix/room/members/load.js @@ -94,5 +94,5 @@ export async function fetchOrLoadMembers(options, logger) { export async function loadMember({roomId, userId, storage}) { const txn = await storage.readTxn([storage.storeNames.roomMembers,]); const member = await txn.roomMembers.get(roomId, userId); - return new RoomMember(member); + return member? new RoomMember(member) : undefined; }