74 curated breaking changes across major versions of Azure.Messaging.ServiceBus. Use this as a migration checklist before bumping dependencies.
Block IDs generated during partitioned uploads are now randomly generated instead of based on sequential integers. This ensures uniqueness across concurrent uploads to the same blob but means block IDs are no longer predictable or ordered.
Block IDs generated during partitioned uploads are now randomly generated instead of based on sequential integers. This ensures uniqueness across concurrent uploads to the same blob but means block IDs are no longer predictable or ordered.
Changed `ConfidentialLedgerClientOptions.EnableArchivedCollectionFallback` to default to `false`. Callers that require `GetCurrentLedgerEntry` and `GetCurrentLedgerEntryAsync` to search ledger history after a collection-specific 404 must now explicitly opt in by setting the option to `true`.
Renamed and moved `Azure.Security.ConfidentialLedger.Models.SecurityConfidentialLedgerModelFactory` to `Azure.Security.ConfidentialLedger.ConfidentialLedgerModelFactory`.
Renamed and moved `Azure.Security.ConfidentialLedger.Models.SecurityConfidentialLedgerModelFactory` to `Azure.Security.ConfidentialLedger.ConfidentialLedgerModelFactory`.
Removed `McpServerToolInclusionMode` and the `McpServerTool.InclusionMode` property; MCP tool behavior is now configured through `ResultsProcessing` and `OutputParsing`.
The model activity records (`KnowledgeBaseModelQueryPlanningActivityRecord`, `KnowledgeBaseModelAnswerSynthesisActivityRecord`, and `KnowledgeBaseModelWebSummarizationActivityRecord`) now expose model information through the `Model` property (`KnowledgeBaseActivityRecordModel`) instead of the `ModelName` string.
Removed `SearchClientOptions.ServiceVersion.V2026_05_01_Preview`; use `V2026_08_01_Preview` instead.
The resource listing methods (`GetIndexes`, `GetAliases`, `GetKnowledgeBases`, `GetKnowledgeSources`, `GetSynonymMaps`, `GetIndexers`, `GetDataSourceConnections`, `GetSkillsets`, and `GetIndexStatsSummary`) replaced the `top`, `skip`, and `count` parameters with `search`, `pageSize`, and `searchType`.
`WorkIQKnowledgeSource` now requires a `WorkIQKnowledgeSourceParameters` argument (Entra application authentication) in its constructor.
The namespace update (PATCH) operation is now synchronous in API version `2026-01-01`. The long-running `Update(WaitUntil, ServiceBusNamespacePatch, CancellationToken)` and `UpdateAsync(WaitUntil, ServiceBusNamespacePatch, CancellationToken)` overloads on `ServiceBusNamespaceResource` have been removed; use `Update(ServiceBusNamespacePatch, CancellationToken)` / `UpdateAsync(ServiceBusNamespacePatch, CancellationToken)` instead.
Removed the `ClusterArmId` property from `ServiceBusNamespaceReplicaLocation`. This property had no effect for Service Bus namespaces.
Removed the `ClusterArmId` property from `ServiceBusNamespaceReplicaLocation`. This property had no effect for Service Bus namespaces.
The namespace update (PATCH) operation is now synchronous in API version `2026-01-01`. The long-running `Update(WaitUntil, ServiceBusNamespacePatch, CancellationToken)` and `UpdateAsync(WaitUntil, ServiceBusNamespacePatch, CancellationToken)` overloads on `ServiceBusNamespaceResource` have been removed; use `Update(ServiceBusNamespacePatch, CancellationToken)` / `UpdateAsync(ServiceBusNamespacePatch, CancellationToken)` instead.
Changed the `ArmNetAppModelFactory.LdapConfiguration` and `ArmNetAppModelFactory.LdapConfigurationPatch` factory methods to accept `SecureLdapType` instead of `bool` for the LDAP security setting.
Renamed model `TierRegions` to `MongoDBAtlasTierRegions`.
Renamed model `ProjectLimitStatus` to `MongoDBAtlasProjectLimitStatus`.
Renamed model `RegionsByTierResponse` to `MongoDBAtlasRegionsByTierResult`.
Renamed model `TierLimitReachedResponse` to `MongoDBAtlasTierLimitReachedResult`.
Renamed property `Backups` to `IsBackupsEnabled` in `MongoDBAtlasClusterProperties`.
Renamed the body parameter on `PrivateStoreCollectionInfoCollection.CreateOrUpdate`/`Update` (and their async counterparts) from `info` to `data` to align with the TypeSpec-based generator naming convention. Positional callers are unaffected; callers using the named argument `info:` must switch to `data:`.
Renamed the `eTag` parameter to `etag` on regenerated `ArmMarketplaceModelFactory` overloads to align with the TypeSpec-based generator naming convention. The original overloads with `eTag` are preserved as backward-compatibility shims emitted by the generator.
Disabled client flatten on `ConnectedClusterData` since client flatten feature is now marked as deprecated.
Removed `IotHubSku.Gen2` static property and `IotHubSkuTier.Generation2` enum member — the GEN2 IoT Hub SKU is no longer present in the `2026-05-01-preview` API.
Some property types changed (e.g., `ConnectivityProperties` from `BinaryData` to a typed model).
This version is a major migration from AutoRest to TypeSpec-based code generation.
Some model factory overloads changed signatures.
Some resource collection and extension method signatures changed.
The namespace update (PATCH) operation is now synchronous in API version `2026-01-01`. The long-running `Update(WaitUntil, EventHubsNamespaceData, CancellationToken)` and `UpdateAsync(WaitUntil, EventHubsNamespaceData, CancellationToken)` overloads on `EventHubsNamespaceResource` have been removed; use `Update(EventHubsNamespaceData, CancellationToken)` / `UpdateAsync(EventHubsNamespaceData, CancellationToken)` instead.
The namespace update (PATCH) operation is now synchronous in API version `2026-01-01`. The long-running `Update(WaitUntil, EventHubsNamespaceData, CancellationToken)` and `UpdateAsync(WaitUntil, EventHubsNamespaceData, CancellationToken)` overloads on `EventHubsNamespaceResource` have been removed; use `Update(EventHubsNamespaceData, CancellationToken)` / `UpdateAsync(EventHubsNamespaceData, CancellationToken)` instead.
The namespace update (PATCH) operation is now synchronous in API version `2026-01-01`. The long-running `Update(WaitUntil, EventHubsNamespaceData, CancellationToken)` and `UpdateAsync(WaitUntil, EventHubsNamespaceData, CancellationToken)` overloads on `EventHubsNamespaceResource` have been removed; use `Update(EventHubsNamespaceData, CancellationToken)` / `UpdateAsync(EventHubsNamespaceData, CancellationToken)` instead.
Removed `ComputeSkuMixPlacementItem.CapacityMax`. Use `ComputeSkuMixPlacementGenerateResult.CapacityLimits` instead, which reports the same ceiling along with the `Reason` it was applied.
Removed `ComputeSkuMixPlacementDeploymentChoice.Id`. Use `ComputeSkuMixPlacementGenerateResult.Id` instead; the identifier now applies to the whole response rather than to each individual placement choice.
Renamed `RecurringScheduledActions*` models to `ScheduledActions*`.
Renamed `ResourceProvisioningState` to `OccurrenceResourceProvisioningState`.
Renamed `ResourceProvisioningState` to `OccurrenceResourceProvisioningState`.
Renamed `RecurringScheduledActions*` models to `ScheduledActions*`.
Compared to `1.6.0-beta.3`, moved `CognitiveServicesComputeData.Location` to `CognitiveServicesComputeProperties.Location`. The `CognitiveServicesClusterComputeProperties` and `ContainerInstanceComputeProperties` constructors now require an `AzureLocation`.
Compared to `1.6.0-beta.3`, removed the `vmPriority` parameter from the `CognitiveServicesComputePool` constructor and made the `VmPriority` property optional.
Compared to `1.6.0-beta.3`, replaced `CognitiveServicesVmPriority.LowPriority` with `CognitiveServicesVmPriority.Spot` to match the service contract.
`DenyAssignmentPermission` is now a writable model. Its `Actions`, `NotActions`, `DataActions`, and `NotDataActions` collection properties changed from `IReadOnlyList<string>` to `IList<string>`, and the type now has a public constructor. The `ArmAuthorizationModelFactory.DenyAssignmentPermission(...)` helper is retained for backward compatibility but hidden (`EditorBrowsable(Never)`); prefer constructing the model directly via its public constructor.
`RoleManagementPrincipal` now has a public constructor. The `ArmAuthorizationModelFactory.RoleManagementPrincipal(...)` helper is retained for backward compatibility but hidden (`EditorBrowsable(Never)`); prefer constructing the model directly via its public constructor.
`DenyAssignmentData` is now a writable model to support create/update. Its `Principals`, `ExcludePrincipals`, and `Permissions` collection properties changed from `IReadOnlyList<T>` to `IList<T>`, and the type now has a public constructor.
`RoleManagementPrincipal` now has a public constructor. The `ArmAuthorizationModelFactory.RoleManagementPrincipal(...)` helper is retained for backward compatibility but hidden (`EditorBrowsable(Never)`); prefer constructing the model directly via its public constructor.
`DenyAssignmentPermission` is now a writable model. Its `Actions`, `NotActions`, `DataActions`, and `NotDataActions` collection properties changed from `IReadOnlyList<string>` to `IList<string>`, and the type now has a public constructor. The `ArmAuthorizationModelFactory.DenyAssignmentPermission(...)` helper is retained for backward compatibility but hidden (`EditorBrowsable(Never)`); prefer constructing the model directly via its public constructor.
`DenyAssignmentData` is now a writable model to support create/update. Its `Principals`, `ExcludePrincipals`, and `Permissions` collection properties changed from `IReadOnlyList<T>` to `IList<T>`, and the type now has a public constructor.
Removed resource API versions older than `2025-02-14`.
Renamed `FrontendEndpointData` to `FrontendEndpoint`.
Removed historical `FrontDoorResource` API version constants older than `2025-10-01`.
Removed historical `FrontDoorResource` API version constants older than `2025-10-01`.
Renamed `FrontendEndpointData` to `FrontendEndpoint`.
Updated several generated model/property shapes to match the TypeSpec-generated API surface.
Renamed `ComputeGallery` to `GalleryResource` and `ComputeSnapshot` to `SnapshotResource` to avoid generic single-word resource type names.
Removed beta-only generated types that are no longer emitted by the TypeSpec generator, including `GalleryArtifactVersionSource` and `LoadBalancerFrontendIPConfiguration`.
Renamed `ComputeGallery` to `GalleryResource` and `ComputeSnapshot` to `SnapshotResource` to avoid generic single-word resource type names.
Updated several generated model/property shapes to match the TypeSpec-generated API surface.
Removed beta-only generated types that are no longer emitted by the TypeSpec generator, including `GalleryArtifactVersionSource` and `LoadBalancerFrontendIPConfiguration`.
`AzureCredentialResolver` now resolves a top-level single source (e.g. `CredentialSource: AzureCliCredential`) to the concrete credential type (`AzureCliCredential`) rather than a `DefaultAzureCredential` wrapper. Construction is unchanged (it uses the same `DefaultAzureCredentialFactory` helpers) — only the returned type differs; callers using `CredentialSettings.TokenProvider` as a `TokenCredential` are unaffected.
`AzureCredentialResolver` no longer claims top-level `BrokerCredential` sections (canonical name or `broker` alias); they now require `BrokerCredentialResolver` from `Azure.Identity.Broker` 1.7.0+ (e.g. via `AddBrokerCredentialResolver()`). `BrokerCredential` entries nested inside a `ChainedTokenCredential` continue to resolve. Note: if `BrokerCredentialResolver` from `Azure.Identity.Broker` 1.7.0 is registered ahead of `AzureCredentialResolver`, a nested `BrokerCredential` entry is currently bu
Changed the default `DocumentTranslationClientOptions.ServiceVersion` from `V2024_05_01` to `V2026_03_01`, and removed the interim `V2024_11_01_Preview` and `V2025_12_01_Preview` preview service versions. Use the stable `V2026_03_01` version instead.
Added `deploymentName` and `translateTextWithinImage` parameters (positioned after `category`) to the `SingleDocumentTranslationClient.Translate` and `TranslateAsync` overloads. This is a binary-breaking change for existing callers.
Made the format type parameter required (`FileFormatType fileFormatType` instead of `FileFormatType? type`) on `DocumentTranslationClient.GetSupportedFormats` and `GetSupportedFormatsAsync`, since the `2026-03-01` service version requires it. Specify `FileFormatType.Document` or `FileFormatType.Glossary`. The previous nullable overload is retained for binary compatibility but now throws `NotSupportedException` when called without a type.
The Routines and routine runs listing has been changed: the parameter `before` was removed from both `GetRoutineRuns` and `GetRoutines` methods. In the `GetRoutineRuns` the parameter `name` was replaced by `routineName`. The same changes were done for asynchronous methods.
The `GetConnectionAsync` and `GetConnection` methods of `AIProjectConnectionsOperations` are now returning `Task<ClientResult<AIProjectConnection>>` and `ClientResult<AIProjectConnection>` respectively.
The Agent optimization-related classes were renamed | Old (2.x) | New (3.0.0-beta.1) | | --- | --- | | `OptimizationCandidate` | `AgentOptimizationCandidate` | | `OptimizationDatasetCriterion` | `AgentOptimizationDatasetCriterion` | | `OptimizationDatasetInput` | `AgentOptimizationDatasetInput` | | `OptimizationDatasetItem` | `AgentOptimizationDatasetItem` | | `OptimizationEvaluatorRef` | `AgentOptimizationEvaluatorRef` | | `OptimizationInlineDatasetInput` | `AgentOptimizationInlineDatasetInput`
The public `ResponseItem.AsAgentResponseItem()` extension method was removed. Results returned by `ProjectResponsesClient` and the `CreateResponse`/`CreateResponseAsync` extensions are now normalized automatically, so `OutputItems` and echoed `Tools` already surface the strongly-typed Azure subtypes without any caller-side conversion.
The settable `AgentResponseItem.AgentReference` and `AgentResponseItem.ResponseId` instance properties are gone. The same values are now read-only extension properties on `OpenAI.Responses.ResponseItem` (`ResponseItemExtensions`), so a `using Azure.AI.Extensions.OpenAI;` must be in scope to see them. To set agent or conversation metadata, use the `Agent`, `AgentConversationId`, and `SessionId` extension properties on `CreateResponseOptions` instead.
The `AgentResponseItem` base type and the `AgentResponseItemKind` enum were removed. Azure-specific response items (for example `BingGroundingToolCall`, `AzureAISearchToolCall`, `OAuthConsentRequestResponseItem`) now derive from `OpenAI.Responses.ResponseItem`, and Azure-specific tools (for example `BingGroundingTool`, `AzureAISearchTool`) now derive from `OpenAI.Responses.ResponseTool`. Iterate `ResponseResult.OutputItems` as `OpenAI.Responses.ResponseItem` and pattern-match to the Azure subtyp
**Response items and tools are now the `OpenAI` SDK types.** This library no longer emits its own copies of the Responses object model; it consumes the types from the `OpenAI` library (2.12.0) directly. As a result:
Changed `ProjectResponsesClientOptions` to derive from `OpenAI.Responses.ResponsesClientOptions` (instead of `ProjectOpenAIClientOptions`). This aligns with the upstream OpenAI client option hierarchy after `ResponsesClientOptions` was split out as a sibling of `OpenAIClientOptions`. Because it no longer derives from `ProjectOpenAIClientOptions`, it can no longer be passed to the `ProjectOpenAIClient` constructor; use `ProjectOpenAIClientOptions` there.
Removed `ConversationChainMetadata`, `ConversationChainMetadataNamespace`, `ResponseContext.ConversationChainMetadata`, and `ResponseContextExtensions.MetadataNamespace`. Durable application state now belongs in an explicit `Azure.AI.AgentServer.Core.Storage.FoundryStateStore` scoped with `ResponseContext.ConversationChainId`.
Removed the public `ResponsesStreamProvider` abstract class and the public `IAsyncObserver<T>` interface. SSE streaming is now composed on the `Azure.AI.AgentServer.Core` event-stream primitive (`IEventStreamRegistry` / `IEventStream`) rather than a Responses-owned stream provider, matching the Python implementation. The local default event-stream backing is in-memory replay, upgraded automatically to durable file-backed replay when resilient background is enabled outside a hosted environment.
Removed `IsolationContext.UserIsolationKeyHeaderName` and `IsolationContext.ChatIsolationKeyHeaderName` — use `PlatformHeaders.UserIsolationKey` and `PlatformHeaders.ChatIsolationKey` instead.
Replaced `AddAgentServerRequestId()`, `AddAgentServerVersion()`, `AddAgentServerLogging()`, `UseAgentServerRequestId()`, `UseAgentServerVersion()`, and `UseAgentServerLogging()` with a single `AddAgentServerCore()` / `UseAgentServerCore()` pair. Tier 3 standalone setups now use two calls instead of six.
Get this data programmatically \u2014 free, no authentication.
curl https://depscope.dev/api/breaking/nuget/Azure.Messaging.ServiceBus