macOS Dock badge stuck at 1 after update; OS badge NULL until killall Dock

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

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

  1. Update Cursor (or launch after an update).
  2. Observe Dock badge 1 on the Cursor icon.
  3. Confirm no unread agents in the UI.
  4. Quit/reopen Cursor — badge remains.
  5. Run lsappinfo info -only badge "Cursor" — often reports NULL while badge still visible.
  6. 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).

Operating System

MacOS

Version Information

Cursor Version: 3.12.10 (commit 24a12dbd9cabf48956ce5bb3dbd234e41385b3d0)
OS: macOS 26.5.2 (Darwin 25.5.0, arm64)
Layout: unifiedAgent / Agents Window (Glass also present)

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey, thanks for the detailed report with steps and lsappinfo, it really helps us narrow this down.

There are actually two separate things happening:

  1. 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.

  2. 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.

I’m also seeing this issue. Tried all the known potential fixes.

Version: 3.15.13
VS Code Extension API: 1.128.0
Commit: db56c26fed834fb7fd3e85a82d5acd0b393b9dc0
Date: 2026-08-08T01:41:56.624Z
Layout: Agent Window
Build Type: Stable
Release Track: Nightly
Electron: 40.10.3
Chromium: 144.0.7559.236
Node.js: 24.15.0
V8: 14.4.258.32-electron.0
xterm.js: 6.1.0-beta.291
OS: Darwin arm64 25.5.0