Skip to content

Update dependency Azure.Messaging.ServiceBus to 7.21.0 - #1228

Open
dependencyupdates[bot] wants to merge 1 commit into
mainfrom
renovate/azure.messaging.servicebus-7.x
Open

dependencyupdates[bot] wants to merge 1 commit into
mainfrom
renovate/azure.messaging.servicebus-7.x

Conversation

@dependencyupdates

@dependencyupdates dependencyupdates Bot commented Jul 10, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
Azure.Messaging.ServiceBus (source) 7.20.1 → 7.21.0 age adoption passing confidence

Release Notes

Azure/azure-sdk-for-net (Azure.Messaging.ServiceBus)

v7.21.0

Compare Source

7.21.0 (2026-10-06)

Features Added
  • Added SqlFilterCount and CorrelationFilterCount properties to TopicRuntimeProperties, exposing the total number of SQL filters and correlation filters across all of a topic's subscriptions. These are populated by GetTopicRuntimePropertiesAsync and GetTopicsRuntimePropertiesAsync.
  • Added ServiceBusAdministrationClientOptions.ServiceVersion.V2024_05 and made it the default service version. The topic filter counts above are served by the 2024-05 service API version, so the administration client now sends api-version=2024-05 by default.
  • Added GetMessageSessionsAsync overloads on ServiceBusClient for queues and subscriptions. The no-filter overload returns the IDs of sessions that have active messages or session state, and the sessionStateUpdatedAfter overload returns session IDs whose session state was updated after the specified timestamp. Implements the com.microsoft:get-message-sessions AMQP management operation. (#​58761)
  • Added opt-in support for non-exclusive session locking on ServiceBusSessionReceiver, allowing a session to be cooperatively taken over by another receiver. Set ServiceBusSessionReceiverOptions.EnableNonExclusiveSession to accept a session non-exclusively, then read the token from ServiceBusSessionReceiver.SessionLockToken and pass it as ServiceBusSessionReceiverOptions.SessionLockToken = Guid.Parse(token) to take that session over. ServiceBusSessionReceiver.IsSessionExclusive reports the mode the session was established under. Dispositions for a non-exclusive session are routed over the management link so that settlement keeps working across a takeover, which lowers settlement throughput compared to an exclusive session. This applies to ServiceBusSessionReceiver only; ServiceBusSessionProcessor continues to lock sessions exclusively. Accepting a session with EnableNonExclusiveSession set throws NotSupportedException when the endpoint declines it, either by refusing the request outright or by accepting it without assigning a lock token, which is how a caller detects whether the feature is available for a namespace. An endpoint that declines in some other way surfaces the exception its own error maps to. (#​60060)
Bugs Fixed
  • Fixed retry classification for web socket failures with nested causes. On modern .NET, a transient network failure during a web socket connection attempt surfaces as a WebSocketException that wraps an HttpRequestException, which wraps the meaningful IOException or SocketException. The retry policy previously inspected only one level of nesting and treated these failures as terminal. The policy now unwraps nested wrapper exceptions to a bounded depth, so transient failures such as a connection reset use the configured retries. Terminal socket failures, such as host-not-found and host-unreachable, are not retried at any supported depth. A host-unreachable failure on an established connection is now terminal. Earlier versions retried it. (#​61868)

  • Fixed a bug where canceling ServiceBusReceiver.CloseAsync left the receiver unable to close its own links. The receiver was marked as closed, and its set of locked messages disposed, before the cancellation was observed, so every later call to CloseAsync returned immediately without doing any work and the links stayed open until the owning ServiceBusClient was disposed. The receiver is now left open and closable when a close does not complete, so the operation can be retried. (#​59309)

Other Changes
  • The default ServiceBusAdministrationClient service version is now 2024-05 (previously 2021-05). Existing operations are unaffected in behavior; the change is required to surface the new topic filter count properties.

v7.20.2

Compare Source

7.20.2 (2026-07-08)

Acknowledgments

Thank you to our developer community members who helped to make the Service Bus client library better with their contributions to this release:

Bugs Fixed
  • Fixed a bug where ServiceBusAdministrationClient operations (such as GetQueueAsync, GetTopicAsync, QueueExistsAsync, and TopicExistsAsync) threw a ServiceBusException wrapping an ArgumentException ("Value cannot be empty or contain only white-space characters") when an entity had a shared access authorization rule whose key values were masked (returned empty) by the service for callers lacking the listkeys/action permission. The deserialization path now accepts empty key values, and creating CreateQueueOptions/CreateTopicOptions from the returned properties no longer throws, matching the behavior of the other Azure Service Bus SDKs. (#​60469)

  • Fixed a bug in the ServiceBusProcessor where terminal errors (such as DNS resolution failures) caused a tight retry loop with no delay between attempts, potentially overwhelming logs and consuming excessive resources. (#​54572)

  • Fixed a race condition in AmqpSender where concurrent calls to CreateMessageBatchAsync during initial AMQP link creation could observe an inconsistent MaxBatchSize, causing a spurious ArgumentOutOfRangeException. (#​56301)

  • The sender now reads the com.microsoft:max-message-batch-size vendor property from the AMQP link to correctly limit batch size on Premium large-message entities, where max-message-size can be up to 100 MB but the batch limit is 1 MB. The 4,500 message count cap on batches has been removed as the service does not enforce a count limit. (#​44914)

Other Changes
  • Several areas of the AMQP transport integration have been cleaned up, modernized, and made more efficient. (A community contribution, courtesy of danielmarbach)

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Commands to ignore dependencies

You can trigger dependency actions by commenting on this PR:

  • @particularbot ignore this major version
  • @particularbot ignore this minor version
  • @particularbot ignore this dependency

@dependencyupdates dependencyupdates Bot added dependencies Pull requests that update a dependency file NuGet labels Jul 10, 2026
@dependencyupdates
dependencyupdates Bot force-pushed the renovate/azure.messaging.servicebus-7.x branch from 9849b16 to 63fc2f8 Compare September 25, 2026 03:29
@dependencyupdates dependencyupdates Bot changed the title Update dependency Azure.Messaging.ServiceBus to 7.20.2 Update dependency Azure.Messaging.ServiceBus to 7.21.0 Sep 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file NuGet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants