Skip to main content

Hello,

Despite not having pushed new builds live during this month, yesterday we stared seeing a spike on the attached ANR through Crashlytics. Wondering if anything server-side changed that may have caused this or if the source of the issue its known.

Thanks!

          main (native):tid=1 systid=13134 
#00 pc 0x911c0 libc.so (syscall + 32) (BuildId: 02a91a85343debb2911714273ff2b670)
#01 pc 0x95f20 libc.so (__futex_wait_ex + 148) (BuildId: 02a91a85343debb2911714273ff2b670)
#02 pc 0xfe5c8 libc.so (NonPI::MutexLockWithTimeout + 660) (BuildId: 02a91a85343debb2911714273ff2b670)
#03 pc 0x458648 libunity.so (BuildId: 3136b3ea4de05c5c5e8e5c62663529953fcd50fc)
#04 pc 0x4584f8 libunity.so (UnitySendMessage + 116) (BuildId: 3136b3ea4de05c5c5e8e5c62663529953fcd50fc)
#05 pc 0x4074d4 libunity.so (BuildId: 3136b3ea4de05c5c5e8e5c62663529953fcd50fc)
at com.unity3d.player.UnityPlayer.nativeUnitySendMessage(Native method)
at com.unity3d.player.UnityPlayer.UnitySendMessage(unavailable:39)
at com.revenuecat.purchasesunity.PurchasesWrapper.sendJSONObject(PurchasesWrapper.java:555)
at com.revenuecat.purchasesunity.PurchasesWrapper$2.onReceived(PurchasesWrapper.java:100)
at com.revenuecat.purchases.hybridcommon.CommonKt$getProductInfo$onReceived$1.invoke(common.kt:81)
at com.revenuecat.purchases.hybridcommon.CommonKt$getProductInfo$onReceived$1.invoke(common.kt:81)
at com.revenuecat.purchases.ListenerConversionsCommonKt$getStoreProductsCallback$1.onReceived(ListenerConversionsCommon.kt:31)
at com.revenuecat.purchases.PurchasesOrchestrator$getProducts$1.onReceived(PurchasesOrchestrator.kt:347)
at com.revenuecat.purchases.PurchasesOrchestrator.getProductsOfTypes(PurchasesOrchestrator.kt:807)
at com.revenuecat.purchases.PurchasesOrchestrator.access$getProductsOfTypes(PurchasesOrchestrator.kt:73)
at com.revenuecat.purchases.PurchasesOrchestrator$getProductsOfTypes$1$1$1.invoke(PurchasesOrchestrator.kt:792)
at com.revenuecat.purchases.PurchasesOrchestrator$getProductsOfTypes$1$1$1.invoke(PurchasesOrchestrator.kt:791)
at com.revenuecat.purchases.PurchasesOrchestrator.dispatch$lambda$16(PurchasesOrchestrator.kt:830)
at com.revenuecat.purchases.PurchasesOrchestrator.$r8$lambda$ddqBCKhVKstiaq26JrTT8EftLgA(unavailable)
at com.revenuecat.purchases.PurchasesOrchestrator$$ExternalSyntheticLambda0.run(unavailable:2)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:230)
at android.os.Looper.loop(Looper.java:319)
at android.app.ActivityThread.main(ActivityThread.java:8893)
at java.lang.reflect.Method.invoke(Native method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

Hi, on the day that you created the community post we did have an incident where our API had elevated error rates but it has since been resolved, see here for more details: https://status.revenuecat.com/incidents/tbxwgcv1v2x9. Are you still seeing the spike in Crashlytics? If so then could you run RevenueCat debug logs and send those over, see here for how to enable them? https://www.revenuecat.com/docs/test-and-launch/debugging#section-debugging


Thanks for the update,

However, we still see the ANRs happening on our Crashlytics dashboard.


We cannot easily reproduce the ANR nor can toggle ON debug logs remotely, so its being hard to track down


Hi @Manel Simon Martínez,

Does the issue happen on any specific Android or SDK versions?


Hi @sharif , I can give you more details after more examination:

  • SDK: com.revenuecat.purchases-unity 6.9.2
  • The first case for this ANR was registered on September 18-19, low cases
    • After September 21 we could see an increasing number of cases per day
    • Those dates don’t match any release critical schedule, the SDK version wasn’t updated during those days neither.
    • Including Android 14 case on the attached image
  • Seems that 2 RevCat internal methods are the ones affected:
    • getProductsOfTypes
    • sendCustomerInfo
  • for both of them the ANR is triggered on com.revenuecat.purchasesunity.PurchasesWrapper.sendJSONObject(PurchasesWrapper.java:555)
    • This is followed for a timeout coming from `NonPI::MutexLockWithTimeout`, producing the ANR
  • we see the same ANR as 2 different events for Android 14 and Android 13/12/11, two different stacktraces for every case but always triggering on PurchasesWrapper.sendJSONObject with the same internal methods, mentioned above.
     

 

 

We could share more stacktraces in private message if it’s necessary, to not expose internal logic of our product. As our product is on an acceleration stage, it’s critical for us to keep Tech Health in track so any help you can provide us will be extremely important for the next days.

Let me know if you need more info or if we can give you the full stacktraces directly. Thanks in advance!


Reply