                 // Now we can retain controller
                 guard let strongController = controller else { return }
                 strongController.errorHandler?(strongController, error)
+                didProcessTransaction()
             }
             
         case .success((fetchedItems: let fetchedItems, fetchedAlongside: let fetchedAlongside, observer: let observer)):

/// You use FetchedRecordsController to track changes in the results of an
/// SQLite request.
///

    controller: FetchedRecordsController<Record>,
    fetchAlongside: @escaping (Database) throws -> T,
    itemsAreIdentical: @escaping ItemComparator<Record>,
    willProcessTransaction: @escaping () -> (),
    willChange: ((FetchedRecordsController<Record>, _ fetchedAlongside: T) -> ())?,
    onChange: ((FetchedRecordsController<Record>, Record, FetchedRecordChange) -> ())?,
    didChange: ((FetchedRecordsController<Record>, _ fetchedAlongside: T) -> ())?,
    didProcessTransaction: @escaping () -> ()
    ) -> (FetchedRecordsObserver<Record>) -> ()
{
    // Make sure we keep a weak reference to the fetched records controller,
