 	}
 
 	func sendArticleStatus(for account: Account, completion: @escaping ((Result<Void, Error>) -> Void)) {
+		guard !statusProcessRunning else {
+			completion(.success(()))
+			return
+		}
+		
+		statusProcessRunning = true
 		os_log(.debug, log: log, "Sending article statuses...")
 
 		database.selectForProcessing { result in
 
 			func processStatuses(_ syncStatuses: [SyncStatus]) {
 				guard syncStatuses.count > 0 else {
+					self.statusProcessRunning = false
 					completion(.success(()))
 					return
 				}

	var accountMetadata: AccountMetadata?

	var refreshProgress = DownloadProgress(numberOfTasks: 0)

	init(dataFolder: String) {
		accountZone = CloudKitAccountZone(container: container)
		articlesZone = CloudKitArticlesZone(container: container)

			case .success(let syncStatuses):
				processStatuses(syncStatuses)
			case .failure(let databaseError):
				self.statusProcessRunning = false
				completion(.failure(databaseError))
			}
		}
