Skip to content

Paywall crash - IllegalStateException: Can't restore purchases #1611

Description

@alekseyrozh

Describe the bug
Using Revebue Cat Paywall, crash found in production logs. Fatal Exception: java.lang.IllegalStateException: Can't restore purchases.
See stacktrace below

  1. Environment
    1. Platform: Android
    2. SDK version: 7.3.1
    3. OS version: Android 12
    4. Android Studio version: -
    5. We are low traffic, so far it crashed once with this error
Fatal Exception: java.lang.IllegalStateException: Can't restore purchases
       at com.revenuecat.purchases.ui.revenuecatui.LoadingViewModel.restorePurchases(LoadingPaywall.kt:198)
       at com.revenuecat.purchases.ui.revenuecatui.composables.FooterKt$Footer$2$1.invoke(Footer.kt:112)
       at com.revenuecat.purchases.ui.revenuecatui.composables.FooterKt$Footer$2$1.invoke(Footer.kt:107)
       at com.revenuecat.purchases.ui.revenuecatui.composables.FooterKt$Button$1$1$1.invoke(Footer.kt:180)
       at com.revenuecat.purchases.ui.revenuecatui.composables.FooterKt$Button$1$1$1.invoke(Footer.kt:180)
       at androidx.compose.foundation.AbstractClickableNode.onKeyEvent-ZmokQxo(AbstractClickableNode.java:730)
       at androidx.compose.ui.focus.FocusOwnerImpl.dispatchKeyEvent-ZmokQxo(FocusOwnerImpl.java:193)
       at androidx.compose.ui.platform.AndroidComposeView.dispatchKeyEvent(AndroidComposeView.android.kt:647)
       at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
       at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
       at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
       at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
       at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
       at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
       at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
       at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
       at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
       at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
       at com.android.internal.policy.DecorView.superDispatchKeyEvent(DecorView.java:486)
       at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1880)
       at android.app.Dialog.dispatchKeyEvent(Dialog.java:836)
       at androidx.appcompat.app.AppCompatDialog.superDispatchKeyEvent(AppCompatDialog.java:209)
       at androidx.core.view.KeyEventDispatcher.dispatchKeyEvent(KeyEventDispatcher.java:85)
       at androidx.appcompat.app.AppCompatDialog.dispatchKeyEvent(AppCompatDialog.java:215)
       at androidx.appcompat.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:60)
       at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.dispatchKeyEvent(AppCompatDelegateImpl.java:3413)
       at curtains.internal.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.kt:41)
       at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:400)
       at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:6377)
       at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:6243)
       at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5725)
       at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5782)
       at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5748)
       at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5913)
       at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5756)
       at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5970)
       at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5729)
       at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5782)
       at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5748)
       at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5756)
       at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5729)
       at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5782)
       at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5748)
       at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5946)
       at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:6104)
       at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:3159)
       at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:2723)
       at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:2714)
       at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:3136)
       at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:154)
       at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
       at android.os.MessageQueue.next(MessageQueue.java:335)
       at android.os.Looper.loopOnce(Looper.java:161)
       at android.os.Looper.loop(Looper.java:288)
       at android.app.ActivityThread.main(ActivityThread.java:7870)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1009)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions