[Bug] macOS TCC permission ghost entries accumulate on every update — affects Desktop App AND Claude Code, root issue never fixed
Summary
Every Claude Code / Desktop App update adds another ghost entry to Privacy & Security → Automation on macOS, with no mechanism to clean them up. The root cause has never been fixed. This is a re-open of #30608 (closed as inactive) and #46859 (closed as duplicate of #30608).
Root cause
macOS TCC (Transparency, Consent, and Control) keys Automation permissions by the full binary path, which includes the version number in Claude's case. Each update installs a new binary at a new path, so macOS registers it as a new app identity requiring a fresh permission grant — and leaves the old entry as an orphan. After N updates, there are N ghost entries.
Steps to observe
- Open System Settings → Privacy & Security → Automation
- Find Claude — expand it
- Count the entries. Each represents a prior Claude version; only the newest is active.
- Update Claude Code. Observe a new permission prompt appear, and a new entry added.
Impact
- Every update prompts the user to re-grant Automation permission
- The permission list accumulates entries indefinitely with no in-product cleanup path
- Successfully reset AppleEvents approval status for com.anthropic.claudefordesktop clears all entries (workaround), but the user must then re-grant from scratch and the accumulation restarts immediately on next update
Fix direction
The standard solution is code-signing with a stable bundle identifier that doesn't embed the version in the binary path, so TCC sees the same identity across updates. This is how most auto-updating macOS apps handle it. Alternatively, the installer/updater could run followed by a re-grant flow on each update to keep the list clean.
Environment
- macOS Sequoia 15.x (most aggressive re-prompting behavior observed here, but issue exists on earlier versions)
- Claude Desktop App + Claude Code CLI (both affected — both install to version-stamped paths)
- Confirmed: issue reproduces on every update regardless of version
Why this isn't a duplicate of #30608 or #46859
#30608 was closed as inactive — not fixed. #46859 was closed as a duplicate of #30608 by the auto-triage bot — which then also closed without a fix. Both closures were process outcomes, not engineering outcomes. The root cause is unchanged and the bug actively affects every user who updates regularly.
This report adds:
- Explicit root-cause diagnosis (binary-path-keyed TCC identity, not a permission-caching issue)
- Confirmation that the Desktop App and CLI are both affected
- The
tccutil resetworkaround for users who want to clean up immediately - Version: confirmed present as of Claude Code v2.1.170 / macOS 15.x
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗