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
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions