Jump to solution
Verify

The Fix

Adds the Windows 11 ARM64 runner image to the CI/CD workflow, enabling the build of win_arm64 wheels for aiohttp.

Based on closed aio-libs/aiohttp issue #11937 · PR/commit linked

Production note: Most teams hit this during upgrades or environment changes. Roll out with a canary and smoke critical endpoints (health, OpenAPI/docs) before 100%.

Jump to Verify Open PR/Commit
@@ -372,7 +372,7 @@ jobs: strategy: matrix: - os: ["ubuntu-latest", "windows-latest", "macos-latest", "ubuntu-24.04-arm"] + os: ["ubuntu-latest", "windows-latest", "windows-11-arm", "macos-latest", "ubuntu-24.04-arm"] qemu: ['']
repro.py
$ python -m pip show aiohttp Name: aiohttp Version: 3.13.2 Summary: Async http client/server framework (asyncio) Home-page: https://github.com/aio-libs/aiohttp Author: Author-email: License: Apache-2.0 AND MIT Location: C:\Users\user\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages Requires: aiohappyeyeballs, aiosignal, attrs, frozenlist, multidict, propcache, yarl Required-by: discord.py
verify
Re-run the minimal reproduction on your broken version, then apply the fix and re-run.
fix.md
Option A — Apply the official fix\nAdds the Windows 11 ARM64 runner image to the CI/CD workflow, enabling the build of win_arm64 wheels for aiohttp.\nWhen NOT to use: This fix is not applicable if the build environment does not support Windows ARM64.\n\n

Why This Fix Works in Production

  • Trigger: ERROR: Cannot install -r ./requirements.txt (line 3) because these package versions have conflicting dependencies.
  • Mechanism: The absence of win_arm64 wheels for aiohttp prevents installation on Windows ARM64 platforms
Production impact:
  • If left unfixed, the same config can fail only in production (env differences), causing startup failures or partial feature outages.

Why This Breaks in Prod

  • The absence of win_arm64 wheels for aiohttp prevents installation on Windows ARM64 platforms
  • Surfaces as: ERROR: Cannot install -r ./requirements.txt (line 3) because these package versions have conflicting dependencies.

Proof / Evidence

Discussion

High-signal excerpts from the issue thread (symptoms, repros, edge-cases).

“An option for building the arm64 windows wheels is to add in the windows-11-arm64 runner images in github actions if they are used to publish…”
@AraHaan · 2026-01-08 · source
“@asvetlov mind looking into this and seeing if it is possible to set up building win_arm64 wheels for aiohttp just like what is happening for…”
@AraHaan · 2026-01-08 · source
“I think this is the build steps, so maybe they need to be aligned: https://github.com/aio-libs/multidict/blob/e8bf2ad734ff3dd4a1c79ca16220c1afb3dc8b5a/.github/workflows/ci-cd.yml#L500-L529 https://github.com/aio-libs/aiohttp/blob/d5c7e0fc99822226c7a85dffffe2f4”
@Dreamsorcerer · 2026-01-08 · source
“That would be great as well, I thought that just adding the new windows-11-arm runner might work as well but syncing this setup to here…”
@AraHaan · 2026-01-08 · source

Failure Signature (Search String)

  • ERROR: Cannot install -r ./requirements.txt (line 3) because these package versions have conflicting dependencies.

Error Message

Stack trace
error.txt
Error Message ------------- ERROR: Cannot install -r ./requirements.txt (line 3) because these package versions have conflicting dependencies.
Stack trace
error.txt
Error Message ------------- ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts
Stack trace
error.txt
Error Message ------------- ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.

Minimal Reproduction

repro.py
$ python -m pip show aiohttp Name: aiohttp Version: 3.13.2 Summary: Async http client/server framework (asyncio) Home-page: https://github.com/aio-libs/aiohttp Author: Author-email: License: Apache-2.0 AND MIT Location: C:\Users\user\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages Requires: aiohappyeyeballs, aiosignal, attrs, frozenlist, multidict, propcache, yarl Required-by: discord.py

What Broke

Users cannot install aiohttp on win_arm64, leading to installation failures.

Why It Broke

The absence of win_arm64 wheels for aiohttp prevents installation on Windows ARM64 platforms

Fix Options (Details)

Option A — Apply the official fix

Adds the Windows 11 ARM64 runner image to the CI/CD workflow, enabling the build of win_arm64 wheels for aiohttp.

When NOT to use: This fix is not applicable if the build environment does not support Windows ARM64.

Fix reference: https://github.com/aio-libs/aiohttp/pull/11938

Last verified: 2026-02-09. Validate in your environment.

Get updates

We publish verified fixes weekly. No spam.

Subscribe

When NOT to Use This Fix

  • This fix is not applicable if the build environment does not support Windows ARM64.

Verify Fix

verify
Re-run the minimal reproduction on your broken version, then apply the fix and re-run.

Did This Fix Work in Your Case?

Quick signal helps us prioritize which fixes to verify and improve.

Prevention

  • Capture the exact failing error string in logs and tests so you can reproduce via a minimal script.
  • Pin production dependencies and upgrade only with a reproducible test that hits the failing path.

Related Issues

No related fixes found.

Sources

We don’t republish the full GitHub discussion text. Use the links above for context.