Skip to content

[flutter_tools] PathExistsException when creating plugin symlinks on Windows #190235

Closed

Description

@bkonyi

On Windows, Link.existsSync() in Dart checks if the symlink target exists, returning false for broken symlinks.
If a broken symlink exists, the tool attempts to create it again, which throws PathExistsException (OS Error 183) because the link entry itself already exists on disk.
We need to robustly check if the link entry exists (without following it) using typeSync(followLinks: false) and delete it before recreating.

Note: This issue was identified as a top-10 crasher in the Flutter stable release version 3.44.8.

Activity

  1. self-assigned this
    on Jul 29, 2026
  2. added
    P2Important issues not at the top of the work list
    team-toolOwned by Flutter Tool team
    triaged-toolTriaged by Flutter Tool team
    on Jul 29, 2026
  3. added a commit that references this issue on Aug 4, 2026
  4. bkonyi commented on Sep 4, 2026

    @bkonyi
    ContributorAuthor

    Fixed in #191496 (commit 00bd762).

  5. github-actions commented on Sep 18, 2026

    @github-actions

    This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

  6. locked as resolved and limited conversation to collaborators on Sep 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P2Important issues not at the top of the work listteam-toolOwned by Flutter Tool teamtriaged-toolTriaged by Flutter Tool team

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions