You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// Guard to ensure the Google Play Integrity API Integrity Provider was asynchronously resolved or do so synchronously now.
155
161
val integrityTokenProviderResolved = integrityTokenProvider ?: prepareIntegrityTokenProvider().await()
@@ -185,10 +191,12 @@ class AppAttestationClient(
185
191
).toBase64String()
186
192
}.getOrElse { e ->
187
193
// If the Google Play Integrity API failed due to the Integrity Token Provider being expired, re-prepare it once for an inline retry.
188
-
if ((e as?IntegrityServiceException)?.errorCode ==INTEGRITY_TOKEN_PROVIDER_INVALID) {
194
+
// The retry call passes canRetryOnInvalidTokenProvider = false to cap retries at one attempt and prevent unbounded recursion on the caller thread if the freshly prepared provider also reports INTEGRITY_TOKEN_PROVIDER_INVALID.
195
+
if (canRetryOnInvalidTokenProvider && (e as?IntegrityServiceException)?.errorCode ==INTEGRITY_TOKEN_PROVIDER_INVALID) {
0 commit comments