Plugin install fails with EXDEV when /tmp is on a different filesystem

Resolved 💬 2 comments Opened Feb 14, 2026 by davidbeesley Closed Feb 14, 2026

Description

claude plugin install fails with EXDEV: cross-device link not permitted when /tmp is on a different filesystem than ~/.claude/.

Steps to Reproduce

  1. Have a system where /home and /tmp are on different partitions/filesystems
  2. Run claude plugin install <any-plugin>

Error

Installing plugin "myplugin"...
✘ Failed to install plugin "myplugin": EXDEV: cross-device link not permitted, rename '/home/user/.claude/plugins/cache/myplugin' -> '/tmp/claude-plugin-temp-1771046448838'

Workaround

Setting TMPDIR to a directory on the same filesystem works:

mkdir -p ~/.claude/tmp && TMPDIR=~/.claude/tmp claude plugin install <plugin>

Expected Behavior

The installer should fall back to copy + unlink when fs.rename() fails with EXDEV, since rename() cannot move files across filesystem boundaries.

Environment

  • Linux (Debian 13, kernel 6.12)
  • Separate partitions for /home and /tmp

View original on GitHub ↗

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