claude-code - 💡(How to fix) Fix [Bug] macOS accessibility permissions lost on every update due to version-specific binary path [1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#46859Fetched 2026-04-12 13:31:11
View on GitHub
Comments
1
Participants
2
Timeline
10
Reactions
0
Author
Timeline (top)
labeled ×4mentioned ×2subscribed ×2commented ×1

Error Message

[{"error":"Error: 400 {"type":"error","error":{"type":"invalid_request_error","message":"Output blocked by content filtering policy"},"request_id":"req_011CZwHyHAGs3JxBGJEgkNGQ"}\n at generate (/$bunfs/root/src/entrypoints/…

Root Cause

Root cause

Code Example

[{"error":"Error: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"Output blocked by content filtering policy\"},\"request_id\":\"req_011CZwHyHAGs3JxBGJEgkNGQ\"}\n    at generate (/$bunfs/root/src/entrypoints/
RAW_BUFFERClick to expand / collapse

Bug Description macOS accessibility/automation permissions break on every Claude Code update — binary path includes version

Problem

macOS stores accessibility and automation permissions keyed on the exact filesystem path of the granting binary. Claude Code's installed binary path includes the version number. When Claude Code auto-updates (which happens often — sometimes multiple times per week), the binary path changes, which invalidates all previously granted permissions from macOS's perspective.

The result: every update silently breaks Computer Use MCP and any other feature that requires macOS accessibility or automation permissions. The user discovers this only when the feature fails, usually mid-task, often with a cryptic permission-denied error.

Steps to reproduce

  1. On macOS, grant Claude Code accessibility or automation permissions: - Open System Settings → Privacy & Security → Accessibility - Add or enable Claude Code - Verify it works (e.g., Computer Use MCP takes a screenshot successfully)
  2. Wait for Claude Code to auto-update (or manually update to a new version, e.g., 2.1.99 → 2.1.100)
  3. Attempt to use a feature that requires the granted permission
  4. Observe: permission failure. The old entry in System Settings is now a "ghost" pointing at a path that no longer exists, and the new binary has no permission.

Observed behavior

On my Mac, I have accumulated ghost entries in Privacy & Security > Accessibility for multiple past Claude Code versions, each pointing at a stale path. Every update adds another ghost. I have to:

  1. Go to System Settings > Privacy & Security > Accessibility
  2. Remove the ghost entry for the old version
  3. Click "+" and navigate to the new Claude Code binary
  4. Re-toggle the permission

This happens every single update. Multiple times per week. My ghost list is currently around a dozen entries.

Root cause

macOS permissions are stored with the inode and path of the binary at the moment permission was granted. Updating the binary to a new path means macOS treats it as a different application that has never been granted permission. Claude Code appears to install each version to a version-specific path rather than using a stable symlink, wrapper script, or update-in-place pattern.

Expected behavior

Option 1 (preferred): Stable binary path

Claude Code should install to a version-independent path (e.g., /usr/local/bin/claude or /Applications/Claude Code.app) with the versioned binaries hidden behind it as implementation detail. Updates swap the target of the stable path; the path itself never changes. macOS permissions granted to the stable path survive all future updates.

Option 2: In-place binary update

Update the binary in place without changing its path. macOS re-reads the new inode and preserves permissions for the same path.

Option 3: Documented migration on update

If Options 1 and 2 are infeasible, at minimum detect the update-breaks-permissions condition and show a clear one-time banner: "Claude Code was updated. If you use Computer Use MCP or other accessibility-dependent features, you will need to re-grant macOS permissions in System Settings > Privacy & Security."

Why this matters

  • Computer Use MCP is a flagship Claude Code feature. Breaking it silently on every update undermines trust in the tool.
  • Users who update frequently suffer most. Power users who adopt new features fastest are the most penalized. This is the opposite of what a good update ergonomics model produces.
  • The ghost-entry accumulation is user-hostile. Users see a list of "Claude Code" entries in Privacy & Security growing over time with no clear way to clean them up.
  • Not fixable in user space. Framework developers cannot work around this. Only Anthropic can fix the install layout.

Reporter

Related

  • Computer Use MCP is the primary affected feature
  • Filed as part of the 2026-04-11/12 feedback batch alongside:
    • /feedback comms gap (#46531)
    • Content filter opacity (#46546)
    • Session identity (#46853)
    • Agent permission UX (#46855)
    • --agent env var (#46858)

Environment Info

  • Platform: darwin
  • Terminal: ghostty
  • Version: 2.1.101
  • Feedback ID: 48a647ec-73f5-4954-a88b-6b9fd7e8a185

Errors

[{"error":"Error: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"Output blocked by content filtering policy\"},\"request_id\":\"req_011CZwHyHAGs3JxBGJEgkNGQ\"}\n    at generate (/$bunfs/root/src/entrypoints/…

Note: Content was truncated.

extent analysis

TL;DR

To fix the issue of macOS accessibility and automation permissions breaking on every Claude Code update, consider implementing a stable binary path or in-place binary update to prevent the binary path from changing.

Guidance

  • Implement a stable binary path by installing Claude Code to a version-independent path, such as /usr/local/bin/claude or /Applications/Claude Code.app, and hide versioned binaries behind it.
  • Alternatively, update the binary in place without changing its path to preserve macOS permissions.
  • If the above options are infeasible, detect the update-breaks-permissions condition and display a clear one-time banner to inform users to re-grant macOS permissions.
  • Consider cleaning up accumulated "ghost" entries in System Settings > Privacy & Security > Accessibility to improve user experience.

Example

No code snippet is provided as it is not explicitly supported by the issue.

Notes

The issue is specific to macOS and is caused by the changing binary path of Claude Code on updates. The proposed solutions aim to address this issue by providing a stable binary path or updating the binary in place.

Recommendation

Apply a workaround by implementing a stable binary path, as it is the preferred solution to prevent the issue of breaking macOS accessibility and automation permissions on every update. This approach ensures that the binary path remains the same, and macOS permissions are preserved across updates.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING