macOS cursor UI freezes after Fast User Switching
Hi everyone,
I'm not a developer or a system engineer in any way. I don't have any real knowledge of macOS internals, so some of my interpretations may be wrong.
My issue is that the cursor UI freezes after Fast User Switching.
For reference, I'm using a Mac Studio with an M4 Max chip and 64 GB of unified memory. 27-inch 4K external display via HDMI. I'm currently running macOS Tahoe 26.3.1 (a). Changing display settings or refresh rates did not appear to affect the behavior. I use a 60 Hz refresh rate, and the problem persists even when no applications are open.
I've been dealing with a strange and very reproducible bug on macOS that seems to affect WindowServer and the cursor rendering system after using Fast User Switching.
The problem is not that the mouse stops working. The actual mouse input continues to work correctly. The issue is visual.
The cursor freezes, but clicks still happen in the correct location. I first started noticing the issue in Photoshop when enlarging the brush size: previews stop visually following the cursor, but painting still happens where the cursor really is. Screen recordings made with QuickTime capture the incorrect cursor behavior as well.
When screen recording, or even if I share my screen with Google Meet, the Cursor UI freezes, and it becomes really hard to find the "Stop Sharing" or "Stop Recording" button.
I then noticed that the "shake to find cursor" feature makes the issue noticeable as well. The enlarged cursor freezes when it is enlarged and unfreezes when at its regular size again. Also, if I increase the cursor size from Settings, there is a specific size that from that point forwards, the cursor UI freezes, until it is back to a smaller size. (Note that I can still click and "navigate" and the actual cursor works, but I can't see the UI moving on screen).
At first I thought this was Photoshop-related, but eventually I discovered that it happens with no applications open at all.
After a lot of testing, I found that the issue is consistently triggered by Fast User Switching.
These are some of the tests I performed:
-Restarting the machine temporarily fixes the issue (because doing this logs out of all users)
-Logging out before switching to another User, does not reproduce the error.
-Switching users while keeping both sessions active does reproduce it.
-Safe Mode does not reproduce the problem, even if switching users.
-Disabling login items and background applications made no difference.
-The issue occurs even with nothing open.
-Creating a completely new test user did not solve anything.
-Killing WindowServer resets the problem, but only temporarily (again, because doing this logs out of other users).
Something interesting I discovered is that the behavior depends on which account is opened first.
If I boot the machine and log into User B, everything works correctly. If I switch to User A, User A also works correctly. But when I switch back to User B, the cursor issue appears. It does not transfer the issue to User A. Strangely, if I log in first as User A and then switch to User B, the issue appears in User B after the first User switch. The issue does not affect User A even if I switch back. When User C (test) was created, I was able to get the issue on User A as well and also on this new User C, so apparently it is not user-related.
However, if I log out completely instead of using Fast User Switching, the problem does not occur.
I started looking through Console logs and found several messages that consistently appear when the problem is active.
WindowServer reports:
"Cursor disabled: failed set_cursor_surface"
I also found messages involving CursorUIViewService, including:
"Connection invalid"
"ViewBridge to RemoteViewService Terminated"
"Unable to obtain a task name port right"
"Failed to create LSApplicationRecord for CursorUIViewService.xpc"
Several messages reference:
com.apple.TextInputUI.xpc.CursorUIViewService
com.apple.view-bridge
SecurityAgent
CursorUI
tccd
WindowServer
Based on what I've observed, my interpretation is that the actual mouse input remains functional, but the cursor rendering layer becomes desynchronized or fails to reconnect properly after Fast User Switching. It seems like something involving WindowServer, CursorUIViewService, or the XPC connection between them breaks during session changes.
[Besides the cursor issue, while I was trying to fix this, I also noticed occasional UI inconsistencies (which I currently don't have any more, but it may be relevant to mention), some app icons looked different between users. Some icons appeared more dull and lacked the glossy "sheen" highlight on the app icon corners, which i know they used to have. These differences disappeared after the machine had been asleep for a while, without me changing anything.]
Has anyone seen something similar? Is this a known issue with WindowServer, CursorUIViewService, Metal, or Fast User Switching?
I'd appreciate any insight or suggestions.
Mac Studio, macOS 26.3