Skip to content

filesystem: move_file fails across filesystems (EXDEV) #5188

Closed

Description

@cliffhall

Problem

moveFile in src/filesystem/lib.ts checks that the destination does not exist and then calls fs.rename. rename cannot cross a device boundary, so a move between two allowed directories on different mounts (a container bind mount, a network share, a second disk) fails with EXDEV.

Expected

On EXDEV, fall back to copying and then removing the source. The fallback keeps the no-overwrite contract, leaves no partial destination behind if it fails, and does not follow symlinks out of the allowed directories while copying.

Prior work

The PR(s) above targeted the pre-refactor code and are closed as part of the backlog triage in #4875; this issue is where the work continues, with the PR(s) as a prototype. Thank you to their authors.

Activity

  1. added
    bugSomething isn't working
    server-filesystemReference implementation for the Filesystem MCP server - src/filesystem
    on Oct 20, 2026
  2. cliffhall commented on Oct 20, 2026

    @cliffhall
    MemberAuthor

    Triage: Priority Medium (total 6)

    • Severity 3: move_file fails across mounts; workaround is copy and delete by hand
    • Urgency 2: wanted eventually
    • Bonuses:
    • +1 bug label

    Filed from the PR backlog triage (#4877). Board: Servers V2 (#43), Status Incoming, awaiting maintainer review (no milestone yet).

  3. added this to the v2.2.0 milestone on Oct 25, 2026
  4. self-assigned this
    on Oct 27, 2026
  5. cliffhall commented on Oct 27, 2026

    @cliffhall
    MemberAuthor

    Fixed by #5322, merged into v2/main.

  6. added a commit that references this issue on Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingserver-filesystemReference implementation for the Filesystem MCP server - src/filesystemv2

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions