Skip to content

[PM-39262] Slow cold start (~15 s): main thread blocked ~10 s on a startup await that times out #7076

@toby-bro

Description

@toby-bro

Steps To Reproduce

  1. Install version 2026.5.1
  2. Make sure the app is closed
  3. Open the app (cold start)
  4. Wait 10/15s before anything happens

Expected Result

The app opens in one or two seconds.

Actual Result

The app hangs, this is particularly annoying as it sorts of makes all the other apps in which I use it hang also (i.e. browsers)

Screenshots or Videos

The app just hangs before the biometric/password input, it's just a blank/blue screen

Additional Context

Debugging with adb and Claude gave the following result

On a cold start, the app holds the splash screen for ~15 s before the unlock screen appears. A Perfetto system trace shows the main thread is asleep ~15 s and running only ~0.8 s during startup — i.e. it is waiting, not doing work. The dominant cost is a single ~10.0 s main-thread park that occurs after MainActivity.onCreate returns, during which no thread in the process does any meaningful CPU work and no IPC is in flight. The duration is consistently ~10,010 ms, which looks like a fixed timeout / an await that never completes and expires after 10 s.

This is pre-unlock (the biometric/unlock prompt only appears after the stall), it is unaffected by airplane mode, and only arrived recently.

+35 ms     bindApplication ............ 146 ms   (Application.onCreate — fine)
+198 ms    performCreate MainActivity . 3.7 s
              └─ main thread SLEEPS 3.59 s inside onCreate (waiting)
+3881 ms   ── main thread SLEEPS 10.01 s ──       (after onCreate, before resume)
+13924 ms  first Choreographer frames begin
+15400 ms  UI fully drawn -> unlock prompt

I didn't take the trouble of sideloading the previous apk, but this problem happened recently.
Once this wait is done then the app works fine.

Build Version

2026.5.1 (that's what play store tells me)

What server are you connecting to?

EU

Self-host Server Version

No response

Environment Details

  • Device: Samsung S20
  • Android 13

Issue Tracking Info

  • I understand that work is tracked outside of Github. A PR will be linked to this issue should one be opened to address it, but Bitwarden doesn't use fields like "assigned", "milestone", or "project" to track progress.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions