From ed356a8d99ad11e035877cd398af88d2a6aee780 Mon Sep 17 00:00:00 2001 From: advplyr Date: Sun, 27 Sep 2026 17:03:25 -0500 Subject: [PATCH] Add try/catch around android cleanupExpired downloads call --- .../app/services/DownloadServiceHost.kt | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/android/app/src/main/java/com/audiobookshelf/app/services/DownloadServiceHost.kt b/android/app/src/main/java/com/audiobookshelf/app/services/DownloadServiceHost.kt index ff49cd4d..aaa1eb7a 100644 --- a/android/app/src/main/java/com/audiobookshelf/app/services/DownloadServiceHost.kt +++ b/android/app/src/main/java/com/audiobookshelf/app/services/DownloadServiceHost.kt @@ -44,13 +44,20 @@ object DownloadServiceHost { DbManager.initialize(appContext) manager = DownloadItemManager(FolderScanner(appContext), appContext, ForwardingEmitter) restoreJob = scope.launch { - if (DeviceManager.dbManager.ensureValidDownloadQueue()) { - IncompleteDownloadCleanup.cleanupExpired(appContext) - manager!!.restoreQueue() - } else { - AbsLogger.error(TAG, "Skipping invalid download queue because it could not be cleared") + try { + if (DeviceManager.dbManager.ensureValidDownloadQueue()) { + IncompleteDownloadCleanup.cleanupExpired(appContext) + manager!!.restoreQueue() + } else { + AbsLogger.error(TAG, "Skipping invalid download queue because it could not be cleared") + } + onRestoreComplete(appContext) + } catch (restoreError: Exception) { + AbsLogger.error( + TAG, + "Could not restore download queue (${restoreError.javaClass.simpleName}: ${restoreError.message})" + ) } - onRestoreComplete(appContext) } } return manager!!