After a Cursor update (observed after upgrading from 3.11.25 → 3.12.10, and repeatedly on prior updates), the macOS Dock icon shows a red badge 1.
There is nothing unread in the UI:
No unread agent chats visible
Command Palette / tray “Clear All Notifications” is not a usable action on this build (typing it opens a new agent with that string as input, or the action does not exist)
Fully quitting Cursor (Cmd+Q) and reopening does not clear the badge
This appears related to prior reports of Dock badge desync (archived chats / badgeCounts), including the “fixed in 3.8” threads — still reproducible on 3.12.10.
Steps to Reproduce
Update Cursor (or launch after an update).
Observe Dock badge 1 on the Cursor icon.
Confirm no unread agents in the UI.
Quit/reopen Cursor — badge remains.
Run lsappinfo info -only badge "Cursor" — often reports NULL while badge still visible.
Run killall Dock — badge clears.
Expected Behavior
Dock badge should clear when there are no unread agent notifications.
If Cursor’s internal badge count is 0 / lsappinfo badge is NULL, the Dock tile should not show a leftover 1.
There should be a reliable in-app way to force-reset the Dock badge (current “Clear All Notifications” path is missing or does not clear this state).
Hey, thanks for the detailed report with steps and lsappinfo, it really helps us narrow this down.
There are actually two separate things happening:
Cursor badge desync (when lsappinfo shows 1, but there are no unread items in the UI). This is a known bug. The archived chats case was fixed earlier, and we’re still tracking the remaining cases (subagents, hidden agents, clear-on-focus). I can’t share an ETA yet.
When lsappinfo shows NULL, but the Dock tile still shows 1. This is a macOS Dock redraw issue, not Cursor’s counter. Cursor already set the badge to 0 (so you see NULL), but macOS didn’t redraw the tile. This often happens when the app bundle gets replaced during an update. killall Dock is a reliable fix and it won’t lose any data.
A couple workarounds to reset the badge:
If lsappinfo is already NULL but the tile is stuck, run killall Dock to force a redraw (like you found).
If lsappinfo shows a real 1, try archiving the chat via Agents Window. It’s more reliable than Clear All Notifications.
Another option: Cursor Settings > General > System Notifications = Off (you can turn it back on after).
About Clear All Notifications, that action lives in the menu bar tray icon menu, not in Command Palette. If you type that text into the agent input, it just starts a new agent with that text, which explains the confusion you hit.
Let me know if the badge comes back even after archiving, and we can dig deeper.