diff --git a/lib/reducers/message-reducer.js b/lib/reducers/message-reducer.js
--- a/lib/reducers/message-reducer.js
+++ b/lib/reducers/message-reducer.js
@@ -1306,7 +1306,8 @@
       },
     };
   } else if (action.type === messageStorePruneActionType) {
-    const messageIDsToPrune = [];
+    const reduxMessageIDsToPrune: Array<string> = [];
+    const dbMessageIDsToPrune: Array<string> = [];
 
     const updatedThreads: { [string]: ThreadMessageInfo } = {};
     for (const threadID of action.payload.threadIDs) {
@@ -1324,37 +1325,45 @@
           startReached: false,
         };
       }
-      for (const id of removed) {
-        messageIDsToPrune.push(id);
+      reduxMessageIDsToPrune.push(...removed);
+      if (!newThreadInfos[threadID]?.thick) {
+        dbMessageIDsToPrune.push(...removed);
       }
 
       updatedThreads[threadID] = thread;
     }
 
-    const localMessageIDsToRemove = _pick(messageIDsToPrune)(
-      messageStore.local,
-    );
+    const createMessageStoreOperations = (
+      messageIDsToPrune: $ReadOnlyArray<string>,
+    ) => {
+      const localMessageIDsToRemove = _pick(messageIDsToPrune)(
+        messageStore.local,
+      );
 
-    const messageStoreOperations = [
-      {
-        type: 'remove',
-        payload: { ids: messageIDsToPrune },
-      },
-      {
-        type: 'replace_threads',
-        payload: {
-          threads: updatedThreads,
+      return [
+        {
+          type: 'remove',
+          payload: { ids: messageIDsToPrune },
         },
-      },
-      {
-        type: 'remove_local_message_infos',
-        payload: { ids: Object.keys(localMessageIDsToRemove) },
-      },
-    ];
+        {
+          type: 'replace_threads',
+          payload: {
+            threads: updatedThreads,
+          },
+        },
+        {
+          type: 'remove_local_message_infos',
+          payload: { ids: Object.keys(localMessageIDsToRemove) },
+        },
+      ];
+    };
 
+    const reduxOperations = createMessageStoreOperations(
+      reduxMessageIDsToPrune,
+    );
     const processedMessageStore = processMessageStoreOperations(
       messageStore,
-      messageStoreOperations,
+      reduxOperations,
     );
 
     const newMessageStore = {
@@ -1364,8 +1373,9 @@
       currentAsOf: messageStore.currentAsOf,
     };
 
+    const dbOperations = createMessageStoreOperations(dbMessageIDsToPrune);
     return {
-      messageStoreOperations,
+      messageStoreOperations: dbOperations,
       messageStore: newMessageStore,
     };
   } else if (action.type === updateMultimediaMessageMediaActionType) {