UI crash while switching user
I got a crash while switching user. The log is shown below:
type: crash
flags: dev options enabled
SystemUptimeMs: 79491454
Process: system_server
Timestamp: 2025-08-03 14:33:01.306+0700
Build: google/cheetah/cheetah:16/BP2A.250705.008/2025073000:user/release-keys
Crash-Handler: com.android.internal.os.RuntimeInit$KillApplicationHandler
Loading-Progress: 1.0
Dropped-Count: 0
java.lang.RuntimeException: User controller expected a callback while waiting to show the keyguard. Timed out after 20 seconds.
at com.android.server.am.UserController$Injector.lockDeviceNowAndWaitForKeyguardShown(UserController.java:4172)
at com.android.server.am.UserController.continueStartUserInternal(UserController.java:2037)
at com.android.server.am.UserController.lambda$startUserInternal$14(UserController.java:1947)
at com.android.server.am.UserController.$r8$lambda$YRogdBe_w-n7aACFMrILmeTdha0(UserController.java:0)
at com.android.server.am.UserController$$ExternalSyntheticLambda4.run(R8$$SyntheticClass:0)
at android.os.Handler.handleCallback(Handler.java:995)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loopOnce(Looper.java:248)
at android.os.Looper.loop(Looper.java:338)
at android.os.HandlerThread.run(HandlerThread.java:85)
at com.android.server.ServiceThread.run(ServiceThread.java:49)
@hotfur Have you disabled animations or changed the animation speed? Are you using the default gesture navigation mode or 3 button navigation?
Hello all. I'd like to report that I am also seeing system crash issues when switching profiles on my P8 (build 2025071900). I always face this issue when switching from user to owner directly from the user's lock screen. In this case, the system crash error log mentions java.lang.RuntimeException: User controller expected a callback while waiting to show the keyguard. Timed out after 20 seconds, like hotfur's first log posted above.
Occasionally, I also face system crashes when switching from user to owner while being logged into the user (not from the lock screen). In this case, the system crash error log mentions java.util.concurrent.TimeoutException: android.window.WindowContext.finalize() timed out after 10 seconds. Here is the full error log:
type: crash
SystemUptimeMs: 146647400
Process: system_server
Timestamp: 2025-07-27 14:52:34.072+0200
Build: google/shiba/shiba:16/BP2A.250705.008/2025071900:user/release-keys
Crash-Handler: com.android.internal.os.RuntimeInit$KillApplicationHandler
Loading-Progress: 1.0
Dropped-Count: 0
java.util.concurrent.TimeoutException: android.window.WindowContext.finalize() timed out after 10 seconds
at com.android.server.wm.WindowManagerService.detachWindowContext(WindowManagerService.java:3102)
at android.window.WindowTokenClientController.detachIfNeeded(WindowTokenClientController.java:203)
at android.window.WindowContextController.detachIfNeeded(WindowContextController.java:152)
at android.window.WindowContext.release(WindowContext.java:131)
at android.window.WindowContext.finalize(WindowContext.java:124)
at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:387)
at java.lang.Daemons$FinalizerDaemon.processReference(Daemons.java:367)
at java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:339)
at java.lang.Daemons$Daemon.run(Daemons.java:132)
at java.lang.Thread.run(Thread.java:1119)
The owner uses a pin, the user uses pin and fingerprint. In total, I have an owner plus 3 users. All of them can run in parallel.
I have these system crashes for a few months. It's not only related to the current build which I am using.
Developer options are disabled. I have neither disabled animations nor disabled them. I am using the default gesture navigation mode in all profiles.
Thanks!
@thestinger No I did not change animation speed. I use 3 button navigation on all profiles. The crash is quite rare, happens once in two weeks or so of heavy switching and usage. If the system is rebooted once a week (for automatic updates for example), then there is no crash.
system_server crash 19fd676afbed.txt system_server crash 801451228de3.txt
Each time I switch back from 2nd to primary profile. Never happened a few weeks ago. What has changed in the meanwhile:
- Update to Android 16
- Made some changes in system settings in secondary profile, because since Android 16 there was a severe battery drain (35% within 6 -7 hours without any user action), so I decided to change battery settings for some apps and disallowed sending data in the background for all apps. Battery drainage gone, crash came ;-)
My solution so far: Before switching from 1st to 2nd profile just lock the 1st profile (on/off switch -> menu -> lock), AND THEN switch to 2nd profile. When going back to the 1st profile just terminate session with on/off switch -> end session. This prevents the crash. This work around already worked on the 6a.
@thestinger Your question " Are you using the default gesture navigation mode or 3 button navigation?" In my case: 3 Button on both profiles and in addition to that zoom function (in nav bar) activated in primary profile.
This problem has not been solved, I'm still the same, any solution???, I use navigation with 3 buttons and I don't change the speed
is there any solution?
I can't solve this problem
It will be looked into, I'm sorry that there isn't a solution yet.
I can reliably trigger this crash on my phone now. The step to trigger is: 1/ Unlock the owner account (required after reboot). Skip this if already using the phone on any user account. 2/ Switch to another user, let's say user 1, from the top navigation bar (swipe down 2 times then switch user). 3/ Do not enter the unlock credential for user 1. 4/ Switch to another user, let's say user 2, using the top navigation bar. 5/ The crash happens.
If I ensure that I always unlock the user I switched to, then it won't crash.
This crash should be fixed, as it is constant.
the problem intensifies with new updates
@sckalh4ck It doesn't have to do with new OS updates. It's an existing Android bug and has definitely not gotten worse, in fact several cases have been fixed upstream.
As my issue was marked duplicate (I swear I searched before I posted) I'll add my logs here so you don't have to click through
type: crash
flags: dev options enabled
SystemUptimeMs: 4102909
Process: system_server
Timestamp: 2025-10-20 17:12:23.217+0100
Build: google/lynx/lynx:16/BP2A.250805.005/2025100900:user/release-keys
Crash-Handler: com.android.internal.os.RuntimeInit$KillApplicationHandler
Loading-Progress: 1.0
Dropped-Count: 0
java.lang.RuntimeException: User controller expected a callback while waiting to show the keyguard. Timed out after 20 seconds.
at com.android.server.am.UserController$Injector.lockDeviceNowAndWaitForKeyguardShown(UserController.java:4172)
at com.android.server.am.UserController.continueStartUserInternal(UserController.java:2037)
at com.android.server.am.UserController.lambda$startUserInternal$14(UserController.java:1947)
at com.android.server.am.UserController.$r8$lambda$YRogdBe_w-n7aACFMrILmeTdha0(UserController.java:0)
at com.android.server.am.UserController$$ExternalSyntheticLambda4.run(R8$$SyntheticClass:0)
at android.os.Handler.handleCallback(Handler.java:995)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loopOnce(Looper.java:248)
at android.os.Looper.loop(Looper.java:338)
at android.os.HandlerThread.run(HandlerThread.java:85)
at com.android.server.ServiceThread.run(ServiceThread.java:49)
description: Switching user profiles
All my profiles have a lock method (Password for master, PIN code for seconders) and rebooting the device does not help. All my secondary profiles are permanently inaccessible.
type: crash
SystemUptimeMs: 18446364
Process: system_server
Timestamp: 2025-11-24 11:24:39.704+0100
Build: google/panther/panther:16/BP3A.251005.004.B2/2025112100:user/release-keys
Crash-Handler: com.android.internal.os.RuntimeInit$KillApplicationHandler
Loading-Progress: 1.0
Dropped-Count: 0
java.lang.RuntimeException: User controller expected a callback while waiting to show the keyguard. Timed out after 20 seconds.
at com.android.server.am.UserController$Injector.lockDeviceNowAndWaitForKeyguardShown(UserController.java:4519)
at com.android.server.am.UserController.continueStartUserInternal(UserController.java:2262)
at com.android.server.am.UserController.lambda$startUserInternal$16(UserController.java:2219)
at com.android.server.am.UserController.$r8$lambda$Pl0dGffnJ6LafEjR1knWj_fGUIo(UserController.java:0)
at com.android.server.am.UserController$$ExternalSyntheticLambda4.run(R8$$SyntheticClass:0)
at android.os.Handler.handleCallback(Handler.java:1041)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.dispatchMessage(Looper.java:315)
at android.os.Looper.loopOnce(Looper.java:251)
at android.os.Looper.loop(Looper.java:349)
at android.os.HandlerThread.run(HandlerThread.java:100)
at com.android.server.ServiceThread.run(ServiceThread.java:49)
20251121 'end session' from lock screen of 2nd user profile
My issue also marked as duplicate so placed here for convenience.
I worked out that using any wallpaper other than default black will eventually cause crashing between users. Not straightaway but within a few days. However, this time I once again removed the wallpapers but now still crashing when switching from user 3 to 2. User 1 is the owner profile. I have 3 users running on a pixel9a using 3 button navigation. Only had GrapheneOS for a week I use pin on all 3 users. All is up to date. If unable to switch users then this phone becomes unusable. Looks like no solution so far. This issue only started once I added wallpaper on all 3 users.
type: crash
SystemUptimeMs: 5643713 Process: system_server Timestamp: 2025-12-06 07:16:20.379+1100 Build: google/tegu/tegu:16/BP3A.251105.015/2025112100:user/release-keys Crash-Handler: com.android.internal.os.RuntimeInit$KillApplicationHandler Loading-Progress: 1.0 Dropped-Count: 0
java.lang.RuntimeException: User controller expected a callback while waiting to show the keyguard. Timed out after 20 seconds. at com.android.server.am.UserController$Injector.lockDeviceNowAndWaitForKeyguardShown(UserController.java:4519) at com.android.server.am.UserController.continueStartUserInternal(UserController.java:2262) at com.android.server.am.UserController.lambda$startUserInternal$16(UserController.java:2219) at com.android.server.am.UserController.$r8$lambda$Pl0dGffnJ6LafEjR1knWj_fGUIo(UserController.java:0) at com.android.server.am.UserController$$ExternalSyntheticLambda4.run(R8$$SyntheticClass:0) at android.os.Handler.handleCallback(Handler.java:1041) at android.os.Handler.dispatchMessage(Handler.java:103) at android.os.Looper.dispatchMessage(Looper.java:315) at android.os.Looper.loopOnce(Looper.java:251) at android.os.Looper.loop(Looper.java:349) at android.os.HandlerThread.run(HandlerThread.java:100) at com.android.server.ServiceThread.run(ServiceThread.java:49)
Today's update seems to have fixed the 'switching user crash' bug. I even added wallpapers (which i think initially caused the crashing) to all three of my user profiles and all seems good for now.
NOT SO FAST. Just crashed again switching from profile 3 to 2. This is how it mostly crashed before.
type: crash
SystemUptimeMs: 7733113
Process: system_server
Timestamp: 2025-12-07 19:37:13.616+1100
Build: google/tegu/tegu:16/BP3A.251105.015/2025120400:user/release-keys
Crash-Handler: com.android.internal.os.RuntimeInit$KillApplicationHandler
Loading-Progress: 1.0
Dropped-Count: 0
java.util.concurrent.TimeoutException: android.window.WindowContext.finalize() timed out after 10 seconds
at com.android.server.wm.WindowManagerService.detachWindowContext(WindowManagerService.java:3160)
at android.window.WindowTokenClientController.detachIfNeeded(WindowTokenClientController.java:200)
at android.window.WindowContextController.detachIfNeeded(WindowContextController.java:152)
at android.window.WindowContext.release(WindowContext.java:155)
at android.window.WindowContext.finalize(WindowContext.java:146)
at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:388)
at java.lang.Daemons$FinalizerDaemon.processReference(Daemons.java:368)
at java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:340)
at java.lang.Daemons$Daemon.run(Daemons.java:133)
at java.lang.Thread.run(Thread.java:1365)
description: 7 Dec 2025 crash
I should mention that I have 3 user accounts, 2 with a custom wallpaper, and never have this happen. I've had these accounts for a few months and never experienced a crash. I imagine if this happened to everyone it would be reported much more frequently. But I'm not sure how to consistently reproduce it.
I believe I've changed animation speed but I don't remember. I haven't enabled three button navigation. I have a Google Pixel 8. I really can't think of what is consistent among the reporters that I don't have so I'm not sure what causes the issue.
For me, this issue occurs nearly every time I switch from a normal user account (user 2 below) to the owner. Only in some cases, it does not occur. I have not found out in which conditions it does not occur. The only way to avoid it seems to be to wait >30 s in the "Select user" menu, before selecting "Owner" to switch to it. Does anyone of the victims have a better workaround to avoid this issue?
Here is some information of my setup. Maybe other victims see some similarities, which helps us identifying the root cause
- Pixel 8
- Latest GrapheneOS version. This issue is present since the beginning of the year.
- 4 users
Owner:
- No wallpaper (black background)
- No 3 button interface
- Different theme color than all other users
- Increased font size
- Screen lock: PIN (auto-confirm unlock 1, scrambled PIN input layout 0, allow camera access when locked 1, enhanced PIN privacy 0, lock 5 seconds after timeout, power button instantly locks 1)
- No fingerprints
- Nothing changed in the developer settings
- Google Play services installed
- Special apps
- Additional keyboards: Gboard
User 2:
- No wallpaper (black background)
- No 3 button interface
- Different theme color than all other users
- Increased font size
- Screen lock: PIN (auto-confirm unlock 1, scrambled PIN input layout 0, enhanced PIN privacy 0, lock 5 seconds after timeout, power button instantly locks 1), fingerprint
- Nothing changed in the developer settings
- Google Play services not installed
- Special apps
- Git Sync (full device access, accessibility)
- Additional keyboards: Gboard, Keepass2Android
User 3:
- No wallpaper (black background)
- No 3 button interface
- Different theme color than all other users
- Increased font size
- Screen lock: PIN (auto-confirm unlock 1, scrambled PIN input layout 0, enhanced PIN privacy 0, lock 5 seconds after timeout, power button instantly locks 1)
- Fingerprints defined
- Nothing changed in the developer settings
- Google Play services installed
- Special apps
- Additional keyboards: Keepass2Android
User 4:
- No wallpaper (black background)
- No 3 button interface
- Different theme color than all other users
- Increased font size
- Screen lock: PIN (auto-confirm unlock 1, scrambled PIN input layout 0, enhanced PIN privacy 0, lock 5 seconds after timeout, power button instantly locks 1)
- No fingerprints defined
- Nothing changed in the developer settings
- Google Play services installed
- Special apps
- Additional keyboards: Gboard, Keepass2Android
Further notes:
- It does not make a difference how many users are active in parallel
- It occurs right after a restart. Not needed to keep the phone on for a while.
- I mainly use user 2. Therefore, I mainly see it when changing from user 2 to owner. It does not seem to happen when changing back from Owner to user 2. At least, not often.
Today's update seems to have fixed the 'switching user crash' bug. I even added wallpapers (which i think initially caused the crashing) to all three of my user profiles and all seems good for now.
NOT SO FAST. Just crashed again switching from profile 3 to 2. This is how it mostly crashed before.
The wallpaper condition indeed has a huge influence! Thanks for sharing, I can confirm that switching to GOS black almost completely solves the issue, only 'End session' from a locked secondary profile ALWAYS causes crashing. So even with all profiles havin black lock&home backgrounds, ther is something wrong. Heres logs from taday, checking various combinations (so I can confirm the issue hasnt vanished):
type: crash
SystemUptimeMs: 380603
Process: system_server
Timestamp: 2025-12-08 09:48:15.026+0100
Build: google/panther/panther:16/BP3A.251005.004.B2/2025120400:user/release-keys
Crash-Handler: com.android.internal.os.RuntimeInit$KillApplicationHandler
Loading-Progress: 1.0
Dropped-Count: 0
java.lang.RuntimeException: User controller expected a callback while waiting to show the keyguard. Timed out after 20 seconds.
at com.android.server.am.UserController$Injector.lockDeviceNowAndWaitForKeyguardShown(UserController.java:4519)
at com.android.server.am.UserController.continueStartUserInternal(UserController.java:2262)
at com.android.server.am.UserController.lambda$startUserInternal$16(UserController.java:2219)
at com.android.server.am.UserController.$r8$lambda$Pl0dGffnJ6LafEjR1knWj_fGUIo(UserController.java:0)
at com.android.server.am.UserController$$ExternalSyntheticLambda4.run(R8$$SyntheticClass:0)
at android.os.Handler.handleCallback(Handler.java:1041)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.dispatchMessage(Looper.java:315)
at android.os.Looper.loopOnce(Looper.java:251)
at android.os.Looper.loop(Looper.java:349)
at android.os.HandlerThread.run(HandlerThread.java:100)
at com.android.server.ServiceThread.run(ServiceThread.java:49)
I just want to point out on Stock OS, DOS/LOS and Samsung, setting wallpapers doesnt trigger any crash when switching users. So underlaying bug might well originate from AOSP, but trigger comes from GOS to my understanding. I'd highly appreciate if somebody could have a motivated look into this long standing issue. GOS is invaluable and a gift on top, but such obstacles render some features useless, namelu user profile separating practice. People will back away if its causing crashes, so the effort for the 'End session' feature makeseffectively becomes wasted time
Pixel9a. Using black backgrounds on all 3 users. Switched from user 1 - 2 - 3 - 2 - 1 - 2 - 3 then crashed. Nothing running in the background between users. Haven't touched animation speed. Using 3-button navigation on all 3 profiles.
Its so frustrating. For a few days there I loved GOS, specifically its ability to create user profiles. I also loved my inspiring wallpapers but I'll happily compromise with black backgrounds for a functioning OS.
type: crash
SystemUptimeMs: 23770969
Process: system_server
Timestamp: 2025-12-08 21:06:55.515+1100
Build: google/tegu/tegu:16/BP3A.251105.015/2025120400:user/release-keys
Crash-Handler: com.android.internal.os.RuntimeInit$KillApplicationHandler
Loading-Progress: 1.0
Dropped-Count: 0
java.lang.RuntimeException: User controller expected a callback while waiting to show the keyguard. Timed out after 20 seconds.
at com.android.server.am.UserController$Injector.lockDeviceNowAndWaitForKeyguardShown(UserController.java:4519)
at com.android.server.am.UserController.continueStartUserInternal(UserController.java:2262)
at com.android.server.am.UserController.lambda$startUserInternal$16(UserController.java:2219)
at com.android.server.am.UserController.$r8$lambda$Pl0dGffnJ6LafEjR1knWj_fGUIo(UserController.java:0)
at com.android.server.am.UserController$$ExternalSyntheticLambda4.run(R8$$SyntheticClass:0)
at android.os.Handler.handleCallback(Handler.java:1041)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.dispatchMessage(Looper.java:315)
at android.os.Looper.loopOnce(Looper.java:251)
at android.os.Looper.loop(Looper.java:349)
at android.os.HandlerThread.run(HandlerThread.java:100)
at com.android.server.ServiceThread.run(ServiceThread.java:49)
description: 8 Dec 2025
Have just spent some time switches between users and, as I think someone mentioned previously, I waited at the 'select user' screen for about 20 secs, before changing user. Switched between 3 user profiles about 12 times. A couple of times between user 2 to 3 the screen darkened slightly and froze for a few seconds (usually a sign of an impending crash) but eventually switched user. So waiting before switching definitely helps.
I can confirm what mysticpuppy said about the switching time. It varies. Sometimes the phone just needs 1 s to switch to another profile after the switching button was pressed. Sometimes it needs a few seconds and sometimes it crashes after >10 s.
I'd highly appreciate if somebody could have a motivated look into this long standing issue
To be clear, it's not that nobody wants to fix this issue, it's just very bizarre and hard to identify what could cause it. Of course, I am not a GOS developer/team member, I imagine the team members might have some more information on what's going on here. But I just think that it should be pointed out that this issue isn't being ignored, it's just very difficult to fix
I think this have to do with something more than software. Did it happens on a stock Pixel screen or a replacement screen? There are two observations I made:
- On a stock Pixel 8 device that I just owned with the stock Pixel screen, it never happened, no matter how hard I hoop between users.
- On my old Pixel 7 Pro device which have this issue, just two or three fast user switching and the crash will occur. Then I broke and replaced the screen. Since I replaced the screen, nothing happened regardless of how hard I switch users.
Software setup on both phone was exactly the same. Especially for the P7 Pro device, nothing changed. Just the screen.
I think this have to do with something more than software. Did it happens on a stock Pixel screen or a replacement screen? There are two observations I made:
* On a stock Pixel 8 device that I just owned with the stock Pixel screen, it never happened, no matter how hard I hoop between users. * On my old Pixel 7 Pro device which have this issue, just two or three fast user switching and the crash will occur. Then I broke and replaced the screen. Since I replaced the screen, nothing happened regardless of how hard I switch users.Software setup on both phone was exactly the same. Especially for the P7 Pro device, nothing changed. Just the screen.
So you're saying that with the Pixel8 with stock screen, the crash never happened. But with your 7 Pro with stock screen, it crashed between users. Then you replaced the screen and all was well. That makes things even more convoluted with regards to a fix.
I have a refurbished Pixel 9a. Don't know if the screen was replaced. I just know that adding wallpapers makes the crashing worse. Using black (lock&home) backgrounds helps, especially if you wait at the 'select user' screen for a while before switching.
I am using a Pixel 8 with the original screen. No HW modifications at all. This issue still occurs.
@mysticpuppy @BrainstormArtist The com.android.server.am.UserController expected a callback and java.util.concurrent.TimeoutException: android.window.WindowContext.finalize() bug shows that by any chance if user switching did not complete within a certain time then the system will throw an exception. I predict that in case one where people have any kind of security (PIN/Password) then they will have encounter the exception
java.lang.RuntimeException: User controller expected a callback while waiting to show the keyguard. Timed out after 20 seconds. while if you have no security (Swipe/None), then they will encounter java.util.concurrent.TimeoutException: android.window.WindowContext.finalize() timed out after 10 seconds`. Perhaps why we observed that no/black wallpaper helps and no 3-button navigation helps because the login screen can be rendered and displayed quicker. But what if we remove the 10-20 seconds timeout assertion in the source code and recompile? I think we will have either 3 cases:
- A deadlock + no system crash, the screen will freeze forever at the user switching
- Trigger another crash with more informative backtrace
- Finish user switching with no bugs in a long time (~1min?)
In these cases, then the true reason could be found easier. Please first verify if this line of reasoning is correct: Go to security and remove your password/PIN on both users, then trigger the crash to see what kind of error you will receive. Then add back the password/PIN to see if you still have the "keyguard" error. In the meantime I will go to the source code to see where we would temporary remove the assertion checks and compile for one of my other device, which also have this bug.
@mysticpuppy @BrainstormArtist The
com.android.server.am.UserController expected a callbackandjava.util.concurrent.TimeoutException: android.window.WindowContext.finalize()bug shows that by any chance if user switching did not complete within a certain time then the system will throw an exception. I predict that in case one where people have any kind of security (PIN/Password) then they will have encounter the exceptionjava.lang.RuntimeException: User controller expected a callback while waiting to show the keyguard. Timed out after 20 seconds.while if you have no security (Swipe/None), then they will encounterjava.util.concurrent.TimeoutException:android.window.WindowContext.finalize() timed out after 10 seconds`. Perhaps why we observed that no/black wallpaper helps and no 3-button navigation helps because the login screen can be rendered and displayed quicker. But what if we remove the 10-20 seconds timeout assertion in the source code and recompile? I think we will have either 3 cases:
- A deadlock + no system crash, the screen will freeze forever at the user switching
- Trigger another crash with more informative backtrace
- Finish user switching with no bugs in a long time (~1min?)
In these cases, then the true reason could be found easier. Please first verify if this line of reasoning is correct: Go to security and remove your password/PIN on both users, then trigger the crash to see what kind of error you will receive. Then add back the password/PIN to see if you still have the "keyguard" error. In the meantime I will go to the source code to see where we would temporary remove the assertion checks and compile for one of my other device, which also have this bug.
I removed the security pins from all 3 users. Switched between them quickly 12 times. No crash! Am using 3-button nav. All users have black background. Added pin to owner profile only. Switched between users. No crash. Added pin to second user. Switched between users. Got a delayed response from user 2 to 3. Then from user 3 to 2 it crashed.
type: crash
SystemUptimeMs: 13506408
Process: system_server
Timestamp: 2025-12-09 21:27:38.543+1100
Build: google/tegu/tegu:16/BP3A.251105.015/2025120400:user/release-keys
Crash-Handler: com.android.internal.os.RuntimeInit$KillApplicationHandler
Loading-Progress: 1.0
Dropped-Count: 0
java.util.concurrent.TimeoutException: android.window.WindowContext.finalize() timed out after 10 seconds
at com.android.server.wm.WindowManagerService.detachWindowContext(WindowManagerService.java:3160)
at android.window.WindowTokenClientController.detachIfNeeded(WindowTokenClientController.java:200)
at android.window.WindowContextController.detachIfNeeded(WindowContextController.java:152)
at android.window.WindowContext.release(WindowContext.java:155)
at android.window.WindowContext.finalize(WindowContext.java:146)
at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:388)
at java.lang.Daemons$FinalizerDaemon.processReference(Daemons.java:368)
at java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:340)
at java.lang.Daemons$Daemon.run(Daemons.java:133)
at java.lang.Thread.run(Thread.java:1365)
Added wallpaper to user 3. Switched between users. No crash. {EDIT just tried again and crashed from 3 to 1} Added wallpaper to user 2. Eventually crashed switching from user 3 to 1(owner). See first crash report. Then switched again between users and crash from use 2 to 1. See second report. Again, only owner profile has pin.
type: crash
SystemUptimeMs: 14636732
Process: system_server
Timestamp: 2025-12-09 21:49:17.151+1100
Build: google/tegu/tegu:16/BP3A.251105.015/2025120400:user/release-keys
Crash-Handler: com.android.internal.os.RuntimeInit$KillApplicationHandler
Loading-Progress: 1.0
Dropped-Count: 0
java.util.concurrent.TimeoutException: android.window.WindowContext.finalize() timed out after 10 seconds
at com.android.server.wm.WindowManagerService.detachWindowContext(WindowManagerService.java:3160)
at android.window.WindowTokenClientController.detachIfNeeded(WindowTokenClientController.java:200)
at android.window.WindowContextController.detachIfNeeded(WindowContextController.java:152)
at android.window.WindowContext.release(WindowContext.java:155)
at android.window.WindowContext.finalize(WindowContext.java:146)
at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:388)
at java.lang.Daemons$FinalizerDaemon.processReference(Daemons.java:368)
at java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:340)
at java.lang.Daemons$Daemon.run(Daemons.java:133)
at java.lang.Thread.run(Thread.java:1365)
type: crash
SystemUptimeMs: 14763599
Process: system_server
Timestamp: 2025-12-09 21:51:24.018+1100
Build: google/tegu/tegu:16/BP3A.251105.015/2025120400:user/release-keys
Crash-Handler: com.android.internal.os.RuntimeInit$KillApplicationHandler
Loading-Progress: 1.0
Dropped-Count: 0
java.lang.RuntimeException: User controller expected a callback while waiting to show the keyguard. Timed out after 20 seconds.
at com.android.server.am.UserController$Injector.lockDeviceNowAndWaitForKeyguardShown(UserController.java:4519)
at com.android.server.am.UserController.continueStartUserInternal(UserController.java:2262)
at com.android.server.am.UserController.lambda$startUserInternal$16(UserController.java:2219)
at com.android.server.am.UserController.$r8$lambda$Pl0dGffnJ6LafEjR1knWj_fGUIo(UserController.java:0)
at com.android.server.am.UserController$$ExternalSyntheticLambda4.run(R8$$SyntheticClass:0)
at android.os.Handler.handleCallback(Handler.java:1041)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.dispatchMessage(Looper.java:315)
at android.os.Looper.loopOnce(Looper.java:251)
at android.os.Looper.loop(Looper.java:349)
at android.os.HandlerThread.run(HandlerThread.java:100)
at com.android.server.ServiceThread.run(ServiceThread.java:49)
I get this almost always when Talkback with SherpaTTS is enabled, and frequently when Talkback has just been disabled. After disabling and then rebooting, the issue is resolved, and user switching takes less than 5 seconds.