                 if resultExists {
                     if isUploaded {
                         activity.stateMachine.enter(UploadCompleteState.self)
-                        self.tableView.reloadRows(at: [IndexPath(row: i, section: 0)], with: .none)
+                        rowsToReload.append(IndexPath(row: i, section: 0))
                     } else {
                         uploadResultsOf(activity: activity, forRow: i)
                     }

    }
    
    func updateAllActivities() {
        for (i, activity) in service.activities.enumerated() {
            switch activity.type {
            case .search:

        cell.isUserInteractionEnabled = activity.isStartable
        cell.titleLabel?.text = activity.description
        cell.detailLabel?.text = activity.isStartable ? "" : activity.timeRemainingString
        cell.statusButton.titleLabel?.text = ""
        cell.icon.image = UIImage(named: activity.type.iconName)
        
        if let cellState = activity.stateMachine.currentState as? ActivityState {
