Skip to content

setup-python fails for free-threaded Python (3.13t / 3.14t) on windows-11-arm64 — broken python.exe symlink #1307

@andife

Description

@andife

Environment

  • actions/setup-python v6.2.0
  • Runner: windows-11-arm64 (20260419.19.1)
  • Affected: 3.13t, 3.14t — non-free-threaded arm64 builds (3.11, 3.12) work fine

What happens

The zip is downloaded and extracted correctly, but python.exe and python3.exe in the tool cache are 0-byte reparse points (broken symlinks). setup.ps1:131 then fails to remove python.exe, and the resulting interpreter can't find its stdlib:

[error] Remove-Item : Cannot find path '...\arm64-freethreaded\python.exe' because it does not exist.
        At setup.ps1:131 char:5  +  Remove-Item -Path "$PythonArchPath\python.exe" -Force
[error] Fatal Python error: Failed to import encodings module
[error] ModuleNotFoundError: No module named 'encodings'
[error] Error happened during pip installation / upgrade

Directory listing after copy:

-a---l   0   python.exe    ← 0-byte reparse point
-a---l   0   python3.exe

Root cause hypothesis

The win32-arm64-freethreaded zips contain python.exe as a symlink to python3.1Xt.exe. When the zip contents are copied to the tool cache, the symlink target doesn't exist at the expected relative path, leaving a dangling reparse point that powershell.exe can't delete.

Reference

Failing CI run: https://github.com/onnx/onnx/actions/runs/24930991133 (jobs 73008617679 and 73008617685)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions