EACCES on /tmp/claude-settings-<hash>.json when another user created it first

Resolved 💬 2 comments Opened Apr 15, 2026 by shinagawa-web Closed May 24, 2026

Summary

On multi-user macOS systems, Claude Code fails to start with:

Error processing settings: EACCES: permission denied, open '/tmp/claude-settings-<hash>.json'

when another user on the same machine previously ran claude in the same working directory. The filename hash appears to be deterministic (derived from cwd or similar), so it collides across users. Because /tmp has the sticky bit, only the original owner (or root) can remove the file, blocking every other user until it is manually deleted.

Repro

  1. User A runs claude in /path/to/project → creates /tmp/claude-settings-<hash>.json owned by A (mode 644).
  2. User B runs claude in the same directory → crashes with EACCES.

Environment

  • Platform: darwin (macOS)
  • OS: Darwin 24.2.0
  • Shell: zsh

Expected

Per-user settings path (e.g. under $TMPDIR, which on macOS is already per-user at /var/folders/.../T/), or include uid in the filename, so multiple users on the same host don't collide.

Workaround

sudo rm /tmp/claude-settings-<hash>.json. Setting TMPDIR has no effect because the path is hardcoded to /tmp.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗