Plugin install fails with EXDEV on cross-filesystem /tmp

Resolved 💬 3 comments Opened Feb 6, 2026 by aliparoya Closed Feb 6, 2026

Bug Description

Plugin installation fails with EXDEV: cross-device link not permitted when /tmp is on a different filesystem than ~/.claude/plugins/cache/.

Steps to Reproduce

  1. Have /tmp on tmpfs (common on modern Linux distros like Fedora)
  2. Have ~/.claude on a different filesystem (e.g., /home on ext4/btrfs)
  3. Run /plugin install <any-plugin>

Error Message

Error: Failed to install: EXDEV: cross-device link not permitted, rename '/home/user/.claude/plugins/cache/plugin-name' -> '/tmp/claude-plugin-temp-1770407501692'

Expected Behavior

The installer should detect when rename() fails with EXDEV and fall back to copy + delete, which works across filesystems.

Workaround

Setting TMPDIR to a directory on the same filesystem before installing:

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

Environment

  • OS: Fedora 43 (Linux 6.18.5)
  • Claude Code version: Latest
  • Filesystem setup: /tmp on tmpfs, /home on ext4

View original on GitHub ↗

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