diff --git a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m index c7febd917..ca0733f40 100644 --- a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m +++ b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m @@ -3941,7 +3941,13 @@ typedef NS_ENUM(NSInteger, MessagesRangeSizeMode) { CGFloat viewTopToContentBottom = self.safeContentHeight - self.collectionView.contentOffset.y; NSUInteger oldCellCount = [self.messageMappings numberOfItemsInGroup:self.thread.uniqueId]; + [self resetMappings]; + + // ViewItem's modified while we were not observing may be stale. + // TODO have a more fine-grained cache expiration based on rows modified. + [self.viewItemMap removeAllObjects]; + NSUInteger newCellCount = [self.messageMappings numberOfItemsInGroup:self.thread.uniqueId]; // Detect changes in the mapping's "window" size.