diff --git a/android/app/src/main/java/com/fabledsword/minstrel/cache/mutations/MutationReplayer.kt b/android/app/src/main/java/com/fabledsword/minstrel/cache/mutations/MutationReplayer.kt index 2c93cdbb..a9be65b3 100644 --- a/android/app/src/main/java/com/fabledsword/minstrel/cache/mutations/MutationReplayer.kt +++ b/android/app/src/main/java/com/fabledsword/minstrel/cache/mutations/MutationReplayer.kt @@ -126,8 +126,12 @@ class MutationReplayer @Inject constructor( } true } catch ( - @Suppress("TooGenericExceptionCaught") e: Throwable, + @Suppress("TooGenericExceptionCaught", "SwallowedException") e: Throwable, ) { + // Intentional swallow: the row stays in the queue with + // attempts + lastAttemptAt incremented; next drain pass + // retries. Per-attempt diagnostic logging lands when we + // wire up Timber at the replayer level. false } } @@ -147,8 +151,12 @@ class MutationReplayer @Inject constructor( discoverApi.createRequest(body) true } catch ( - @Suppress("TooGenericExceptionCaught") e: Throwable, + @Suppress("TooGenericExceptionCaught", "SwallowedException") e: Throwable, ) { + // Intentional swallow: the row stays in the queue with + // attempts + lastAttemptAt incremented; next drain pass + // retries. Per-attempt diagnostic logging lands when we + // wire up Timber at the replayer level. false } } @@ -159,8 +167,12 @@ class MutationReplayer @Inject constructor( quarantineApi.unflag(decoded.trackId) true } catch ( - @Suppress("TooGenericExceptionCaught") e: Throwable, + @Suppress("TooGenericExceptionCaught", "SwallowedException") e: Throwable, ) { + // Intentional swallow: the row stays in the queue with + // attempts + lastAttemptAt incremented; next drain pass + // retries. Per-attempt diagnostic logging lands when we + // wire up Timber at the replayer level. false } }