From 19911c33677c4a41ae4af0cb774a8f4e1532b8f0 Mon Sep 17 00:00:00 2001 From: patricioxavier8 <116120453+patricioxavier8@users.noreply.github.com> Date: Tue, 10 Feb 2026 10:31:45 -0500 Subject: [PATCH 1/3] fix: remove network call when user upload zero files size --- .../Services/BackupUploadService.swift | 38 ++++++++++++------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/XPCBackupService/Services/BackupUploadService.swift b/XPCBackupService/Services/BackupUploadService.swift index 86389d1..4cf94dd 100644 --- a/XPCBackupService/Services/BackupUploadService.swift +++ b/XPCBackupService/Services/BackupUploadService.swift @@ -235,15 +235,25 @@ class BackupUploadService: BackupUploadServiceProtocol, ObservableObject { self.logger.info("Remote parent id \(remoteParentId)") do { - let result = try await networkFacade.uploadFile( - input: inputStream, - encryptedOutput: safeEncryptedContentURL, - fileSize: Int(fileURL.fileSize), - bucketId: self.bucketId, - progressHandler: { _ in } - ) - - self.logger.info("Upload completed with id \(result.id)") + var uploadFileId: String? = nil + var uploadSize: Int = Int(fileURL.fileSize) + + if fileURL.fileSize > 0 { + let result = try await networkFacade.uploadFile( + input: inputStream, + encryptedOutput: safeEncryptedContentURL, + fileSize: Int(fileURL.fileSize), + bucketId: self.bucketId, + progressHandler: { _ in } + ) + + uploadFileId = result.id + uploadSize = result.size + + self.logger.info("Upload completed with id \(result.id)") + } else { + self.logger.info("⚠️ Skipping network upload for empty file: \(filename)") + } if node.syncStatus == .NEEDS_UPDATE { guard let remoteUuid = node.remoteUuid, let remoteId = node.remoteId else { @@ -252,8 +262,8 @@ class BackupUploadService: BackupUploadServiceProtocol, ObservableObject { let updatedFile = try await backupNewAPI.replaceFileId( fileUuid: remoteUuid, - newFileId: result.id, - newSize: result.size + newFileId: uploadFileId, + newSize: uploadSize ) self.logger.info("✅ Updated file correctly with identifier \(updatedFile.fileId)") @@ -279,10 +289,10 @@ class BackupUploadService: BackupUploadServiceProtocol, ObservableObject { let createdFile = try await backupNewAPI.createBackupFileNew( createFileData: CreateFileDataNew( - fileId: result.id, + fileId: uploadFileId, type: filename.pathExtension, - bucket: result.bucket, - size: result.size, + bucket: self.bucketId, + size: uploadSize, folderId: remoteParentId, name: encryptedFilename.base64EncodedString(), plainName: filename.deletingPathExtension, From cd7323691081c30e3aa0178c80d1390b467ee46d Mon Sep 17 00:00:00 2001 From: patricioxavier8 <116120453+patricioxavier8@users.noreply.github.com> Date: Tue, 10 Feb 2026 10:53:24 -0500 Subject: [PATCH 2/3] fix: update bucket when network call is available --- XPCBackupService/Services/BackupUploadService.swift | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/XPCBackupService/Services/BackupUploadService.swift b/XPCBackupService/Services/BackupUploadService.swift index 4cf94dd..c777736 100644 --- a/XPCBackupService/Services/BackupUploadService.swift +++ b/XPCBackupService/Services/BackupUploadService.swift @@ -237,6 +237,7 @@ class BackupUploadService: BackupUploadServiceProtocol, ObservableObject { do { var uploadFileId: String? = nil var uploadSize: Int = Int(fileURL.fileSize) + var uploadBucketId: String = self.bucketId if fileURL.fileSize > 0 { let result = try await networkFacade.uploadFile( @@ -249,6 +250,7 @@ class BackupUploadService: BackupUploadServiceProtocol, ObservableObject { uploadFileId = result.id uploadSize = result.size + uploadBucketId = result.bucket self.logger.info("Upload completed with id \(result.id)") } else { @@ -291,7 +293,7 @@ class BackupUploadService: BackupUploadServiceProtocol, ObservableObject { createFileData: CreateFileDataNew( fileId: uploadFileId, type: filename.pathExtension, - bucket: self.bucketId, + bucket: uploadBucketId, size: uploadSize, folderId: remoteParentId, name: encryptedFilename.base64EncodedString(), From 4cf33809feaca3c0d44ff0891b5562b011055123 Mon Sep 17 00:00:00 2001 From: patricioxavier8 <116120453+patricioxavier8@users.noreply.github.com> Date: Tue, 10 Feb 2026 15:21:12 -0500 Subject: [PATCH 3/3] Replace redundant fileURL.fileSize access with uploadSize variable --- XPCBackupService/Services/BackupUploadService.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/XPCBackupService/Services/BackupUploadService.swift b/XPCBackupService/Services/BackupUploadService.swift index c777736..80ff58e 100644 --- a/XPCBackupService/Services/BackupUploadService.swift +++ b/XPCBackupService/Services/BackupUploadService.swift @@ -239,11 +239,11 @@ class BackupUploadService: BackupUploadServiceProtocol, ObservableObject { var uploadSize: Int = Int(fileURL.fileSize) var uploadBucketId: String = self.bucketId - if fileURL.fileSize > 0 { + if uploadSize > 0 { let result = try await networkFacade.uploadFile( input: inputStream, encryptedOutput: safeEncryptedContentURL, - fileSize: Int(fileURL.fileSize), + fileSize: uploadSize, bucketId: self.bucketId, progressHandler: { _ in } )