 
             // subsequent updates are handled by the FlatCacheListener
             if isFirstUpdate {
-                strongSelf.feed.finishLoading(dismissRefresh: true) {
-                    if strongSelf.hasScrolledToBottom != true {
-                        strongSelf.hasScrolledToBottom = true
-                        strongSelf.feed.collectionView.slk_scrollToBottom(animated: true)
-                    }
-                }
+                strongSelf.updateAndScrollIfNeeded()
+            }
+        }
+    }
+
+    func updateAndScrollIfNeeded(dismissRefresh: Bool = true) {
+        feed.finishLoading(dismissRefresh: dismissRefresh) { [weak self] in
+            if self?.needsScrollToBottom == true {
+                self?.needsScrollToBottom = false
+                self?.feed.collectionView.slk_scrollToBottom(animated: true)
             }
         }
     }


            switch resultType {
            case .success(let result, let mentionableUsers):
                // clear pending comments since they should now be part of the payload
                // only clear when doing a refresh load
                if !previous {
                    strongSelf.sentComments.removeAll()
                }

                strongSelf.autocomplete.add(UserAutocomplete(mentionableUsers: mentionableUsers))
                strongSelf.client.cache.add(listener: strongSelf, value: result)
                strongSelf.resultID = result.id

        switch update {
        case .item(let item):
            guard item is IssueResult else { break }
            updateAndScrollIfNeeded()
        case .list: break
        }
    }
