The Fix
Merged HISTORY into CHANGES to resolve duplicate entries in the changelog.
Based on closed aio-libs/aiohttp issue #9544 · PR/commit linked
Production note: This usually shows up under retries/timeouts. Treat it as a side-effect risk until you can verify behavior with a canary + real traffic.
@@ -3609,3 +3609,2305 @@ Improved Documentation
- Drop removed functionality for passing ``StreamReader`` as data at client
side. (`#2793 <https://github.com/aio-libs/aiohttp/pull/2793>`_)
+
+
+
Option A — Apply the official fix\nMerged HISTORY into CHANGES to resolve duplicate entries in the changelog.\nWhen NOT to use: This fix should not be applied if the changelog structure is intended to remain separate.\n\n
Why This Fix Works in Production
- Trigger: Changes for 3.1.0 through to 3.4.4 appears twice in the changelog
- Mechanism: Merged HISTORY into CHANGES to resolve duplicate entries in the changelog.
- If left unfixed, retries/timeouts can trigger duplicate external side-effects (double charges, duplicate emails, repeated writes).
Why This Breaks in Prod
- Production symptom (often without a traceback): Changes for 3.1.0 through to 3.4.4 appears twice in the changelog
Proof / Evidence
- GitHub issue: #9544
- Fix PR: https://github.com/aio-libs/aiohttp/pull/9581
- Reproduced locally: No (not executed)
- Last verified: 2026-02-09
- Confidence: 0.80
- Did this fix it?: Yes (upstream fix exists)
- Own content ratio: 0.71
Discussion
High-signal excerpts from the issue thread (symptoms, repros, edge-cases).
“I think history is from pre-towncrier times. I don't see a reason why they shouldn't be merged. FWIW, I never touched that one so if…”
“@webknjaz? I'm not sure how this is supposed to work, but it looks like the page is produced from concatenating CHANGES.rst to HISTORY.rst, (the latter…”
Failure Signature (Search String)
- Changes for 3.1.0 through to 3.4.4 appears twice in the changelog
- https://docs.aiohttp.org/en/stable/changes.html#id673
Copy-friendly signature
Failure Signature
-----------------
Changes for 3.1.0 through to 3.4.4 appears twice in the changelog
https://docs.aiohttp.org/en/stable/changes.html#id673
Error Message
Signature-only (no traceback captured)
Error Message
-------------
Changes for 3.1.0 through to 3.4.4 appears twice in the changelog
https://docs.aiohttp.org/en/stable/changes.html#id673
What Broke
Users encounter confusion and misinformation from seeing duplicate changelog entries.
Fix Options (Details)
Option A — Apply the official fix
Merged HISTORY into CHANGES to resolve duplicate entries in the changelog.
Fix reference: https://github.com/aio-libs/aiohttp/pull/9581
Last verified: 2026-02-09. Validate in your environment.
When NOT to Use This Fix
- This fix should not be applied if the changelog structure is intended to remain separate.
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.