The Fix
Includes the llhttp LICENSE file in the wheel by updating the license-files field in setup.cfg.
Based on closed aio-libs/aiohttp issue #11225 · 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%.
@@ -0,0 +1 @@
@@ -0,0 +1 @@
+Started including the ``llhttp`` :file:`LICENSE` file in wheels by adding ``vendor/llhttp/LICENSE`` to ``license-files`` in :file:`setup.cfg` -- by :user:`threexc`.
diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt
index eae7c357602..935782fe357 100644
Name: multidict
Version: 6.4.4
Summary: multidict implementation
Home-page: https://github.com/aio-libs/multidict
Author: Andrew Svetlov
Author-email: [email protected]
License: Apache 2
Location: /home/tgamblin/workspace/baylibre/rise/aiohttp/venv/lib64/python3.13/site-packages
Requires:
Required-by: aiohttp, yarl
Re-run the minimal reproduction on your broken version, then apply the fix and re-run.
Option A — Apply the official fix\nIncludes the llhttp LICENSE file in the wheel by updating the license-files field in setup.cfg.\nWhen NOT to use: This fix should not be applied if the licensing structure changes in the future.\n\n
Why This Fix Works in Production
- Trigger: ```python-traceback
- Mechanism: Includes the llhttp LICENSE file in the wheel by updating the license-files field in setup.cfg.
- 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
- Shows up under Python 3.13.3 in real deployments (not just unit tests).
- Production symptom (often without a traceback): ```python-traceback
Proof / Evidence
- GitHub issue: #11225
- Fix PR: https://github.com/aio-libs/aiohttp/pull/11226
- Reproduced locally: No (not executed)
- Last verified: 2026-02-09
- Confidence: 0.70
- Did this fix it?: Yes (upstream fix exists)
- Own content ratio: 0.60
Discussion
High-signal excerpts from the issue thread (symptoms, repros, edge-cases).
“Most likely, yes. If you can test a fix and create a PR, that'd be very helpful.”
Failure Signature (Search String)
- ```python-traceback
Copy-friendly signature
Failure Signature
-----------------
```python-traceback
Error Message
Signature-only (no traceback captured)
Error Message
-------------
```python-traceback
Minimal Reproduction
Name: multidict
Version: 6.4.4
Summary: multidict implementation
Home-page: https://github.com/aio-libs/multidict
Author: Andrew Svetlov
Author-email: [email protected]
License: Apache 2
Location: /home/tgamblin/workspace/baylibre/rise/aiohttp/venv/lib64/python3.13/site-packages
Requires:
Required-by: aiohttp, yarl
Environment
- Python: 3.13.3
What Broke
Users receive incomplete licensing information when installing aiohttp wheels.
Fix Options (Details)
Option A — Apply the official fix
Includes the llhttp LICENSE file in the wheel by updating the license-files field in setup.cfg.
Fix reference: https://github.com/aio-libs/aiohttp/pull/11226
Last verified: 2026-02-09. Validate in your environment.
When NOT to Use This Fix
- This fix should not be applied if the licensing structure changes in the future.
Verify Fix
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.