Skip to content

ANR in com.google.firebase.sessions.FirebaseSessionsComponent$MainModule$Companion.createDataStore #7518

@rolgalan

Description

@rolgalan

Describe your environment

  • Android Studio version: Android Studio Narwhal 4 Feature Drop | 2025.1.4
  • Firebase Component: Firebase Sessions (probably part of Analytics or Crashlytics)
  • Component version: Currently BOM 34.2.0 (but this started with version 34.0.0)

Firebase is initialized automatically on the app process creation with the default FirebaseInitProvider that is injected in the manifest, so not controlled by us.

Describe the problem

We are receiving hundreds of ANRs every month during app startup among different OS versions, evenly distributed on many different device kinds.
We have 3 separate reports: 300 users for Android 15, 200 users for Android 14, 200 users for Android 11,12 and 13 together.

The issue resembles slightly similar to a formerly reported one what was claimed to have been resolved last August. So I wonder if it might be connected as these versions were released around that time.

Even if Crashlytics allegedly reports them as background, we've found on similar issues in the past that this a limitation of Crashlytics as these happen during process creation so the Application is not yet created, therefore wrongly classified as background. However the user intention is actually opening the app, so these ANRs negatively impact the application startup time.

Stacktraces are slightly different for each report/OS, so sharing the three of them. Let me know if you need any other information.

Android 15 stacktrace:

          main (runnable):tid=1 systid=13705 
       at kotlinx.coroutines.channels.ChannelKt.Channel(Channel.kt:1443)
       at kotlinx.coroutines.channels.ChannelKt.Channel$default(Channel.kt:1425)
       at androidx.datastore.core.SimpleActor.<init>(SimpleActor.java:49)
       at androidx.datastore.core.DataStoreImpl.<init>(DataStoreImpl.kt:186)
       at androidx.datastore.core.MultiProcessDataStoreFactory.create(MultiProcessDataStoreFactory.java:102)
       at com.google.firebase.sessions.FirebaseSessionsComponent$MainModule$Companion.createDataStore(FirebaseSessionsComponent.kt:178)
       at com.google.firebase.sessions.FirebaseSessionsComponent$MainModule$Companion.createDataStore$default(FirebaseSessionsComponent.kt:170)
       at com.google.firebase.sessions.FirebaseSessionsComponent$MainModule$Companion.sessionConfigsDataStore(FirebaseSessionsComponent.kt:141)
       at com.google.firebase.sessions.FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.sessionConfigsDataStore(FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.java:48)
       at com.google.firebase.sessions.FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.get(FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.java:38)
       at com.google.firebase.sessions.FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.get(FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.java:15)
       at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
       at com.google.firebase.sessions.settings.SettingsCacheImpl_Factory.get(SettingsCacheImpl_Factory.java:40)
       at com.google.firebase.sessions.settings.SettingsCacheImpl_Factory.get(SettingsCacheImpl_Factory.java:13)
       at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
       at com.google.firebase.sessions.settings.RemoteSettings_Factory.get(RemoteSettings_Factory.java:48)
       at com.google.firebase.sessions.settings.RemoteSettings_Factory.get(RemoteSettings_Factory.java:13)
       at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
       at com.google.firebase.sessions.settings.SessionsSettings_Factory.get(SessionsSettings_Factory.java:36)
       at com.google.firebase.sessions.settings.SessionsSettings_Factory.get(SessionsSettings_Factory.java:10)
       at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
       at com.google.firebase.sessions.FirebaseSessions_Factory.get(FirebaseSessions_Factory.java:44)
       at com.google.firebase.sessions.FirebaseSessions_Factory.get(FirebaseSessions_Factory.java:13)
       at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
       at com.google.firebase.sessions.DaggerFirebaseSessionsComponent$FirebaseSessionsComponentImpl.getFirebaseSessions(DaggerFirebaseSessionsComponent.java:198)
       at com.google.firebase.sessions.FirebaseSessionsRegistrar.getComponents$lambda$0(FirebaseSessionsRegistrar.kt:49)
       at com.google.firebase.tracing.ComponentMonitor.lambda$processRegistrar$0(ComponentMonitor.java:38)
       at com.google.firebase.components.ComponentRuntime.lambda$discoverComponents$0(ComponentRuntime.java:160)
       at com.google.firebase.components.Lazy.get(Lazy.java:53)
       at com.google.firebase.components.ComponentRuntime.doInitializeEagerComponents(ComponentRuntime.java:322)
       at com.google.firebase.components.ComponentRuntime.initializeEagerComponents(ComponentRuntime.java:312)
       at com.google.firebase.FirebaseApp.initializeAllApis(FirebaseApp.java:607)
       at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:300)
       at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:264)
       at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:249)
       at com.google.firebase.provider.FirebaseInitProvider.onCreate(FirebaseInitProvider.java:69)
       at android.content.ContentProvider.attachInfo(ContentProvider.java:2648)
       at android.content.ContentProvider.attachInfo(ContentProvider.java:2616)
       at com.google.firebase.provider.FirebaseInitProvider.attachInfo(FirebaseInitProvider.java:61)
       at android.app.ActivityThread.installProvider(ActivityThread.java:8449)
       at android.app.ActivityThread.installContentProviders(ActivityThread.java:7962)
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7630)
       at android.app.ActivityThread.-$$Nest$mhandleBindApplication(unavailable)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2477)
       at android.os.Handler.dispatchMessage(Handler.java:107)
       at android.os.Looper.loopOnce(Looper.java:232)
       at android.os.Looper.loop(Looper.java:317)
       at android.app.ActivityThread.main(ActivityThread.java:8886)
       at java.lang.reflect.Method.invoke(Native method)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:681)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:915)
        

Android 14 stacktrace:

          main (runnable):tid=1 systid=32704 
       at androidx.datastore.core.DataMigrationInitializer$Companion.getInitializer(DataMigrationInitializer.java:32)
       at androidx.datastore.core.MultiProcessDataStoreFactory.create(MultiProcessDataStoreFactory.java:108)
       at com.google.firebase.sessions.FirebaseSessionsComponent$MainModule$Companion.createDataStore(FirebaseSessionsComponent.kt:178)
       at com.google.firebase.sessions.FirebaseSessionsComponent$MainModule$Companion.createDataStore$default(FirebaseSessionsComponent.kt:170)
       at com.google.firebase.sessions.FirebaseSessionsComponent$MainModule$Companion.sessionConfigsDataStore(FirebaseSessionsComponent.kt:141)
       at com.google.firebase.sessions.FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.sessionConfigsDataStore(FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.java:48)
       at com.google.firebase.sessions.FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.get(FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.java:38)
       at com.google.firebase.sessions.FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.get(FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.java:15)
       at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
       at com.google.firebase.sessions.settings.SettingsCacheImpl_Factory.get(SettingsCacheImpl_Factory.java:40)
       at com.google.firebase.sessions.settings.SettingsCacheImpl_Factory.get(SettingsCacheImpl_Factory.java:13)
       at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
       at com.google.firebase.sessions.settings.RemoteSettings_Factory.get(RemoteSettings_Factory.java:48)
       at com.google.firebase.sessions.settings.RemoteSettings_Factory.get(RemoteSettings_Factory.java:13)
       at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
       at com.google.firebase.sessions.settings.SessionsSettings_Factory.get(SessionsSettings_Factory.java:36)
       at com.google.firebase.sessions.settings.SessionsSettings_Factory.get(SessionsSettings_Factory.java:10)
       at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
       at com.google.firebase.sessions.FirebaseSessions_Factory.get(FirebaseSessions_Factory.java:44)
       at com.google.firebase.sessions.FirebaseSessions_Factory.get(FirebaseSessions_Factory.java:13)
       at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
       at com.google.firebase.sessions.DaggerFirebaseSessionsComponent$FirebaseSessionsComponentImpl.getFirebaseSessions(DaggerFirebaseSessionsComponent.java:198)
       at com.google.firebase.sessions.FirebaseSessionsRegistrar.getComponents$lambda$0(FirebaseSessionsRegistrar.kt:49)
       at com.google.firebase.tracing.ComponentMonitor.lambda$processRegistrar$0(ComponentMonitor.java:38)
       at com.google.firebase.components.ComponentRuntime.lambda$discoverComponents$0(ComponentRuntime.java:160)
       at com.google.firebase.components.Lazy.get(Lazy.java:53)
       at com.google.firebase.components.ComponentRuntime.doInitializeEagerComponents(ComponentRuntime.java:322)
       at com.google.firebase.components.ComponentRuntime.initializeEagerComponents(ComponentRuntime.java:312)
       at com.google.firebase.FirebaseApp.initializeAllApis(FirebaseApp.java:607)
       at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:300)
       at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:264)
       at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:249)
       at com.google.firebase.provider.FirebaseInitProvider.onCreate(FirebaseInitProvider.java:69)
       at android.content.ContentProvider.attachInfo(ContentProvider.java:2637)
       at android.content.ContentProvider.attachInfo(ContentProvider.java:2607)
       at com.google.firebase.provider.FirebaseInitProvider.attachInfo(FirebaseInitProvider.java:61)
       at android.app.ActivityThread.installProvider(ActivityThread.java:8110)
       at android.app.ActivityThread.installContentProviders(ActivityThread.java:7613)
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7306)
       at android.app.ActivityThread.-$$Nest$mhandleBindApplication(unavailable)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2356)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loopOnce(Looper.java:243)
       at android.os.Looper.loop(Looper.java:338)
       at android.app.ActivityThread.main(ActivityThread.java:8531)
       at java.lang.reflect.Method.invoke(Native method)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1064)

Android 11,12,13 stacktrace

          main (runnable):tid=1 systid=26506 
       at java.util.Collections$SingletonList.get(Collections.java:5259)
       at kotlin.collections.CollectionsKt___CollectionsKt.toList(CollectionsKt___Collections.kt:1329)
       at androidx.datastore.core.DataStoreImpl$InitDataStore.<init>(DataStoreImpl.java:425)
       at androidx.datastore.core.DataStoreImpl.<init>(DataStoreImpl.kt:176)
       at androidx.datastore.core.MultiProcessDataStoreFactory.create(MultiProcessDataStoreFactory.java:102)
       at com.google.firebase.sessions.FirebaseSessionsComponent$MainModule$Companion.createDataStore(FirebaseSessionsComponent.kt:178)
       at com.google.firebase.sessions.FirebaseSessionsComponent$MainModule$Companion.createDataStore$default(FirebaseSessionsComponent.kt:170)
       at com.google.firebase.sessions.FirebaseSessionsComponent$MainModule$Companion.sessionConfigsDataStore(FirebaseSessionsComponent.kt:141)
       at com.google.firebase.sessions.FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.sessionConfigsDataStore(FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.java:48)
       at com.google.firebase.sessions.FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.get(FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.java:38)
       at com.google.firebase.sessions.FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.get(FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.java:15)
       at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
       at com.google.firebase.sessions.settings.SettingsCacheImpl_Factory.get(SettingsCacheImpl_Factory.java:40)
       at com.google.firebase.sessions.settings.SettingsCacheImpl_Factory.get(SettingsCacheImpl_Factory.java:13)
       at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
       at com.google.firebase.sessions.settings.RemoteSettings_Factory.get(RemoteSettings_Factory.java:48)
       at com.google.firebase.sessions.settings.RemoteSettings_Factory.get(RemoteSettings_Factory.java:13)
       at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
       at com.google.firebase.sessions.settings.SessionsSettings_Factory.get(SessionsSettings_Factory.java:36)
       at com.google.firebase.sessions.settings.SessionsSettings_Factory.get(SessionsSettings_Factory.java:10)
       at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
       at com.google.firebase.sessions.FirebaseSessions_Factory.get(FirebaseSessions_Factory.java:44)
       at com.google.firebase.sessions.FirebaseSessions_Factory.get(FirebaseSessions_Factory.java:13)
       at com.google.firebase.sessions.dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
       at com.google.firebase.sessions.DaggerFirebaseSessionsComponent$FirebaseSessionsComponentImpl.getFirebaseSessions(DaggerFirebaseSessionsComponent.java:198)
       at com.google.firebase.sessions.FirebaseSessionsRegistrar.getComponents$lambda$0(FirebaseSessionsRegistrar.kt:49)
       at com.google.firebase.tracing.ComponentMonitor.lambda$processRegistrar$0(ComponentMonitor.java:38)
       at com.google.firebase.components.ComponentRuntime.lambda$discoverComponents$0(ComponentRuntime.java:160)
       at com.google.firebase.components.Lazy.get(Lazy.java:53)
       at com.google.firebase.components.ComponentRuntime.doInitializeEagerComponents(ComponentRuntime.java:322)
       at com.google.firebase.components.ComponentRuntime.initializeEagerComponents(ComponentRuntime.java:312)
       at com.google.firebase.FirebaseApp.initializeAllApis(FirebaseApp.java:607)
       at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:300)
       at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:264)
       at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:249)
       at com.google.firebase.provider.FirebaseInitProvider.onCreate(FirebaseInitProvider.java:69)
       at android.content.ContentProvider.attachInfo(ContentProvider.java:2451)
       at android.content.ContentProvider.attachInfo(ContentProvider.java:2421)
       at com.google.firebase.provider.FirebaseInitProvider.attachInfo(FirebaseInitProvider.java:61)
       at android.app.ActivityThread.installProvider(ActivityThread.java:7508)
       at android.app.ActivityThread.installContentProviders(ActivityThread.java:7019)
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6790)
       at android.app.ActivityThread.-$$Nest$mhandleBindApplication(unavailable)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2132)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loopOnce(Looper.java:201)
       at android.os.Looper.loop(Looper.java:288)
       at android.app.ActivityThread.main(ActivityThread.java:7918)
       at java.lang.reflect.Method.invoke(Native method)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)

Steps to reproduce:

Cannot reproduce, only see the impact in Crashlytics.

Relevant Code:

// TODO(you): code here to reproduce the problem

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions