         executeAfterSetup {
             
             if let albumsFetchResult = self.albumsFetchResult,
-               let changes = changeInfo.changeDetails(for: albumsFetchResult)
+               let changes = changeInfo.changeDetails(for: albumsFetchResult.phFetchResult)
             {
-                self.albumsFetchResult = changes.fetchResultAfterChanges
-                self.onAlbumsChange?(self.albums())
+                PhotoLibraryFetchResult.create(with: { changes.fetchResultAfterChanges }) { albumsFetchResult in
+                    self.albumsFetchResult = albumsFetchResult
+                    self.onAlbumsChange?(albumsFetchResult.albums)
+                }
             }
             
             if let observedAlbum = self.observedAlbum,

        )
    }
}

    private var observedAlbum: PhotoLibraryAlbum?
    private var wasSetUp = false
    
    /// `completion` is executed on main queue
    private func executeAfterSetup(completion: @escaping () -> ()) {
        
        guard !wasSetUp else {
            completion()
