diff --git a/keyserver/src/fetchers/message-fetchers.js b/keyserver/src/fetchers/message-fetchers.js --- a/keyserver/src/fetchers/message-fetchers.js +++ b/keyserver/src/fetchers/message-fetchers.js @@ -461,7 +461,9 @@ if (criteria.newerThan) { globalTimeFilter = SQL`m.time > ${criteria.newerThan}`; } else if (!criteria.threadCursors && shouldApplyTimeFilter) { - globalTimeFilter = SQL`m.time > ${minMessageTime}`; + globalTimeFilter = SQL` + (m.time > ${minMessageTime} OR m.id = mm.last_message) + `; } const threadConditions = []; @@ -470,7 +472,9 @@ shouldApplyTimeFilter && !globalTimeFilter ) { - threadConditions.push(SQL`(mm.role > 0 AND m.time > ${minMessageTime})`); + threadConditions.push(SQL` + (mm.role > 0 AND (m.time > ${minMessageTime} OR m.id = mm.last_message)) + `); } else if (criteria.joinedThreads === true) { threadConditions.push(SQL`mm.role > 0`); }