firebase/firebase-android-sdk

Unable to create service com.google.firebase.sessions.SessionLifecycleService: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.sessions.SessionLifecycleService"

Closed this issue · 9 comments

After upgrading to new Firebase BOM my apps are receiving this crash

firebaseBom = "34.1.0"
firebaseCrashlyticsPlugin = "3.0.6"
firebaseAds = "23.6.0"
gmsPlugin = "4.4.3"
Android Studio Narwhal Feature Drop | 2025.1.2 Patch 1
implementation(platform(libs.firebase.bom))
implementation(libs.firebase.config)
implementation(libs.firebase.analytics)
implementation(libs.firebase.crashlytics)
implementation(libs.firebase.messaging)
implementation(libs.firebase.ads)

Reported by Firebase Crashlytics (Android 14-15, a couple of devices for now - Samsung, Oppo):

# Crashlytics - Stack trace
# Application: com.hidden.app
# Platform: android
# Date: Fri Aug 22 2025 11:10:40 GMT+0300 (Eastern European Summer Time)

Fatal Exception: java.lang.RuntimeException: Unable to create service com.google.firebase.sessions.SessionLifecycleService: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.sessions.SessionLifecycleService" on path: DexPathList[[zip file "/data/app/~~Cjp16U8zDgJOVFp_LopaCw==/com.hidden.app-6mSonAVL-kdGqeXAgacEDw==/base.apk", zip file "/data/app/~~Cjp16U8zDgJOVFp_LopaCw==/com.hidden.app-6mSonAVL-kdGqeXAgacEDw==/split_config.arm64_v8a.apk", zip file "/data/app/~~Cjp16U8zDgJOVFp_LopaCw==/com.hidden.app-6mSonAVL-kdGqeXAgacEDw==/split_config.en.apk", zip file "/data/app/~~Cjp16U8zDgJOVFp_LopaCw==/com.hidden.app-6mSonAVL-kdGqeXAgacEDw==/split_config.xxhdpi.apk"],nativeLibraryDirectories=[/data/app/~~Cjp16U8zDgJOVFp_LopaCw==/com.hidden.app-6mSonAVL-kdGqeXAgacEDw==/lib/arm64, /data/app/~~Cjp16U8zDgJOVFp_LopaCw==/com.hidden.app-6mSonAVL-kdGqeXAgacEDw==/base.apk!/lib/arm64-v8a, /data/app/~~Cjp16U8zDgJOVFp_LopaCw==/com.hidden.app-6mSonAVL-kdGqeXAgacEDw==/split_config.arm64_v8a.apk!/lib/arm64-v8a, /data/app/~~Cjp16U8zDgJOVFp_LopaCw==/com.hidden.app-6mSonAVL-kdGqeXAgacEDw==/split_config.en.apk!/lib/arm64-v8a, /data/app/~~Cjp16U8zDgJOVFp_LopaCw==/com.hidden.app-6mSonAVL-kdGqeXAgacEDw==/split_config.xxhdpi.apk!/lib/arm64-v8a, /system/lib64]]
       at android.app.ActivityThread.handleCreateService(ActivityThread.java:5599)
       at android.app.ActivityThread.-$$Nest$mhandleCreateService()
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2707)
       at android.os.Handler.dispatchMessage(Handler.java:107)
       at android.os.Looper.loopOnce(Looper.java:257)
       at android.os.Looper.loop(Looper.java:342)
       at android.app.ActivityThread.main(ActivityThread.java:9638)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:619)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:929)

Caused by java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.sessions.SessionLifecycleService" on path: DexPathList[[zip file "/data/app/~~Cjp16U8zDgJOVFp_LopaCw==/com.hidden.app-6mSonAVL-kdGqeXAgacEDw==/base.apk", zip file "/data/app/~~Cjp16U8zDgJOVFp_LopaCw==/com.hidden.app-6mSonAVL-kdGqeXAgacEDw==/split_config.arm64_v8a.apk", zip file "/data/app/~~Cjp16U8zDgJOVFp_LopaCw==/com.hidden.app-6mSonAVL-kdGqeXAgacEDw==/split_config.en.apk", zip file "/data/app/~~Cjp16U8zDgJOVFp_LopaCw==/com.hidden.app-6mSonAVL-kdGqeXAgacEDw==/split_config.xxhdpi.apk"],nativeLibraryDirectories=[/data/app/~~Cjp16U8zDgJOVFp_LopaCw==/com.hidden.app-6mSonAVL-kdGqeXAgacEDw==/lib/arm64, /data/app/~~Cjp16U8zDgJOVFp_LopaCw==/com.hidden.app-6mSonAVL-kdGqeXAgacEDw==/base.apk!/lib/arm64-v8a, /data/app/~~Cjp16U8zDgJOVFp_LopaCw==/com.hidden.app-6mSonAVL-kdGqeXAgacEDw==/split_config.arm64_v8a.apk!/lib/arm64-v8a, /data/app/~~Cjp16U8zDgJOVFp_LopaCw==/com.hidden.app-6mSonAVL-kdGqeXAgacEDw==/split_config.en.apk!/lib/arm64-v8a, /data/app/~~Cjp16U8zDgJOVFp_LopaCw==/com.hidden.app-6mSonAVL-kdGqeXAgacEDw==/split_config.xxhdpi.apk!/lib/arm64-v8a, /system/lib64]]
       at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:259)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:637)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
       at android.app.AppComponentFactory.instantiateService(AppComponentFactory.java:129)
       at android.app.ActivityThread.handleCreateService(ActivityThread.java:5558)
       at android.app.ActivityThread.-$$Nest$mhandleCreateService()
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2707)
       at android.os.Handler.dispatchMessage(Handler.java:107)
       at android.os.Looper.loopOnce(Looper.java:257)
       at android.os.Looper.loop(Looper.java:342)
       at android.app.ActivityThread.main(ActivityThread.java:9638)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:619)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:929)

FileObserver:
       at android.os.FileObserver$ObserverThread.observe(FileObserver.java)
       at android.os.FileObserver$ObserverThread.run(FileObserver.java:116)

Firebase Background Thread #0:
       at dalvik.system.VMStack.getThreadStackTrace(VMStack.java)
       at java.lang.Thread.getStackTrace(Thread.java:1960)
       at java.lang.Thread.getAllStackTraces(Thread.java:2028)
       at com.google.firebase.crashlytics.internal.common.CrashlyticsReportDataCapture.populateThreadsList(CrashlyticsReportDataCapture.java:343)
       at com.google.firebase.crashlytics.internal.common.CrashlyticsReportDataCapture.populateExecutionData(CrashlyticsReportDataCapture.java:314)
       at com.google.firebase.crashlytics.internal.common.CrashlyticsReportDataCapture.populateEventApplicationData(CrashlyticsReportDataCapture.java:261)
       at com.google.firebase.crashlytics.internal.common.CrashlyticsReportDataCapture.captureEventData(CrashlyticsReportDataCapture.java:112)
       at com.google.firebase.crashlytics.internal.common.SessionReportingCoordinator.persistEvent(SessionReportingCoordinator.java:337)
       at com.google.firebase.crashlytics.internal.common.SessionReportingCoordinator.persistFatalEvent(SessionReportingCoordinator.java:130)
       at com.google.firebase.crashlytics.internal.common.CrashlyticsController$2.call(CrashlyticsController.java:218)
       at com.google.firebase.crashlytics.internal.common.CrashlyticsController$2.call(CrashlyticsController.java:204)
       at com.google.firebase.crashlytics.internal.concurrency.CrashlyticsWorker.lambda$submitTask$2(CrashlyticsWorker.java:118)
       at com.google.android.gms.tasks.zze.run(zze.java:1)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
       at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0(CustomThreadFactory.java:47)
       at java.lang.Thread.run(Thread.java:1119)

WM.task-2:
       at jdk.internal.misc.Unsafe.park(Unsafe.java)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:519)
       at java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3805)
       at java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3746)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1707)
       at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1082)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
       at java.lang.Thread.run(Thread.java:1119)

GmsDynamite:
       at java.lang.Object.wait(Object.java)
       at java.lang.Object.wait(Object.java:405)
       at java.lang.Object.wait(Object.java:543)
       at com.google.android.gms.dynamite.zza.run(zza.java:2)

Firebase-Messaging-Topics-Io:
       at jdk.internal.misc.Unsafe.park(Unsafe.java)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:519)
       at java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3805)
       at java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3746)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1707)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1224)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:953)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1082)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
       at com.google.android.gms.common.util.concurrent.zza.run(zza.java:2)
       at java.lang.Thread.run(Thread.java:1119)

queued-work-looper:
       at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
       at android.os.MessageQueue.next(MessageQueue.java:346)
       at android.os.Looper.loopOnce(Looper.java:214)
       at android.os.Looper.loop(Looper.java:342)
       at android.os.HandlerThread.run(HandlerThread.java:85)

FinalizerWatchdogDaemon:
       at java.lang.Object.wait(Object.java)
       at java.lang.Object.wait(Object.java:405)
       at java.lang.Object.wait(Object.java:543)
       at java.lang.Daemons$FinalizerWatchdogDaemon.sleepUntilNeeded(Daemons.java:481)
       at java.lang.Daemons$FinalizerWatchdogDaemon.runInternal(Daemons.java:461)
       at java.lang.Daemons$Daemon.run(Daemons.java:132)
       at java.lang.Thread.run(Thread.java:1119)

DefaultDispatcher-worker-4:
       at androidx.datastore.core.DataStoreImpl$data$1$5.d(DataStoreImpl.kt:1)
       at androidx.datastore.core.FileStorageConnection.readScope(FileStorage.kt:101)
       at androidx.datastore.core.StorageConnectionKt.readData(StorageConnection.kt:74)
       at androidx.datastore.core.DataStoreImpl.readDataFromFileOrDefault(DataStoreImpl.kt:323)
       at androidx.datastore.core.DataStoreImpl.readDataOrHandleCorruption(DataStoreImpl.kt:365)
       at androidx.datastore.core.DataStoreImpl.access$readDataOrHandleCorruption(DataStoreImpl.kt:48)
       at androidx.datastore.core.DataStoreImpl$transformAndWrite$2.invokeSuspend(DataStoreImpl.kt:330)
       at androidx.datastore.core.DataStoreImpl$transformAndWrite$2.invoke(DataStoreImpl.java:25)
       at androidx.datastore.core.DataStoreImpl$transformAndWrite$2.invoke(DataStoreImpl.java:25)
       at androidx.datastore.core.SingleProcessCoordinator.lock(SingleProcessCoordinator.kt:41)
       at androidx.datastore.core.DataStoreImpl.transformAndWrite(DataStoreImpl.kt:329)
       at androidx.datastore.core.DataStoreImpl.handleUpdate(DataStoreImpl.kt:237)
       at androidx.datastore.core.DataStoreImpl.access$handleUpdate(DataStoreImpl.kt:48)
       at androidx.datastore.core.DataStoreImpl$writeActor$3.invokeSuspend(DataStoreImpl.kt:207)
       at androidx.datastore.core.DataStoreImpl$writeActor$3.invoke(DataStoreImpl.java:376)
       at androidx.datastore.core.DataStoreImpl$writeActor$3.invoke(DataStoreImpl.java:376)
       at androidx.datastore.core.SimpleActor$offer$2.invokeSuspend(SimpleActor.java:121)
       at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
       at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
       at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.java:124)
       at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)
       at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.java:586)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:820)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)

Measurement Worker:
       at java.lang.Object.wait(Object.java)
       at java.lang.Object.wait(Object.java:405)
       at com.google.android.gms.measurement.internal.zzhy.run(com.google.android.gms:play-services-measurement-impl@@23.0.0:10)

Firebase Blocking Thread #2:
       at jdk.internal.misc.Unsafe.park(Unsafe.java)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:410)
       at java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452)
       at java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194)
       at java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:233)
       at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:336)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1081)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
       at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0(CustomThreadFactory.java:47)
       at java.lang.Thread.run(Thread.java:1119)

DefaultDispatcher-worker-2:
       at jdk.internal.misc.Unsafe.park(Unsafe.java)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:410)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:855)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:803)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:751)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)

Firebase Background Thread #3:
       at com.google.firebase.heartbeatinfo.DefaultHeartBeatController.lambda$registerHeartBeat$0(DefaultHeartBeatController.java:66)
       at com.google.android.gms.tasks.zzz.run(zzz.java:1)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
       at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0(CustomThreadFactory.java:47)
       at java.lang.Thread.run(Thread.java:1119)

android.bg:
       at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
       at android.os.MessageQueue.next(MessageQueue.java:346)
       at android.os.Looper.loopOnce(Looper.java:214)
       at android.os.Looper.loop(Looper.java:342)
       at android.os.HandlerThread.run(HandlerThread.java:85)

SharedPreferences:
       at jdk.internal.misc.Unsafe.park(Unsafe.java)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:269)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1758)
       at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:460)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1081)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
       at java.lang.Thread.run(Thread.java:1119)

pool-6-thread-1:
       at jdk.internal.misc.Unsafe.park(Unsafe.java)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:519)
       at java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3805)
       at java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3746)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1707)
       at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1082)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
       at java.lang.Thread.run(Thread.java:1119)

Firebase Background Thread #2:
       at jdk.internal.misc.Unsafe.park(Unsafe.java)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:269)
       at kotlinx.coroutines.BlockingCoroutine.joinBlocking(BlockingCoroutine.java:97)
       at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(BuildersKt__Builders.kt:70)
       at kotlinx.coroutines.BuildersKt.runBlocking(Builders.kt:1)
       at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(BuildersKt__Builders.kt:48)
       at kotlinx.coroutines.BuildersKt.runBlocking$default(Builders.kt:1)
       at com.google.firebase.datastorage.JavaDataStorage.editSync(JavaDataStorage.kt:194)
       at com.google.firebase.heartbeatinfo.HeartBeatInfoStorage.storeHeartBeat(HeartBeatInfoStorage.java:195)
       at com.google.firebase.heartbeatinfo.DefaultHeartBeatController.lambda$registerHeartBeat$0(DefaultHeartBeatController.java:69)
       at com.google.android.gms.tasks.zzz.run(zzz.java:1)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
       at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0(CustomThreadFactory.java:47)
       at java.lang.Thread.run(Thread.java:1119)

MessengerIpcClient:
       at jdk.internal.misc.Unsafe.park(Unsafe.java)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:269)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1758)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1236)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:953)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1082)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
       at com.google.android.gms.common.util.concurrent.zza.run(zza.java:2)
       at java.lang.Thread.run(Thread.java:1119)

Firebase Blocking Thread #1:
       at jdk.internal.misc.Unsafe.park(Unsafe.java)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:410)
       at java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452)
       at java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194)
       at java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:233)
       at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:336)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1081)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
       at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0(CustomThreadFactory.java:47)
       at java.lang.Thread.run(Thread.java:1119)

TAG:
       at jdk.internal.misc.Unsafe.park(Unsafe.java)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:519)
       at java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3805)
       at java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3746)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1707)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1224)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:953)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1082)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
       at com.google.android.gms.common.util.concurrent.zza.run(zza.java:2)
       at java.lang.Thread.run(Thread.java:1119)

Firebase Background Thread #1:
       at jdk.internal.misc.Unsafe.park(Unsafe.java)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:519)
       at java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3805)
       at java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3746)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1707)
       at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1082)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
       at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0(CustomThreadFactory.java:47)
       at java.lang.Thread.run(Thread.java:1119)

WM.task-1:
       at jdk.internal.misc.Unsafe.park(Unsafe.java)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:519)
       at java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3805)
       at java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3746)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1707)
       at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1082)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
       at java.lang.Thread.run(Thread.java:1119)

Firebase-Messaging-Init:
       at jdk.internal.misc.Unsafe.park(Unsafe.java)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:519)
       at java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3805)
       at java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3746)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1707)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1224)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:953)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1082)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
       at com.google.android.gms.common.util.concurrent.zza.run(zza.java:2)
       at java.lang.Thread.run(Thread.java:1119)

ScionFrontendApi:
       at jdk.internal.misc.Unsafe.park(Unsafe.java)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:269)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1758)
       at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:460)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1081)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
       at java.lang.Thread.run(Thread.java:1119)

Firebase Blocking Thread #3:
       at jdk.internal.misc.Unsafe.park(Unsafe.java)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:410)
       at java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452)
       at java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194)
       at java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:233)
       at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:336)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1081)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
       at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0(CustomThreadFactory.java:47)
       at java.lang.Thread.run(Thread.java:1119)

FinalizerDaemon:
       at java.lang.Object.wait(Object.java)
       at java.lang.Object.wait(Object.java:405)
       at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:207)
       at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:228)
       at java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:348)
       at java.lang.Daemons$Daemon.run(Daemons.java:132)
       at java.lang.Thread.run(Thread.java:1119)

DefaultDispatcher-worker-1:
       at jdk.internal.misc.Unsafe.park(Unsafe.java)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:410)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:855)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:803)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:751)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)

Firebase Blocking Thread #0:
       at jdk.internal.misc.Unsafe.park(Unsafe.java)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:410)
       at java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452)
       at java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194)
       at java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:233)
       at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:336)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1081)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
       at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0(CustomThreadFactory.java:47)
       at java.lang.Thread.run(Thread.java:1119)

DefaultDispatcher-worker-3:
       at jdk.internal.misc.Unsafe.park(Unsafe.java)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:410)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:855)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:803)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:751)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)

DefaultDispatcher-worker-5:
       at jdk.internal.misc.Unsafe.park(Unsafe.java)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:410)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:855)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:803)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:751)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)

ReferenceQueueDaemon:
       at java.lang.Object.wait(Object.java)
       at java.lang.Object.wait(Object.java:405)
       at java.lang.Object.wait(Object.java:543)
       at java.lang.Daemons$ReferenceQueueDaemon.runInternal(Daemons.java:260)
       at java.lang.Daemons$Daemon.run(Daemons.java:132)
       at java.lang.Thread.run(Thread.java:1119)

I found a few problems with this issue:

  • I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.
  • This issue does not seem to follow the issue template. Make sure you provide all the required information.

Faced same issue using flutterfire firebase/flutterfire#17649 (comment)

Hi @anonym24, thank you for reaching out. I tried reproducing the issue using the dependencies you shared, however, I did not encounter any error. By any chance, were you able to replicate the issue? Can you share an MCVE to help us investigate the issue?

@lehcar09 I believe we both understand that this issue doesn’t affect all users, and it’s not going to be easy to manually reproduce with the exact same dependencies. The issue is reported by Firebase Crashlytics for these versions, whereas previously it wasn’t present. So unfortunately, I don’t have anything more to share. As far as I know, Firebase can behave quite differently depending on user region and device models, so only their developers can really do something about it (e.g., try to reproduce the issue).

I believe the Firebase dev team must have crash reports from some apps on Google Play (maybe Google’s own apps like YouTube, Drive, etc.) with a large number of users. They could use the same dependencies in those apps and eventually encounter similar crashes in Firebase Crashlytics.

This issue may be device- or version-specific, making it challenging to investigate. Could you provide the percentage of this issue's occurrence and the previous Firebase BOM/product version you used?

Hey @anonym24. We need more information to resolve this issue but there hasn't been an update in 5 weekdays. I'm marking the issue as stale and if there are no new updates in the next 5 days I will close it automatically.

If you have more information that will help us get to the bottom of this, just add a comment!

We are getting exactly the same crash when bumping Firebase BOM from 33.9.0 to 34.0.0 in an native Android app.

It impacted more than a hundred users during the last week, during the app startup.

We are using firebase-analytics, firebase-messaging and firebase-crashlytics.

The issue is not impacting Android 15 or 16 for us, an distributed evenly in lower versions: 29% Android 14, 27% Android 13, 22% Android 12, 16% Android 11.
Regarding devices: 82% are samsung, 12% Xiaomi, 5% Oppo.

Hey @anonym24. We need more information to resolve this issue but there hasn't been an update in 5 weekdays. I'm marking the issue as stale and if there are no new updates in the next 5 days I will close it automatically.

If you have more information that will help us get to the bottom of this, just add a comment!

Since there haven't been any recent updates here, I am going to close this issue.

@anonym24 if you're still experiencing this problem and want to continue the discussion just leave a comment here and we are happy to re-open this.