diff --git a/src/matrix/room/Room.js b/src/matrix/room/Room.js index 891e9dfe..9ea34381 100644 --- a/src/matrix/room/Room.js +++ b/src/matrix/room/Room.js @@ -191,8 +191,9 @@ export class Room extends EventEmitter { let decryptPreparation; if (roomEncryption) { - const events = roomResponse?.timeline?.events; - if (Array.isArray(events)) { + // also look for events in timeline here + let events = roomResponse?.timeline?.events || []; + if (events.length) { const eventsToDecrypt = events.filter(event => { return event?.type === EVENT_ENCRYPTED_TYPE; }); diff --git a/src/matrix/room/timeline/persistence/SyncWriter.js b/src/matrix/room/timeline/persistence/SyncWriter.js index bb0da2ea..b12f52a7 100644 --- a/src/matrix/room/timeline/persistence/SyncWriter.js +++ b/src/matrix/room/timeline/persistence/SyncWriter.js @@ -167,7 +167,7 @@ export class SyncWriter { } async _writeTimeline(entries, timeline, currentKey, memberChanges, txn, log) { - if (Array.isArray(timeline.events) && timeline.events.length) { + if (Array.isArray(timeline?.events) && timeline.events.length) { // only create a fragment when we will really write an event currentKey = await this._ensureLiveFragment(currentKey, entries, timeline, txn, log); const events = deduplicateEvents(timeline.events);