diff --git a/iOS/Data/PendingOperationsQueue.swift b/iOS/Data/PendingOperationsQueue.swift index 10c1172..ec1483e 100644 --- a/iOS/Data/PendingOperationsQueue.swift +++ b/iOS/Data/PendingOperationsQueue.swift @@ -122,16 +122,19 @@ class PendingOperationsQueue: ObservableObject { } } + // Copy to let for safe capture in MainActor.run (Swift 6 concurrency) + let finalRemaining = remaining + await MainActor.run { - self.operations = remaining + self.operations = finalRemaining self.saveToDisk() self.isProcessing = false - if remaining.isEmpty { + if finalRemaining.isEmpty { DebugLogger.shared.log("All pending ops completed", category: "PendingOps") } else { DebugLogger.shared.log( - "\(remaining.count) ops still pending after retry", + "\(finalRemaining.count) ops still pending after retry", category: "PendingOps" ) } @@ -140,7 +143,7 @@ class PendingOperationsQueue: ObservableObject { } private func retryOperation(_ op: PendingOperation) async -> Bool { - guard let api = try? CompanionAPIService() else { return false } + let api = CompanionAPIService.shared switch op.type { case .metadataEdit: