launchdarkly/react-native-client-sdk

[Android] App Crash Right on Launch : NullPointerException

Closed this issue ยท 19 comments

i've used launchdarkly since Sept 2022, and haven't changed it version ever since. Always run smoothly until this day. When im build the release apk for testing, the app is crashed right on launch.

Issue only occures on Android on Release APK. On iOS and Android when debugging its all works fine as intended.

`com.launchdarkly.reactnative.LaunchdarklyReactNativeClientModule$ConfigMapping.loadFromMap (LaunchdarklyReactNativeClientModule.java:794)
com.launchdarkly.reactnative.LaunchdarklyReactNativeClientModule.configBuild (LaunchdarklyReactNativeClientModule.java:288)
com.launchdarkly.reactnative.LaunchdarklyReactNativeClientModule.internalConfigure (LaunchdarklyReactNativeClientModule.java:255)
com.launchdarkly.reactnative.LaunchdarklyReactNativeClientModule.configure (LaunchdarklyReactNativeClientModule.java:230)
java.lang.reflect.Method.invoke (Method.java)
com.facebook.react.bridge.JavaMethodWrapper.invoke (JavaMethodWrapper.java:372)
com.facebook.react.bridge.JavaModuleWrapper.invoke (JavaModuleWrapper.java:151)
com.facebook.react.bridge.queue.NativeRunnable.run (NativeRunnable.java)
android.os.Handler.handleCallback (Handler.java:938)

android.os.Handler.dispatchMessage (Handler.java:99)
com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage (MessageQueueThreadHandler.java:27)
android.os.Looper.loopOnce (Looper.java:201)

android.os.Looper.loop (Looper.java:288)
com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run (MessageQueueThreadImpl.java:226)
`

CleanShot 2023-03-14 at 15 09 04

my package.json :
"react-native": "^0.64.4",
"launchdarkly-react-native-client-sdk": "^6.2.0",

I second that, tried to upgrade the SDK and faced the same issue on Android.
Please note that it happens only in release mode, in debug mode the app starts just fine.

Same is happening to me with "launchdarkly-react-native-client-sdk": "^7.1.1", it works on iOS but crashes on app launch on Android in release mode. Works in debug on both platforms.

Stacktrace below:

Crashlytics - Stack trace

Application: com.appName

Platform: android

Version: 1 (100)

Issue: 4027ab6a166524b01c40e6f2397be1cf

Session: 641092F201D900013E864EBB3931319F_DNE_0_v2

Date: Tue Mar 14 2023 11:32:56 GMT-0400 (Eastern Daylight Saving Time)

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])' on a null object reference
at com.launchdarkly.reactnative.LaunchdarklyReactNativeClientModule$ConfigMapping.loadFromMap(LaunchdarklyReactNativeClientModule.java:42)
at com.launchdarkly.reactnative.LaunchdarklyReactNativeClientModule.buildConfiguration(LaunchdarklyReactNativeClientModule.java:19)
at com.launchdarkly.reactnative.LaunchdarklyReactNativeClientModule.access$000(LaunchdarklyReactNativeClientModule.java)
at com.launchdarkly.reactnative.LaunchdarklyReactNativeClientModule$1.run(LaunchdarklyReactNativeClientModule.java:4)
at java.lang.Thread.run(Thread.java:920)

GmsDynamite:
at java.lang.Object.wait(Object.java)
at java.lang.Object.wait(Object.java:442)
at java.lang.Object.wait(Object.java:568)
at com.google.android.gms.dynamite.zza.run(zza.java:6)

ConnectivityThread:
at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
at android.os.MessageQueue.next(MessageQueue.java:335)
at android.os.Looper.loopOnce(Looper.java:186)
at android.os.Looper.loop(Looper.java:313)
at android.os.HandlerThread.run(HandlerThread.java:67)

sdk.pendo.io.q2.z www.gstatic.com:
at java.net.SocketInputStream.socketRead0(SocketInputStream.java)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:119)
at java.net.SocketInputStream.read(SocketInputStream.java:176)
at java.net.SocketInputStream.read(SocketInputStream.java:144)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.readFromSocket(ConscryptEngineSocket.java:945)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:909)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.readUntilDataAvailable(ConscryptEngineSocket.java:824)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.read(ConscryptEngineSocket.java:797)
at sdk.pendo.io.e3.l.a(l.java:45)
at sdk.pendo.io.e3.a$d.a(a.java:12)
at sdk.pendo.io.e3.s.a(s.java:34)
at sdk.pendo.io.e3.s.f(s.java)
at sdk.pendo.io.y2.h.a(h.java:9)
at sdk.pendo.io.y2.f$d.b(f.java:11)
at sdk.pendo.io.y2.f$d.invoke(f.java)
at sdk.pendo.io.u2.c.e(c.java:2)
at sdk.pendo.io.u2.e.b(e.java:67)
at sdk.pendo.io.u2.e.a(e.java)
at sdk.pendo.io.u2.e$d.run(e.java:53)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

Timer-0:
at java.lang.Object.wait(Object.java)
at java.lang.Object.wait(Object.java:442)
at java.util.TimerThread.mainLoop(TimerThread.java:559)
at java.util.TimerThread.run(TimerThread.java:512)

dc.z TaskRunner:
at java.lang.Object.wait(Object.java)
at okhttp3.internal.concurrent.TaskRunner$RealBackend.coordinatorWait(TaskRunner.java:24)
at okhttp3.internal.concurrent.TaskRunner.awaitTaskToRun(TaskRunner.java:186)
at okhttp3.internal.concurrent.TaskRunner$runnable$1.run(TaskRunner.java:5)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

awaitEvenIfOnMainThread task continuation executor1:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.google.firebase.crashlytics.internal.common.ExecutorUtils$1$1.onRun(ExecutorUtils.java:2)
at com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:5)
at java.lang.Thread.run(Thread.java:920)

OkHttp ConnectionPool:
at java.lang.Object.wait(Object.java)
at com.android.okhttp.ConnectionPool$1.run(ConnectionPool.java:106)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

FinalizerWatchdogDaemon:
at java.lang.Thread.sleep(Thread.java)
at java.lang.Thread.sleep(Thread.java:451)
at java.lang.Thread.sleep(Thread.java:356)
at java.lang.Daemons$FinalizerWatchdogDaemon.sleepForNanos(Daemons.java:390)
at java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization(Daemons.java:419)
at java.lang.Daemons$FinalizerWatchdogDaemon.runInternal(Daemons.java:325)
at java.lang.Daemons$Daemon.run(Daemons.java:139)
at java.lang.Thread.run(Thread.java:920)

dc.z lbapi.lightning-bolt.com:
at java.net.SocketInputStream.socketRead0(SocketInputStream.java)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:119)
at java.net.SocketInputStream.read(SocketInputStream.java:176)
at java.net.SocketInputStream.read(SocketInputStream.java:144)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.readFromSocket(ConscryptEngineSocket.java:945)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:909)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.readUntilDataAvailable(ConscryptEngineSocket.java:824)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.read(ConscryptEngineSocket.java:797)
at okio.InputStreamSource.read(InputStreamSource.java:45)
at okio.AsyncTimeout$source$1.read(AsyncTimeout.java:12)
at okio.RealBufferedSource.request(RealBufferedSource.java:35)
at okio.RealBufferedSource.require(RealBufferedSource.java)
at okhttp3.internal.http2.Http2Reader.nextFrame(Http2Reader.java:9)
at okhttp3.internal.http2.Http2Connection$ReaderRunnable.invoke(Http2Connection.java:11)
at okhttp3.internal.http2.Http2Connection$ReaderRunnable.invoke(Http2Connection.java)
at okhttp3.internal.concurrent.TaskQueue$execute$1.runOnce(TaskQueue.java:2)
at okhttp3.internal.concurrent.TaskRunner.runTask(TaskRunner.java:77)
at okhttp3.internal.concurrent.TaskRunner.access$runTask(TaskRunner.java)
at okhttp3.internal.concurrent.TaskRunner$runnable$1.run(TaskRunner.java:54)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

ReferenceQueueDaemon:
at java.lang.Object.wait(Object.java)
at java.lang.Object.wait(Object.java:442)
at java.lang.Object.wait(Object.java:568)
at java.lang.Daemons$ReferenceQueueDaemon.runInternal(Daemons.java:217)
at java.lang.Daemons$Daemon.run(Daemons.java:139)
at java.lang.Thread.run(Thread.java:920)

RxSingleScheduler-1:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1120)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

pool-27-thread-2:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

sdk.pendo.io.q2.z www.gstatic.com:
at java.net.SocketInputStream.socketRead0(SocketInputStream.java)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:119)
at java.net.SocketInputStream.read(SocketInputStream.java:176)
at java.net.SocketInputStream.read(SocketInputStream.java:144)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.readFromSocket(ConscryptEngineSocket.java:945)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:909)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.readUntilDataAvailable(ConscryptEngineSocket.java:824)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.read(ConscryptEngineSocket.java:797)
at sdk.pendo.io.e3.l.a(l.java:45)
at sdk.pendo.io.e3.a$d.a(a.java:12)
at sdk.pendo.io.e3.s.a(s.java:34)
at sdk.pendo.io.e3.s.f(s.java)
at sdk.pendo.io.y2.h.a(h.java:9)
at sdk.pendo.io.y2.f$d.b(f.java:11)
at sdk.pendo.io.y2.f$d.invoke(f.java)
at sdk.pendo.io.u2.c.e(c.java:2)
at sdk.pendo.io.u2.e.b(e.java:67)
at sdk.pendo.io.u2.e.a(e.java)
at sdk.pendo.io.u2.e$d.run(e.java:53)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

MainAnalyticEventsBuffer worker:
at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
at android.os.MessageQueue.next(MessageQueue.java:335)
at android.os.Looper.loopOnce(Looper.java:186)
at android.os.Looper.loop(Looper.java:313)
at android.os.HandlerThread.run(HandlerThread.java:67)

FinalizerDaemon:
at java.lang.Object.wait(Object.java)
at java.lang.Object.wait(Object.java:442)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:190)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:211)
at java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:273)
at java.lang.Daemons$Daemon.run(Daemons.java:139)
at java.lang.Thread.run(Thread.java:920)

DefaultDispatcher-worker-3:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:353)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.java:23)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.java:48)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.java:60)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.java)

pool-27-thread-3:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

ScionFrontendApi:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2109)
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

Firebase Background Thread #1:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0(CustomThreadFactory.java:12)
at com.google.firebase.concurrent.CustomThreadFactory.$r8$lambda$25wFMnJXuxCXflRCTG3ggSOiDOE(CustomThreadFactory.java)
at com.google.firebase.concurrent.CustomThreadFactory$$InternalSyntheticLambda$2$53203795c28a6fcdb3bac755806c9ee73cb3e8dcd4c9bbf8ca5d25d4d9c378dd$0.run(CustomThreadFactory.java:4)
at java.lang.Thread.run(Thread.java:920)

pool-28-thread-1:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:868)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1023)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1334)
at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:232)
at sdk.pendo.io.n5.d.c(d.java:13)
at sdk.pendo.io.d5.l.c(l.java:8)
at sdk.pendo.io.i8.a.b(a.java:17)
at sdk.pendo.io.i8.a.a(a.java)
at sdk.pendo.io.i8.a$e.execute(a.java:130)
at sdk.pendo.io.network.interfaces.a.run(a.java)
at sdk.pendo.io.t5.d$c$a.run(d.java:10)
at sdk.pendo.io.t5.d$c.run(d.java:37)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

Firebase-Messaging-Topics-Io:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1120)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.google.android.gms.common.util.concurrent.zza.run(zza.java:6)
at java.lang.Thread.run(Thread.java:920)

dc.z TaskRunner:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

sdk.pendo.io.q2.z Dispatcher:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

sdk.pendo.io.q2.z Dispatcher:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

pool-27-thread-4:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

DefaultDispatcher-worker-2:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:353)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.java:23)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.java:48)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.java:60)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.java)

FrameMetricsAggregator:
at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
at android.os.MessageQueue.next(MessageQueue.java:335)
at android.os.Looper.loopOnce(Looper.java:186)
at android.os.Looper.loop(Looper.java:313)
at android.os.HandlerThread.run(HandlerThread.java:67)

pool-13-thread-1:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

Firebase Blocking Thread #5:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0(CustomThreadFactory.java:12)
at com.google.firebase.concurrent.CustomThreadFactory.$r8$lambda$25wFMnJXuxCXflRCTG3ggSOiDOE(CustomThreadFactory.java)
at com.google.firebase.concurrent.CustomThreadFactory$$InternalSyntheticLambda$2$53203795c28a6fcdb3bac755806c9ee73cb3e8dcd4c9bbf8ca5d25d4d9c378dd$0.run(CustomThreadFactory.java:4)
at java.lang.Thread.run(Thread.java:920)

RxSchedulerPurge-1:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2109)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1132)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

pool-27-thread-1:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:868)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1023)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1334)
at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:232)
at sdk.pendo.io.n5.d.c(d.java:13)
at sdk.pendo.io.d5.l.c(l.java:8)
at sdk.pendo.io.i8.a.b(a.java:17)
at sdk.pendo.io.i8.a.a(a.java)
at sdk.pendo.io.i8.a$h.$r8$lambda$tU-nt-R4INRHwc0dKQ5ztDOs7_Q(a.java:35)
at sdk.pendo.io.i8.a$h.$r8$lambda$tU-nt-R4INRHwc0dKQ5ztDOs7_Q(a.java)
at sdk.pendo.io.i8.a$h$$InternalSyntheticLambda$1$7f21a74e5d010a508dc8f9252e1d50c9e2bed5f2c0c766b097dcdcd041c03fb4$0.accept(a.java:4)
at sdk.pendo.io.v8.b.onSuccess(b.java:2)
at sdk.pendo.io.r5.j$a.a(j.java:23)
at sdk.pendo.io.w5.i.a(i.java:21)
at sdk.pendo.io.c6.a$a.test(a.java:6)
at sdk.pendo.io.c6.a$a.a(a.java:51)
at sdk.pendo.io.c6.a.b(a.java:22)
at sdk.pendo.io.d5.l.a(l.java:14)
at sdk.pendo.io.r5.j.b(j.java:9)
at sdk.pendo.io.d5.i.a(i.java:14)
at sdk.pendo.io.i8.a$h.execute(a.java:19)
at sdk.pendo.io.network.interfaces.a.run(a.java)
at sdk.pendo.io.t5.d$c$a.run(d.java:10)
at sdk.pendo.io.t5.d$c.run(d.java:37)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

RxCachedWorkerPoolEvictor-1:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2109)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1132)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

pool-23-thread-1:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2109)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1132)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

RxCachedThreadScheduler-4:
at java.lang.Object.wait(Object.java)
at java.lang.Object.wait(Object.java:442)
at java.lang.Object.wait(Object.java:568)
at sdk.pendo.io.y2.i.t(i.java)
at sdk.pendo.io.y2.i.s(i.java:18)
at sdk.pendo.io.y2.g.a(g.java:5)
at sdk.pendo.io.v2.c.a(c.java:2)
at sdk.pendo.io.w2.b.a(b.java:145)
at sdk.pendo.io.w2.g.a(g.java:162)
at sdk.pendo.io.m.e.a(e.java:85)
at sdk.pendo.io.w2.g.a(g.java:162)
at sdk.pendo.io.v2.a.a(a.java:32)
at sdk.pendo.io.w2.g.a(g.java:162)
at sdk.pendo.io.t2.a.a(a.java:151)
at sdk.pendo.io.w2.g.a(g.java:162)
at sdk.pendo.io.w2.a.a(a.java:167)
at sdk.pendo.io.w2.g.a(g.java:162)
at sdk.pendo.io.w2.j.a(j.java:34)
at sdk.pendo.io.w2.g.a(g.java:162)
at sdk.pendo.io.network.interfaces.b.a(b.java:67)
at sdk.pendo.io.network.interfaces.b.$r8$lambda$Xf9g_M7P4lUHJiA2X8QLMRXnARo(b.java)
at sdk.pendo.io.network.interfaces.b$$InternalSyntheticLambda$1$9f65137b3aeb699c867ba00f8f2364def6fae38ce4393e910f061e327c74dde9$0.a(b.java)
at sdk.pendo.io.w2.g.a(g.java:162)
at sdk.pendo.io.network.interfaces.HttpLoggingInterceptor.a(HttpLoggingInterceptor.java:14)
at sdk.pendo.io.w2.g.a(g.java:162)
at sdk.pendo.io.v2.e.l(e.java:112)
at sdk.pendo.io.v2.e.b(e.java:27)
at external.sdk.pendo.io.retrofit2.h.b(h.java:20)
at sdk.pendo.io.k6.c.b(c.java:14)
at sdk.pendo.io.d5.l.a(l.java:14)
at sdk.pendo.io.r5.w.b(w.java:9)
at sdk.pendo.io.d5.l.a(l.java:14)
at sdk.pendo.io.r5.j0$b.run(j0.java:6)
at sdk.pendo.io.d5.r$a.run(r.java:9)
at sdk.pendo.io.t5.m.run(m.java:13)
at sdk.pendo.io.t5.m.call(m.java)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

mqt_js:
at com.facebook.jni.NativeRunnable.run(NativeRunnable.java)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:37)
at java.lang.Thread.run(Thread.java:920)

DefaultDispatcher-worker-1:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:353)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.java:23)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.java:48)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.java:60)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.java)

pool-30-thread-1:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

Crashlytics Exception Handler1:
at dalvik.system.VMStack.getThreadStackTrace(VMStack.java)
at java.lang.Thread.getStackTrace(Thread.java:1724)
at java.lang.Thread.getAllStackTraces(Thread.java:1800)
at com.google.firebase.crashlytics.internal.common.CrashlyticsReportDataCapture.populateThreadsList(CrashlyticsReportDataCapture.java:16)
at com.google.firebase.crashlytics.internal.common.CrashlyticsReportDataCapture.populateExecutionData(CrashlyticsReportDataCapture.java:4)
at com.google.firebase.crashlytics.internal.common.CrashlyticsReportDataCapture.populateEventApplicationData(CrashlyticsReportDataCapture.java:45)
at com.google.firebase.crashlytics.internal.common.CrashlyticsReportDataCapture.captureEventData(CrashlyticsReportDataCapture.java:44)
at com.google.firebase.crashlytics.internal.common.SessionReportingCoordinator.persistEvent(SessionReportingCoordinator.java:19)
at com.google.firebase.crashlytics.internal.common.SessionReportingCoordinator.persistFatalEvent(SessionReportingCoordinator.java:32)
at com.google.firebase.crashlytics.internal.common.CrashlyticsController$2.call(CrashlyticsController.java:49)
at com.google.firebase.crashlytics.internal.common.CrashlyticsController$2.call(CrashlyticsController.java)
at com.google.firebase.crashlytics.internal.common.CrashlyticsBackgroundWorker$3.then(CrashlyticsBackgroundWorker.java:2)
at com.google.android.gms.tasks.zze.run(zze.java:8)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.google.firebase.crashlytics.internal.common.ExecutorUtils$1$1.onRun(ExecutorUtils.java:2)
at com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:5)
at java.lang.Thread.run(Thread.java:920)

FrescoIoBoundExecutor-1:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.facebook.imagepipeline.core.PriorityThreadFactory$1.run(PriorityThreadFactory.java:11)
at java.lang.Thread.run(Thread.java:920)

TemporaryAnalyticEventsBuffer worker:
at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
at android.os.MessageQueue.next(MessageQueue.java:335)
at android.os.Looper.loopOnce(Looper.java:186)
at android.os.Looper.loop(Looper.java:313)
at android.os.HandlerThread.run(HandlerThread.java:67)

FrescoLightWeightBackgroundExecutor-1:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.facebook.imagepipeline.core.PriorityThreadFactory$1.run(PriorityThreadFactory.java:11)
at java.lang.Thread.run(Thread.java:920)

RxCachedThreadScheduler-1:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1120)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

Firebase Blocking Thread #4:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0(CustomThreadFactory.java:12)
at com.google.firebase.concurrent.CustomThreadFactory.$r8$lambda$25wFMnJXuxCXflRCTG3ggSOiDOE(CustomThreadFactory.java)
at com.google.firebase.concurrent.CustomThreadFactory$$InternalSyntheticLambda$2$53203795c28a6fcdb3bac755806c9ee73cb3e8dcd4c9bbf8ca5d25d4d9c378dd$0.run(CustomThreadFactory.java:4)
at java.lang.Thread.run(Thread.java:920)

OkHttp https://zaqar.lightning-bolt.com/...:
at libcore.io.Linux.android_getaddrinfo(Linux.java)
at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:136)
at libcore.io.BlockGuardOs.android_getaddrinfo(BlockGuardOs.java:221)
at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:136)
at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:135)
at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:103)
at java.net.InetAddress.getAllByName(InetAddress.java:1152)
at okhttp3.Dns$Companion$DnsSystem.lookup(Dns.java:5)
at okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:133)
at okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.java:20)
at okhttp3.internal.connection.RouteSelector.next(RouteSelector.java:17)
at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.java:196)
at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.java)
at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.java:47)
at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.java:31)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:11)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:166)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:191)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:166)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:167)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:166)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:34)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:166)
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.java:113)
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.java:51)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

CrAsyncTask #1:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2109)
at java.util.concurrent.ArrayBlockingQueue.poll(ArrayBlockingQueue.java:402)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at Gj.run(Gj.java:8)
at java.lang.Thread.run(Thread.java:920)

RxCachedThreadScheduler-3:
at java.lang.Object.wait(Object.java)
at java.lang.Object.wait(Object.java:442)
at java.lang.Object.wait(Object.java:568)
at sdk.pendo.io.y2.i.t(i.java)
at sdk.pendo.io.y2.i.s(i.java:18)
at sdk.pendo.io.y2.g.a(g.java:5)
at sdk.pendo.io.v2.c.a(c.java:2)
at sdk.pendo.io.w2.b.a(b.java:145)
at sdk.pendo.io.w2.g.a(g.java:162)
at sdk.pendo.io.m.e.a(e.java:85)
at sdk.pendo.io.w2.g.a(g.java:162)
at sdk.pendo.io.v2.a.a(a.java:32)
at sdk.pendo.io.w2.g.a(g.java:162)
at sdk.pendo.io.t2.a.a(a.java:151)
at sdk.pendo.io.w2.g.a(g.java:162)
at sdk.pendo.io.w2.a.a(a.java:167)
at sdk.pendo.io.w2.g.a(g.java:162)
at sdk.pendo.io.w2.j.a(j.java:34)
at sdk.pendo.io.w2.g.a(g.java:162)
at sdk.pendo.io.network.interfaces.b.a(b.java:67)
at sdk.pendo.io.network.interfaces.b.$r8$lambda$Xf9g_M7P4lUHJiA2X8QLMRXnARo(b.java)
at sdk.pendo.io.network.interfaces.b$$InternalSyntheticLambda$1$9f65137b3aeb699c867ba00f8f2364def6fae38ce4393e910f061e327c74dde9$0.a(b.java)
at sdk.pendo.io.w2.g.a(g.java:162)
at sdk.pendo.io.network.interfaces.HttpLoggingInterceptor.a(HttpLoggingInterceptor.java:14)
at sdk.pendo.io.w2.g.a(g.java:162)
at sdk.pendo.io.v2.e.l(e.java:112)
at sdk.pendo.io.v2.e.b(e.java:27)
at external.sdk.pendo.io.retrofit2.h.b(h.java:20)
at sdk.pendo.io.k6.c.b(c.java:14)
at sdk.pendo.io.d5.l.a(l.java:14)
at sdk.pendo.io.r5.w.b(w.java:9)
at sdk.pendo.io.d5.l.a(l.java:14)
at sdk.pendo.io.r5.j0$b.run(j0.java:6)
at sdk.pendo.io.d5.r$a.run(r.java:9)
at sdk.pendo.io.t5.m.run(m.java:13)
at sdk.pendo.io.t5.m.call(m.java)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

pool-5-thread-1:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2109)
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

pool-3-thread-1:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

HybridData DestructorThread:
at java.lang.Object.wait(Object.java)
at java.lang.Object.wait(Object.java:442)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:190)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:211)
at com.facebook.jni.DestructorThread$1.run(DestructorThread.java:4)

FrescoDecodeExecutor-1:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.facebook.imagepipeline.core.PriorityThreadFactory$1.run(PriorityThreadFactory.java:11)
at java.lang.Thread.run(Thread.java:920)

mqt_native_modules:
at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
at android.os.MessageQueue.next(MessageQueue.java:335)
at android.os.Looper.loopOnce(Looper.java:186)
at android.os.Looper.loop(Looper.java:313)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:37)
at java.lang.Thread.run(Thread.java:920)

RxComputationThreadPool-1:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1120)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

OkHttp https://lbapi.lightning-bolt.com/...:
at java.lang.Object.wait(Object.java)
at java.lang.Object.wait(Object.java:442)
at java.lang.Object.wait(Object.java:568)
at okhttp3.internal.http2.Http2Stream.waitForIo$okhttp(Http2Stream.java)
at okhttp3.internal.http2.Http2Stream.takeHeaders(Http2Stream.java:18)
at okhttp3.internal.http2.Http2ExchangeCodec.readResponseHeaders(Http2ExchangeCodec.java:5)
at okhttp3.internal.connection.Exchange.readResponseHeaders(Exchange.java:2)
at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:145)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:166)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:32)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:166)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:191)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:166)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:167)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:166)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:34)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:166)
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.java:113)
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.java:51)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

com.google.firebase.crashlytics.startup1:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.google.firebase.crashlytics.internal.common.ExecutorUtils$1$1.onRun(ExecutorUtils.java:2)
at com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:5)
at java.lang.Thread.run(Thread.java:920)

queued-work-looper:
at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
at android.os.MessageQueue.next(MessageQueue.java:335)
at android.os.Looper.loopOnce(Looper.java:186)
at android.os.Looper.loop(Looper.java:313)
at android.os.HandlerThread.run(HandlerThread.java:67)

RxCachedThreadScheduler-2:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1120)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

queued-work-looper-data:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

sdk.pendo.io.q2.z TaskRunner:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

WifiManagerThread:
at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
at android.os.MessageQueue.next(MessageQueue.java:335)
at android.os.Looper.loopOnce(Looper.java:186)
at android.os.Looper.loop(Looper.java:313)
at android.os.HandlerThread.run(HandlerThread.java:67)

Measurement Worker:
at java.lang.Object.wait(Object.java)
at java.lang.Object.wait(Object.java:442)
at ir.run(ir.java:7)

sdk.pendo.io.q2.z TaskRunner:
at java.lang.Object.wait(Object.java)
at sdk.pendo.io.u2.e$c.a(e.java:24)
at sdk.pendo.io.u2.e.b(e.java:181)
at sdk.pendo.io.u2.e$d.run(e.java:3)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

OkHttp https://lbapi.lightning-bolt.com/...:
at java.lang.Object.wait(Object.java)
at java.lang.Object.wait(Object.java:442)
at java.lang.Object.wait(Object.java:568)
at okhttp3.internal.http2.Http2Stream.waitForIo$okhttp(Http2Stream.java)
at okhttp3.internal.http2.Http2Stream.takeHeaders(Http2Stream.java:18)
at okhttp3.internal.http2.Http2ExchangeCodec.readResponseHeaders(Http2ExchangeCodec.java:5)
at okhttp3.internal.connection.Exchange.readResponseHeaders(Exchange.java:2)
at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:145)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:166)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:32)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:166)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:191)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:166)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:167)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:166)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:34)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:166)
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.java:113)
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.java:51)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

OkHttp https://lbapi.lightning-bolt.com/...:
at java.lang.Object.wait(Object.java)
at java.lang.Object.wait(Object.java:442)
at java.lang.Object.wait(Object.java:568)
at okhttp3.internal.http2.Http2Stream.waitForIo$okhttp(Http2Stream.java)
at okhttp3.internal.http2.Http2Stream.takeHeaders(Http2Stream.java:18)
at okhttp3.internal.http2.Http2ExchangeCodec.readResponseHeaders(Http2ExchangeCodec.java:5)
at okhttp3.internal.connection.Exchange.readResponseHeaders(Exchange.java:2)
at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:145)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:166)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:32)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:166)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:191)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:166)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:167)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:166)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:34)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:166)
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.java:113)
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.java:51)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

Firebase Background Thread #2:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0(CustomThreadFactory.java:12)
at com.google.firebase.concurrent.CustomThreadFactory.$r8$lambda$25wFMnJXuxCXflRCTG3ggSOiDOE(CustomThreadFactory.java)
at com.google.firebase.concurrent.CustomThreadFactory$$InternalSyntheticLambda$2$53203795c28a6fcdb3bac755806c9ee73cb3e8dcd4c9bbf8ca5d25d4d9c378dd$0.run(CustomThreadFactory.java:4)
at java.lang.Thread.run(Thread.java:920)

pool-24-thread-1:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

RxComputationThreadPool-2:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2109)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1132)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

pool-25-thread-1:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

sdk.pendo.io.q2.z data.pendo.io:
at java.net.SocketInputStream.socketRead0(SocketInputStream.java)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:119)
at java.net.SocketInputStream.read(SocketInputStream.java:176)
at java.net.SocketInputStream.read(SocketInputStream.java:144)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.readFromSocket(ConscryptEngineSocket.java:945)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:909)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.readUntilDataAvailable(ConscryptEngineSocket.java:824)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.read(ConscryptEngineSocket.java:797)
at sdk.pendo.io.e3.l.a(l.java:45)
at sdk.pendo.io.e3.a$d.a(a.java:12)
at sdk.pendo.io.e3.s.a(s.java:34)
at sdk.pendo.io.e3.s.f(s.java)
at sdk.pendo.io.y2.h.a(h.java:9)
at sdk.pendo.io.y2.f$d.b(f.java:11)
at sdk.pendo.io.y2.f$d.invoke(f.java)
at sdk.pendo.io.u2.c.e(c.java:2)
at sdk.pendo.io.u2.e.b(e.java:67)
at sdk.pendo.io.u2.e.a(e.java)
at sdk.pendo.io.u2.e$d.run(e.java:53)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

dc.z TaskRunner:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

OkHttp https://lbapi.lightning-bolt.com/...:
at java.lang.Object.wait(Object.java)
at java.lang.Object.wait(Object.java:442)
at java.lang.Object.wait(Object.java:568)
at okhttp3.internal.http2.Http2Stream.waitForIo$okhttp(Http2Stream.java)
at okhttp3.internal.http2.Http2Stream.takeHeaders(Http2Stream.java:18)
at okhttp3.internal.http2.Http2ExchangeCodec.readResponseHeaders(Http2ExchangeCodec.java:5)
at okhttp3.internal.connection.Exchange.readResponseHeaders(Exchange.java:2)
at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:145)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:166)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:32)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:166)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:191)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:166)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:167)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:166)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:34)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:166)
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.java:113)
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.java:51)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

Firebase Background Thread #0:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0(CustomThreadFactory.java:12)
at com.google.firebase.concurrent.CustomThreadFactory.$r8$lambda$25wFMnJXuxCXflRCTG3ggSOiDOE(CustomThreadFactory.java)
at com.google.firebase.concurrent.CustomThreadFactory$$InternalSyntheticLambda$2$53203795c28a6fcdb3bac755806c9ee73cb3e8dcd4c9bbf8ca5d25d4d9c378dd$0.run(CustomThreadFactory.java:4)
at java.lang.Thread.run(Thread.java:920)

sdk.pendo.io.q2.z TaskRunner:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

Okio Watchdog:
at java.lang.Object.wait(Object.java)
at java.lang.Object.wait(Object.java:442)
at java.lang.Object.wait(Object.java:568)
at com.android.okhttp.okio.AsyncTimeout.awaitTimeout(AsyncTimeout.java:313)
at com.android.okhttp.okio.AsyncTimeout.access$000(AsyncTimeout.java:42)
at com.android.okhttp.okio.AsyncTimeout$Watchdog.run(AsyncTimeout.java:288)

Firebase Blocking Thread #6:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0(CustomThreadFactory.java:12)
at com.google.firebase.concurrent.CustomThreadFactory.$r8$lambda$25wFMnJXuxCXflRCTG3ggSOiDOE(CustomThreadFactory.java)
at com.google.firebase.concurrent.CustomThreadFactory$$InternalSyntheticLambda$2$53203795c28a6fcdb3bac755806c9ee73cb3e8dcd4c9bbf8ca5d25d4d9c378dd$0.run(CustomThreadFactory.java:4)
at java.lang.Thread.run(Thread.java:920)

Okio Watchdog:
at java.lang.Object.wait(Object.java)
at sdk.pendo.io.e3.a$a.a(a.java:76)
at sdk.pendo.io.e3.a$b.run(a.java:6)

Firebase-Messaging-Init:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1120)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.google.android.gms.common.util.concurrent.zza.run(zza.java:6)
at java.lang.Thread.run(Thread.java:920)

sdk.pendo.io.q2.z TaskRunner:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)

main:
at com.facebook.react.views.view.ReactViewGroup.initView(ReactViewGroup.java)
at com.facebook.react.views.view.ReactViewGroup.(ReactViewGroup.java:10)
at com.facebook.react.views.view.ReactViewManager.createViewInstance(ReactViewManager.java:2)
at com.facebook.react.views.view.ReactViewManager.createViewInstance(ReactViewManager.java)
at com.facebook.react.uimanager.ViewManager.createViewInstance(ViewManager.java:27)
at com.facebook.react.uimanager.ViewManager.createView(ViewManager.java)
at com.facebook.react.uimanager.NativeViewHierarchyManager.createView(NativeViewHierarchyManager.java:40)
at com.facebook.react.uimanager.UIViewOperationQueue$CreateViewOperation.execute(UIViewOperationQueue.java:23)
at com.facebook.react.uimanager.UIViewOperationQueue$1.run(UIViewOperationQueue.java:111)
at com.facebook.react.uimanager.UIViewOperationQueue.flushPendingBatches(UIViewOperationQueue.java:53)
at com.facebook.react.uimanager.UIViewOperationQueue.access$2600(UIViewOperationQueue.java)
at com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.doFrameGuarded(UIViewOperationQueue.java:31)
at com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.java)
at com.facebook.react.modules.core.ReactChoreographer$ReactChoreographerDispatcher.doFrame(ReactChoreographer.java:46)
at com.facebook.react.modules.core.ChoreographerCompat$FrameCallback$1.doFrame(ChoreographerCompat.java:2)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1106)
at android.view.Choreographer.doCallbacks(Choreographer.java:866)
at android.view.Choreographer.doFrame(Choreographer.java:792)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1092)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8663)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:567)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)

Firebase Background Thread #3:
at sun.misc.Unsafe.park(Unsafe.java)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0(CustomThreadFactory.java:12)
at com.google.firebase.concurrent.CustomThreadFactory.$r8$lambda$25wFMnJXuxCXflRCTG3ggSOiDOE(CustomThreadFactory.java)
at com.google.firebase.concurrent.CustomThreadFactory$$InternalSyntheticLambda$2$53203795c28a6fcdb3bac755806c9ee73cb3e8dcd4c9bbf8ca5d25d4d9c378dd$0.run(CustomThreadFactory.java:4)
at java.lang.Thread.run(Thread.java:920)

My team is also facing the same exception. No idea why as I don't think we changed anything in regards to the configuration or version of the package.

does anyone have temporary solutions beside disabling launchdarkly? my team really need to releasing new feature in a few days.

Hello @dio-ralali, @denissb, @PunainenAurinko, @vlad-ps, @RobertWHurst,

Thank you for reporting the bug, we need more information to investigate this.

If it is possible, can you please share your RN SDK release build and debug build configuration (while removing all the secret values) so we can reproduce this?

@louis-launchdarkly As far as versions go, we are using React Native version 0.68.5 and Launch Darkly 6.3.2.

@RobertWHurst Thank you for the info, we suspect something had changed at 6.3.x. If you can share the hash/object you used as a configuration to initialize the LDClient, that would be really helpful for reproduction.

We were using LD before, but it started crashing recently. Currently we are on v. 7.1.1 with RN 0.71.4.

That's what we used to initialize LD:

import LDClient, * as ld from 'launchdarkly-react-native-client-sdk';

  // * Initialize LaunchDarkly
     useEffect(() => {
         const client = new LDClient()

         if (isLoggedIn) {
             const { apiUrlKey } = session // session object unrelated to LD

             const mobileKey = CONFIG[apiUrlKey]?.LD_KEY || CONFIG.PROD.LD_KEY // mobile key for different environments that we use for the app

             const config: ld.LDConfig = { mobileKey }
             const context: ld.LDContext = {
                 key: `user-key-${CLIENT_ID}`,
                 kind: 'user',
             }

             const initialize = async () =>
                 await client.configure(config, context)

             initialize().catch((error) => console.error(error))
         }
         return async () => await client.close()
     }, [])

@louis-launchdarkly Here's a snippet of our code for initializing the Launch Darkly client:


export const configure = async () => {
  const state = store.getState();
  const config = {
    mobileKey:
      getEnv('ENV') === 'prod'
        ? getProdKey()
        : getStageKey(),
  };
  const user = {
    key: state.account.currentUser?.auth0Id?.replace('|', '-'),
    email: state.account.currentUser?.email,
    firstName: state.account.currentUser?.givenName,
    lastName: state.account.currentUser?.familyName,
  };

  try {
    await client.close();
    await client.configure(config, user);

    // Set up feature flags
    const dataCreditRedemptionEnabled = await client.stringVariation('data-credit-redemption');
    store.dispatch(updateDataCreditRedemptionEnabled(dataCreditRedemptionEnabled));

    const pushNotificatonsEnabled = await client.stringVariation('push-notifications');
    store.dispatch(updatePushNotificationsEnabled(pushNotificatonsEnabled));

    console.log({
      dataCreditRedemptionEnabled,
      pushNotificatonsEnabled,
    });
  } catch (e) {
    // no-op
    console.log(e);
  }
};

Note that we initialize the client above this function simply as

export const client = new RNLDClient();

The reason we call close before configure is to ensure the client does not hold on to old state from previous initializations. This can happen in the event of a code push, or if a user switches app environment.

@RobertWHurst the user key property is mandatory for the React Native SDK versions 6.x because the underlying Android SDK mandates it. In versions >= 7.x the React Native SDK will auto generate the context key if none is provided. Please update to the latest 7.x version to resolve this issue.

If you have to stay on versions 6.x, the workaround is to ensure that the user key is set.

@yusinto Indeed we do use optional chaining there, but I can confirm we always set the key. It is never an empty value. That said, just to be sure we will update the code to only allow configure to be called if currentUser is present.

@dio-ralali the error line from your screenshot suggests that you are using version 6.3.x. If you set the rn sdk dependency to^6.2.0 then the ld rn sdk will get updated to 6.3.x.

As a workaround for now, you can pin your dependency to 6.2.x while we investigate the issue:

    "launchdarkly-react-native-client-sdk": "~6.2.0",

Hello all,

We are still looking into this problem. In the meantime, @dio-ralali, please let us know does pinning the dependency help resolve the problem for you for now while we are investigating this.

@louis-launchdarkly @yusinto I can confirm that 6.2.x do not cause the issue. We rolled back and that did sort it out for us for now.

It's not really a solution for us to roll back to 6.2.x, as we are on RN 0.71.4 and need to use LD v.7.x.x.

Yep i can confirm that pinning to version "~6.2.0" did work for me. Thanks for the solution ๐Ÿ‘

@louis-launchdarkly

This is how we initialise the LD SDK:

export async function initLdClient(mobileKey: string) {
	const client = new LDClient();

	let config = {
		mobileKey, // you know what this is
		stream: true,
		offline: false,
		connectionTimeoutMillis: TIMEOUT_MS, // 5000
	};

	let user = {
		key: await DeviceInfo.getUniqueId(), // use device unique ID as anonymous user ID
		anonymous: true,
	};

	try {
		await client.configure(config, user, TIMEOUT_MS / 1000);
		log.log('Initialized LD client');
	} catch (err) {
		if (
			err instanceof Error &&
			err.message === 'LaunchDarkly SDK already initialized'
		) {
			// Do nothing
		} else if (
			err instanceof Error &&
			err.message === 'SDK initialization timed out'
		) {
			log.warn(err);
			Analytics.trackEvent('LaunchDarkly configuration timed out', {
				error: String(err),
			});

			log.log(
				'Trying to configure LaunchDarkly silently without blocking',
			);

			client
				.configure(config, user)
				.then(() => {
					log.log('LaunchDarkly configured successfully after retry');
				})
				.catch(() => null);
		} else {
			log.warn(err);
			Analytics.trackEvent('Failed to initialized LaunchDarkly', {
				error: String(err),
			});
		}
	}

	return client;
}

"react-native": "0.66.5",
"launchdarkly-react-native-client-sdk": "6.3.1"

We have released 7.1.2 and 6.3.3 which fix the loadFromMap configBuild errors as reported by @dio-ralali.

Thanks a lot mas @yusinto! I can confirm that the 6.3.3 version already fixed the issue. And i can remove the pinning dependency and back to this package.json config :

"react-native": "^0.64.4",
"launchdarkly-react-native-client-sdk": "^6.2.0",