                     }
                     // stop caching for removed assets
                     stopCache(assets: removedAssets, size: pickerConfig.assetCacheSize)
-                    DispatchQueue.main.async {
+                    DispatchQueue.main.sync {
                         for subscriber in self.subscribers {
                             subscriber.assetsManager(manager: self, removedAssets: removedAssets, at: removedIndexes)
                         }


// MARK: - IndexSet Utility
extension IndexSet {
    fileprivate func asArray() -> [IndexPath] {
        var indexPaths = [IndexPath]()
        for entry in enumerated() {
            indexPaths.append(IndexPath(row: entry.element, section: 0))
        }
        return indexPaths
    }

                for (j, removedIndex) in removedIndexes.enumerated() {
                    remove(album: removedAlbums[j], indexPath: IndexPath(row: removedIndex.row, section: i), isFetchedIndex: true)
                }
                DispatchQueue.main.sync {
                    for subscriber in self.subscribers {
                        subscriber.assetsManager(manager: self, removedAlbums: removedAlbums, at: removedIndexesInSortedAlbums)
                    }
