Skip to content

Setting up both python 3.14 and 3.14t on windows arm doesn't work #1241

Description

@patrick91

I've made a reproduction here: https://github.com/patrick91/python-314t-windows-arm64-repro/actions/runs/19098499344/job/54564398540

Basically when setting up both Python 3.14 and 3.14t on windows arm I get this error:

  Create Python 3.14.0 folder in C:\hostedtoolcache\windows\Python
  Copy Python binaries to C:\hostedtoolcache\windows\Python\3.14.0\arm64-freethreaded
  Install Python 3.14.0 in C:\hostedtoolcache\windows\Python...
  Error: Remove-Item : Cannot find path 'C:\hostedtoolcache\windows\Python\3.14.0\arm64-freethreaded\python.exe' because it
  Error: does not exist.
  At C:\a\_temp\277a5d9b-f2ff-4114-918b-228fa38fb5be\setup.ps1:131 char:5
  +     Remove-Item -Path "$PythonArchPath\python.exe" -Force
  +     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      + CategoryInfo          : ObjectNotFound: (C:\hostedtoolca...aded\python.exe:String) [Remove-Item], ItemNotFoundEx 
     ception
      + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand
  Error: New-Item : Cannot find path 'C:\hostedtoolcache\windows\Python\3.14.0\arm64-freethreaded\python3.14t.exe' because it
  Error: does not exist.
  At C:\a\_temp\277a5d9b-f2ff-4114-918b-228fa38fb5be\setup.ps1:132 char:5
  +     New-Item -Path "$PythonArchPath\python.exe" -ItemType SymbolicLin ...
  +     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      + CategoryInfo          : ObjectNotFound: (C:\hostedtoolca...python3.14t.exe:String) [New-Item], ItemNotFoundExcep
  Error: tion
  Error: + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.NewItemCommand
  Create python3 symlink
  Error: New-Item : Cannot find path 'C:\hostedtoolcache\windows\Python\3.14.0\arm64-freethreaded\python.exe' because it does
  Error: not exist.
  At C:\a\_temp\277a5d9b-f2ff-4114-918b-228fa38fb5be\setup.ps1:136 char:1
  + New-Item -Path "$PythonArchPath\python3.exe" -ItemType SymbolicLink - ...
  + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      + CategoryInfo          : ObjectNotFound: (C:\hostedtoolca...aded\python.exe:String) [New-Item], ItemNotFoundExcep
  Error: tion
      + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.NewItemCommand
  Install and upgrade Pip
  Error: 'C:\hostedtoolcache\windows\Python\3.14.0\arm64-freethreaded\python.exe' is not recognized as an internal or external command,
  operable program or batch file.
  Error: Error happened during pip installation / upgrade
  At C:\a\_temp\277a5d9b-f2ff-4114-918b-228fa38fb5be\setup.ps1:143 char:5
  +     Throw "Error happened during pip installation / upgrade"
  Error: +     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      + CategoryInfo          : OperationStopped: (Error happened ...ation / upgrade:String) [], RuntimeException
      + FullyQualifiedErrorId : Error happened during pip installation / upgrade
  Error: The process 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' failed with exit code 1

my workaround is to create two jobs for this so it's not a big deal, but just wanted to report it 😊

Activity

  1. v-gowridurgad commented on Nov 5, 2025

    @v-gowridurgad
    Contributor

    Hello @patrick91,
    Thank you for reporting this issue. We will investigate it and get back to you as soon as we have some feedback.

  2. patrick91 commented on Nov 5, 2025

    @patrick91
    ContributorAuthor

    @gowridurgad thanks!

    I think there's a similar issue on windows in general, for example here it doesn't fail, but it removes or overrides 3.14: https://github.com/patrick91/python-314t-windows-arm64-repro/actions/runs/19113989192/job/54618080202#step:4:44

  3. v-priya-kinthali commented on Dec 17, 2025

    @v-priya-kinthali
    Contributor

    Hello @patrick91👋,
    Thank you for your detailed reports. Based on our investigation, this issue appears to be specific to the Windows arm64 runner and is likely related to file locking or underlying runner limitations, rather than a problem with the setup scripts or the Python binaries themselves.
    As you mentioned, the most reliable workaround is currently to install each Python variant in a separate workflow job to ensure that each installation operates in an isolated environment and avoids file conflicts.

    Regarding your additional observation about standard Windows runners, where it may not fail but instead overrides the 3.14 installation, this is part of a known limitation. This behaviour is already being tracked in #1079, which covers improvements to ensure the presence of versioned executables and symlinks for proper side-by-side support on Windows. We plan to address this in future updates based on community demand.

    As a suitable workaround has been identified and the underlying limitation is being monitored in the linked issue, we will proceed with closing this issue for now. Please feel free to reopen this issue or open a new one if you encounter any further problems. Thank you again for your patience and understanding.

  4. v-priya-kinthali commented on May 5, 2026

    @v-priya-kinthali
    Contributor

    Hello @patrick91 👋, Thank you for your patience!
    Based on our further investigation, we found this was due to an ARM64-specific registry cleanup edge case, where stale/cached registrations could conflict and block new Python installations on windows-11-arm runners.
    We’ve addressed this in actions/python-versions#387, and updated artifacts have now been released:

    This should now be resolved. Please re-run your workflows and let us know if you still run into any issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

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