close
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

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions