From 11cc5e24574a92af81ea45e36bb1ad22678a9d66 Mon Sep 17 00:00:00 2001 From: Kingkor Roy Tirtho Date: Sun, 16 Aug 2026 12:27:07 +0600 Subject: [PATCH] fix(plugin): handle service closure exception during authentication check --- .../spotube/modules/plugin/PluginScreen.kt | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/plugin/PluginScreen.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/plugin/PluginScreen.kt index f01f5266..6f0029a9 100644 --- a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/plugin/PluginScreen.kt +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/plugin/PluginScreen.kt @@ -676,16 +676,20 @@ fun PluginScreen( val service = selectedService ?: return@LaunchedEffect + try { + service.use { + val pluginRequiresAuth = + coreAPI.requiresAuthentication + requiresAuth = pluginRequiresAuth + if (!pluginRequiresAuth) return@use - service.use { - val pluginRequiresAuth = - coreAPI.requiresAuthentication - requiresAuth = pluginRequiresAuth - if (!pluginRequiresAuth) return@use - - coreAPI.loggedInFlow.collect { loggedIn -> - isLoggedIn = loggedIn + coreAPI.loggedInFlow.collect { loggedIn -> + isLoggedIn = loggedIn + } } + } catch (_: Exception) { + // Service may have been stopped/closed + // concurrently when the plugin selection changed } }