As reported by a customer we're seeing the following behavior:
- App is launched
- A cold start is detected and an
ui.load transaction is created (app.start.cold + ttid)
- The app is backgrounded before the first frame draws (and the activity only progresses through the
onCreate + onStart phases, no onDestroy) — so TTID never happens, and no lifecycle cleanup on our side runs.
- The device enters Doze, which freezes our deadline timer so it doesn't fire at +30s.
- Hours later the device wakes up, the deadline finally fires when the app is resumed, and our
forceFinish stamps the spans with the current time.
- The resulting transactions spans over multiple hours.
I would argue that we should drop any foreground launches which have a doze in-between, as it just skews the real "user perceived" launches.
On the other hand, a real user was probably waiting for a few seconds for the app to come alive, but it didn't, so the user bailed.
Related issue: #5530
As reported by a customer we're seeing the following behavior:
ui.loadtransaction is created (app.start.cold+ttid)onCreate+onStartphases, noonDestroy) — so TTID never happens, and no lifecycle cleanup on our side runs.forceFinishstamps the spans with the current time.I would argue that we should drop any foreground launches which have a doze in-between, as it just skews the real "user perceived" launches.
On the other hand, a real user was probably waiting for a few seconds for the app to come alive, but it didn't, so the user bailed.
Related issue: #5530