diff --git a/spec/integ/matrix-client-event-timeline.spec.ts b/spec/integ/matrix-client-event-timeline.spec.ts index 254dff47f08..26e968d7154 100644 --- a/spec/integ/matrix-client-event-timeline.spec.ts +++ b/spec/integ/matrix-client-event-timeline.spec.ts @@ -207,7 +207,7 @@ function startClient(httpBackend: HttpBackend, client: MatrixClient) { httpBackend.when("POST", "/filter").respond(200, { filter_id: "fid" }); httpBackend.when("GET", "/sync").respond(200, INITIAL_SYNC_DATA); - client.startClient(); + client.startClient({ threadSupport: true }); // set up a promise which will resolve once the client is initialised const prom = new Promise((resolve) => { diff --git a/src/client.ts b/src/client.ts index f50a1c74058..7fd5894fa29 100644 --- a/src/client.ts +++ b/src/client.ts @@ -9768,6 +9768,7 @@ export class MatrixClient extends TypedEventEmitter { * Takes the given thread root events and creates threads for them. */ public processThreadRoots(events: MatrixEvent[], toStartOfTimeline: boolean): void { + if (!this.client.supportsThreads()) return; for (const rootEvent of events) { EventTimeline.setEventMetadata(rootEvent, this.currentState, toStartOfTimeline); if (!this.getThread(rootEvent.getId()!)) { @@ -2031,6 +2032,7 @@ export class Room extends ReadReceipt { * @internal */ private async fetchRoomThreadList(filter?: ThreadFilterType): Promise { + if (!this.client.supportsThreads()) return; if (this.threadsTimelineSets.length === 0) return; const timelineSet = filter === ThreadFilterType.My ? this.threadsTimelineSets[1] : this.threadsTimelineSets[0];