diff --git a/.claude/.gitignore b/.claude/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/app/src/gplay/java/eu/darken/capod/common/upgrade/core/data/BillingDataRepo.kt b/app/src/gplay/java/eu/darken/capod/common/upgrade/core/data/BillingDataRepo.kt index f7d381cc..0184c967 100644 --- a/app/src/gplay/java/eu/darken/capod/common/upgrade/core/data/BillingDataRepo.kt +++ b/app/src/gplay/java/eu/darken/capod/common/upgrade/core/data/BillingDataRepo.kt @@ -24,9 +24,11 @@ class BillingDataRepo @Inject constructor( ) { private val connectionProvider = billingClientConnectionProvider.connection - .catch { - log(TAG, ERROR) { "Unable to provide client connection:\n${it.asLog()}" } - throw it + .retryWhen { cause, attempt -> + if (cause is CancellationException) return@retryWhen false + log(TAG, ERROR) { "Unable to provide client connection (attempt=$attempt):\n${cause.asLog()}" } + delay(60_000) // 60s between retries (upstream already did 5 quick retries) + true } .replayingShare(scope)