diff --git a/mobile/lib/interfaces/asset_media.interface.dart b/mobile/lib/interfaces/asset_media.interface.dart
index f89a238dd4..2606d5c23c 100644
--- a/mobile/lib/interfaces/asset_media.interface.dart
+++ b/mobile/lib/interfaces/asset_media.interface.dart
@@ -4,4 +4,7 @@ abstract interface class IAssetMediaRepository {
   Future<List<String>> deleteAll(List<String> ids);
 
   Future<Asset?> get(String id);
+
+  /// Obtaining the correct original filename of the asset
+  Future<String?> getOriginalFilename(String id);
 }
diff --git a/mobile/lib/repositories/asset_media.repository.dart b/mobile/lib/repositories/asset_media.repository.dart
index 20cf680339..68fffa08a6 100644
--- a/mobile/lib/repositories/asset_media.repository.dart
+++ b/mobile/lib/repositories/asset_media.repository.dart
@@ -43,4 +43,17 @@ class AssetMediaRepository implements IAssetMediaRepository {
     asset.local = local;
     return asset;
   }
+
+  @override
+  Future<String?> getOriginalFilename(String id) async {
+    final entity = await AssetEntity.fromId(id);
+
+    if (entity == null) {
+      return null;
+    }
+
+    // titleAsync gets the correct original filename for some assets on iOS
+    // otherwise using the `entity.title` would return a random GUID
+    return await entity.titleAsync;
+  }
 }
diff --git a/mobile/lib/services/background.service.dart b/mobile/lib/services/background.service.dart
index d06bc86d48..86dfd0c599 100644
--- a/mobile/lib/services/background.service.dart
+++ b/mobile/lib/services/background.service.dart
@@ -15,6 +15,7 @@ import 'package:immich_mobile/models/backup/success_upload_asset.model.dart';
 import 'package:immich_mobile/repositories/album.repository.dart';
 import 'package:immich_mobile/repositories/album_api.repository.dart';
 import 'package:immich_mobile/repositories/asset.repository.dart';
+import 'package:immich_mobile/repositories/asset_media.repository.dart';
 import 'package:immich_mobile/repositories/backup.repository.dart';
 import 'package:immich_mobile/repositories/album_media.repository.dart';
 import 'package:immich_mobile/repositories/file_media.repository.dart';
@@ -368,6 +369,7 @@ class BackgroundService {
     BackupRepository backupAlbumRepository = BackupRepository(db);
     AlbumMediaRepository albumMediaRepository = AlbumMediaRepository();
     FileMediaRepository fileMediaRepository = FileMediaRepository();
+    AssetMediaRepository assetMediaRepository = AssetMediaRepository();
     UserRepository userRepository = UserRepository(db);
     UserApiRepository userApiRepository =
         UserApiRepository(apiService.usersApi);
@@ -409,6 +411,7 @@ class BackgroundService {
       albumService,
       albumMediaRepository,
       fileMediaRepository,
+      assetMediaRepository,
     );
 
     final selectedAlbums = backupService.selectedAlbumsQuery().findAllSync();
diff --git a/mobile/lib/services/backup.service.dart b/mobile/lib/services/backup.service.dart
index 19d731d773..683339f271 100644
--- a/mobile/lib/services/backup.service.dart
+++ b/mobile/lib/services/backup.service.dart
@@ -12,6 +12,7 @@ import 'package:immich_mobile/entities/backup_album.entity.dart';
 import 'package:immich_mobile/entities/duplicated_asset.entity.dart';
 import 'package:immich_mobile/entities/store.entity.dart';
 import 'package:immich_mobile/interfaces/album_media.interface.dart';
+import 'package:immich_mobile/interfaces/asset_media.interface.dart';
 import 'package:immich_mobile/interfaces/file_media.interface.dart';
 import 'package:immich_mobile/models/backup/backup_candidate.model.dart';
 import 'package:immich_mobile/models/backup/current_upload_asset.model.dart';
@@ -21,6 +22,7 @@ import 'package:immich_mobile/providers/api.provider.dart';
 import 'package:immich_mobile/providers/app_settings.provider.dart';
 import 'package:immich_mobile/providers/db.provider.dart';
 import 'package:immich_mobile/repositories/album_media.repository.dart';
+import 'package:immich_mobile/repositories/asset_media.repository.dart';
 import 'package:immich_mobile/repositories/file_media.repository.dart';
 import 'package:immich_mobile/services/album.service.dart';
 import 'package:immich_mobile/services/api.service.dart';
@@ -40,6 +42,7 @@ final backupServiceProvider = Provider(
     ref.watch(albumServiceProvider),
     ref.watch(albumMediaRepositoryProvider),
     ref.watch(fileMediaRepositoryProvider),
+    ref.watch(assetMediaRepositoryProvider),
   ),
 );
 
@@ -52,6 +55,7 @@ class BackupService {
   final AlbumService _albumService;
   final IAlbumMediaRepository _albumMediaRepository;
   final IFileMediaRepository _fileMediaRepository;
+  final IAssetMediaRepository _assetMediaRepository;
 
   BackupService(
     this._apiService,
@@ -60,6 +64,7 @@ class BackupService {
     this._albumService,
     this._albumMediaRepository,
     this._fileMediaRepository,
+    this._assetMediaRepository,
   );
 
   Future<List<String>?> getDeviceBackupAsset() async {
@@ -329,7 +334,9 @@ class BackupService {
         }
 
         if (file != null) {
-          String originalFileName = asset.fileName;
+          String? originalFileName =
+              await _assetMediaRepository.getOriginalFilename(asset.localId!);
+          originalFileName ??= asset.fileName;
 
           if (asset.local!.isLivePhoto) {
             if (livePhotoFile == null) {