[ServiceBus] Document aiohttp>=3.14.0 recommendation for AmqpOverWebsocket (#44028) - #48037
Merged
pranz1996 merged 3 commits intoJul 15, 2026
Merged
Conversation
…ocket (Azure#44028) Resolves customer issue Azure#44028. Root cause is an upstream aiohttp bug (aio-libs/aiohttp#12030) fixed in aiohttp 3.14.0, not an azure-servicebus defect. Adds a CHANGELOG Other Changes note recommending aiohttp>=3.14.0 for the async AmqpOverWebsocket transport.
Contributor
There was a problem hiding this comment.
Pull request overview
Documents the aiohttp>=3.14.0 recommendation for async Service Bus WebSocket users affected by upstream heartbeat failures.
Changes:
- Adds the recommendation and links the upstream fix and customer issue.
- Describes the resulting socket error.
SwayGom
approved these changes
Jul 15, 2026
SwayGom
left a comment
Member
There was a problem hiding this comment.
Approving. This is a well-scoped, documentation-only CHANGELOG update with no code, API, or behavior impact.
The aiohttp>=3.14.0 recommendation is correctly scoped to Python 3.10+, and the explicit Python 3.9 caveat accurately explains that users must upgrade Python before they can install a release containing the fix. That also resolves the earlier reviewer concern. The entry is placed consistently under the unreleased Other Changes section, and all checks are green. LGTM.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Documents that
azure-servicebususers on the asyncAmqpOverWebsockettransport should useaiohttp>=3.14.0. This resolves customer issue #44028 ("Service Bus WebSocket connection breaks after 15 seconds"), which is an upstream aiohttp bug, not an azure-servicebus defect.Root cause
On
aiohttp < 3.14.0, the WebSocket heartbeat timer was only reset insidereceive()after a full message was read. During long message processing (no socket read for ~15s), aiohttp sends its PING, the PONG is not serviced within the ~5s window, and aiohttp closes the transport at ~15s -- surfacing asErrorCondition.SocketError: "Cannot write to closing transport".Fixed upstream by aio-libs/aiohttp#12030, which moves the heartbeat reset to the protocol-level
data_receivedcallback. Shipped in aiohttp 3.14.0 (2026-06-01) and was not backported to 3.13.x.Validation (definitive bisect)
Reporter's exact pattern (default receiver,
prefetch_count=0,AutoLockRenewer, sleep 14-17s/msg) against a live Standard namespace, unchanged SDK, varying only aiohttp:An SDK-side keep-alive interval cap was prototyped and empirically invalidated (still broke on aiohttp 3.13.5), so no code change is made -- this is docs-only.
Changes
aiohttp>=3.14.0and describing the symptom + upstream fix.Why docs-only
aiohttpis an optional, lazily-imported dependency (no version floor declared). The repo convention is to document aiohttp version behavior in the CHANGELOG rather than add runtime version nagging (see azure-core and azure-eventhub changelog precedents).Testing
No code changed; no test impact. CHANGELOG-only.
Related Work