Skip to content

Plugin fails to install on cross-filesystem setups (EXDEV error) #478

@rjmurillo

Description

@rjmurillo

Your plugin fails to install on Ubuntu (and probably Fedora, Arch, etc).

The install command errors with:

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

Why this happens

You're using "source": "./.claude-plugin" in your marketplace.json. This triggers a bug in Claude Code's installer when /tmp and /home are on different filesystems (which is the default Ubuntu setup since 21.04).

I tested other plugins on my system and they install fine:

  • perplexity uses "source": "./"
  • claude-mem has no source field
  • worktrunk uses "source": "./.claude-plugin" and fails

So it's specific to how your plugin is configured.

There's an upstream bug for this: anthropics/claude-code#14799

Workaround for users right now

mkdir -p ~/.cache/tmp
TMPDIR=$HOME/.cache/tmp claude plugin install worktrunk@worktrunk

This works but users shouldn't have to do this.

Fix options

Quick fix: Change "source": "./.claude-plugin" to "source": "./" in your marketplace.json and update the paths to be relative to the repo root instead of the .claude-plugin subdirectory.

Bigger fix: Move everything out of .claude-plugin/ to the repo root like most other plugins do.

Either way fixes the install issue. The first option is less invasive. And there's this issue with documentation for others until upstream makes their fix.

Once Claude Code fixes their installer bug (anthropics/claude-code#14799), you could keep using the subdirectory structure if you want. But that might take a while and users can't install the plugin in the meantime.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions