OneSignal / OneSignal-Android-SDK

OneSignal is a free push notification service for mobile apps. This plugin makes it easy to integrate your native Android or Amazon app with OneSignal. https://onesignal.com
Other
592 stars 368 forks source link

[Bug]: Crash in com.onesignal.language.LanguageContext.getLanguage after calling pauseInAppMessages() #2105

Open chokokatana opened 1 month ago

chokokatana commented 1 month ago

What happened?

Got crash from user in the field who after reaching a certain part of the registration flow called pauseInAppMessages(false) to enable in app messages.

Steps to reproduce?

No reproducible steps.

What did you expect to happen?

No crash.

OneSignal Android SDK version

4.8.9

Android version

14

Specific Android models

* Google Pixel 8, Android 14

Relevant log output

Fatal Exception: java.lang.NullPointerException: Attempt to read from field 'java.lang.Object n3.c.H' on a null object reference in method 'java.lang.String com.onesignal.k0.r0(com.onesignal.l0)'
       at com.onesignal.language.LanguageContext.getLanguage(LanguageContext.java:38)
       at com.onesignal.OSInAppMessageController.variantIdForMessage(OSInAppMessageController.java:277)
       at com.onesignal.OSInAppMessageController.displayMessage(OSInAppMessageController.java:807)
       at com.onesignal.OSInAppMessageController.attemptToShowInAppMessage(OSInAppMessageController.java:649)
       at com.onesignal.OSInAppMessageController.queueMessageForDisplay(OSInAppMessageController.java:633)
       at com.onesignal.OSInAppMessageController.evaluateInAppMessages(OSInAppMessageController.java:270)
       at com.onesignal.OSInAppMessageController.setInAppMessagingEnabled(OSInAppMessageController.java:1029)
       at com.onesignal.OneSignal.pauseInAppMessages(OneSignal.java:3163)
       at com.geodb.wallace.utils.SlowSignal$Companion$activateInAppMessages$1$1$1.invokeSuspend(SlowSignal.kt:100)
       at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
       at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
       at android.os.Handler.handleCallback(Handler.java:959)
       at android.os.Handler.dispatchMessage(Handler.java:100)
       at android.os.Looper.loopOnce(Looper.java:232)
       at android.os.Looper.loop(Looper.java:317)
       at android.app.ActivityThread.main(ActivityThread.java:8501)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:878)

Code of Conduct

jennantilla commented 3 weeks ago

Thanks for reaching out @chokokatana! We'll look into this and get back to you as soon as possible.

jkasten2 commented 1 day ago

@chokokatana do you call OneSignal.setLanguage() in your app?

Do you see this issue if you upgrade to the latest OneSignal-Android-SDK 5.x.x version?

chokokatana commented 11 hours ago