Add exception handler on HTTP/2 parent channel to suppress WARN logs#48890
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a Netty channel handler to suppress noisy “exceptionCaught reached tail of pipeline” WARN logs on HTTP/2 parent (TCP) connections in Cosmos’ Reactor Netty transport, while preserving WARN-level signal when exceptions may impact in-flight HTTP/2 streams.
Changes:
- Install an HTTP/2 parent-channel
exceptionCaughthandler fromReactorNettyClientwhen HTTP/2 is enabled. - Add
Http2ParentChannelExceptionHandlerthat consumes parent-channel exceptions and logs at DEBUG vs WARN based on active stream count and channel activity. - Add EmbeddedChannel-based unit tests covering exception consumption behavior, and update changelog entry.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/http/ReactorNettyClient.java | Adds logic to install the new handler onto the HTTP/2 parent channel pipeline. |
| sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/http/Http2ParentChannelExceptionHandler.java | New handler that consumes parent-channel exceptions and logs based on connection state. |
| sdk/cosmos/azure-cosmos/CHANGELOG.md | Documents the fix in the unreleased section. |
| sdk/cosmos/azure-cosmos-tests/src/test/java/com/azure/cosmos/implementation/http/Http2ParentChannelExceptionHandlerTest.java | New unit tests validating the handler’s exception consumption behavior. |
| sdk/cosmos/azure-cosmos-tests/pom.xml | Enables surefire tests and includes trailing whitespace changes. |
|
/azp run java - cosmos - tests |
|
Azure Pipelines successfully started running 1 pipeline(s). |
In HTTP/2, reactor-netty multiplexes streams on a shared parent TCP connection. The parent channel pipeline has no ChannelOperationsHandler (unlike HTTP/1.1), so TCP-level exceptions like Connection reset by peer (ECONNRESET) propagate to Netty's TailContext, which logs them as WARN. This adds Http2ParentChannelExceptionHandler to the parent channel via doOnConnected (accessing channel.parent()). The handler consumes exceptions at DEBUG level WITHOUT closing the channel or altering connection lifecycle, matching HTTP/1.1 logging behavior. Changes: - Handler logs cause.toString() (not getMessage()) for null-safe diagnostics - Defensive try-catch for duplicate handler name on concurrent stream creation - Before/after verified with EmbeddedChannel unit tests Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…toString(), update changelog Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
d68fa5c to
2a3b5b2
Compare
|
/azp run java - cosmos - tests |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
@sdkReviewAgent |
Address Bhaskar's review: add two tests covering the else branch where activeStreams > 0 on an active channel, exercising the WARN log path. - withHandler_activeStreams_consumedAtWarn: creates an active H2 stream via codec.connection().local().createStream(), fires an exception, and verifies it is consumed (does not reach TailContext). - withHandler_activeStreams_channelNotClosed: same setup, verifies the handler does not close the channel even with active streams. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
✅ Review complete (32:05) No new comments — existing review coverage is sufficient. Steps: ✓ context, correctness, cross-sdk, design, history, past-prs, synthesis, test-coverage |
When Http2FrameCodec is absent from the pipeline, getActiveStreamCount() returns -1. Since -1 != 0 and channelActive == true, the handler takes the safe WARN path. This test covers that fallback behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
/azp run java - cosmos - tests |
|
Azure Pipelines will not run the associated pipelines, because the pull request was updated after the run command was issued. Review the pull request again and issue a new run command. |
|
/azp run java - cosmos - tests |
|
Azure Pipelines successfully started running 1 pipeline(s). |
…ug log in catch - Change getActiveStreamCount() to return Integer (nullable) instead of int with -1 sentinel. null explicitly means 'could not determine' and takes the safe WARN path. (Addresses Fabian's review) - Add logger.debug in catch block so codec retrieval failures are observable instead of silently swallowed. - Add Error guard in exceptionCaught: Error types (OOM, SOF) propagate to TailContext instead of being consumed. (Addresses Xinlian's review) - Add withHandler_errorNotConsumed_propagatesToTail test. - Update Javadoc to reflect Exception-only consumption and Error passthrough. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
/azp run java - cosmos - tests |
|
Azure Pipelines successfully started running 1 pipeline(s). |
In reactor-netty's H2 path, doOnConnected fires once per TCP connection and connection.channel() IS the parent channel (channel.parent() is null). The previous code assumed doOnConnected fires for child/stream channels where channel.parent() would return the TCP parent. Fix: resolve the H2 parent as channel.parent() ?? channel, handling both the observed case (parent=null, channel IS the parent) and the alternate case (parent!=null, install on parent). Verified with integration test: - Linux/epoll with TCP RST proxy (SO_LINGER=0, 30s idle timeout) - 4.79.1 baseline: TailContext WARN appeared (Connection reset by peer) - Fixed build: WARN suppressed, handler logged at DEBUG (activeStreams=0) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
/azp run java - cosmos - tests |
|
Azure Pipelines successfully started running 1 pipeline(s). |
doOnConnected fires for the parent TCP channel in reactor-netty's H2 path, so connection.channel() IS the parent. No need for channel.parent() resolution. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
/azp run java - cosmos - tests |
|
Azure Pipelines successfully started running 1 pipeline(s). |
- Add local/remote address to WARN and DEBUG log messages for diagnostic parity with RNTBD connection loggers - Mark handler @ChannelHandler.Sharable with singleton INSTANCE (handler is stateless - no instance fields) - Update ReactorNettyClient to use INSTANCE instead of new - Update tests to use INSTANCE Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Matches PartitionProcessor/HealthChecker patterns - avoids SLF4J inline formatting issues. Channel.toString() provides L:/R: addresses. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
/azp run java - cosmos - tests |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Resolve vmId lazily via ClientTelemetry.getMachineId(null) on first access from non-event-loop thread. Store as immutable field in the @sharable handler singleton. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove lazy singleton pattern (getOrCreateInstance) that could call ClientTelemetry.getMachineId() on the Netty event loop (5s blocking). Instead, create handler eagerly in configureChannelPipelineHandlers() which runs on the caller's setup thread. The @sharable handler instance is captured by the doOnConnected lambda. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove all blocking calls. Add ClientTelemetry.getCachedMachineId() which reads a volatile field populated by getMachineId() during client init. Handler reads it at log time - pure volatile read, zero blocking. Restores static INSTANCE singleton (handler is stateless again). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
LGTM, Thanks |
|
/azp run java - cosmos - tests |
|
Azure Pipelines successfully started running 1 pipeline(s). |
* Add .github/hooks/hooks.json for Copilot Skills reference telemetry (#48610)
Agent-Logs-Url: https://github.com/Azure/azure-sdk-for-java/sessions/5fb4ff6b-c53e-43b7-a192-b5c2bbcd4bfb
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: praveenkuttappan <55455725+praveenkuttappan@users.noreply.github.com>
* Fix usage of deprecated telemetry tags (#48187)
* Fix usage of deprecated telemetry tags
* Revert changes outside azure-core-tracing-opentelemetry
* App Config Spring - Refresh Refactor (#47877)
* Refactor Refresh
* review fixes
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update StateHolderTest.java
* Update AppConfigurationRefreshUtil.java
* Update AppConfigurationRefreshUtil.java
* Update sdk/spring/spring-cloud-azure-appconfiguration-config/src/main/java/com/azure/spring/cloud/appconfiguration/config/implementation/StateHolder.java
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update AzureAppConfigBootstrapRegistrar.java
* Update AppConfigurationRefreshUtilTest.java
* Update ConnectionManager.java
* Update AppConfigurationRefreshUtilTest.java
* fixing after merge
* Update AppConfigurationRefreshUtilTest.java
* fixing tests
* fixing merge issue
* Update RecurrenceEvaluator.java
* Update RecurrenceEvaluator.java
* better fix
* new fix
* Update AppConfigurationWatchAutoConfiguration.java
* Update AppConfigurationPullRefresh.java
* Update AppConfigurationPullRefresh.java
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Fail fast when no packages selected for manual release build (#48465)
* Fail fast when no packages selected for manual release build
When manually triggering a release pipeline, if no release_* parameters
are checked, the pipeline would run through expensive build and signing
steps before eventually failing at Create-APIReview.ps1. This is common
since 112 of 156 service CI files have all release parameters defaulting
to false.
Add a compile-time validation step as the first step of the Build job
that immediately fails with a clear error message when all three
conditions are met: internal project, manual trigger, and no release
artifacts selected. The step is not injected for PR, CI push, or
scheduled builds.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Updated output msg
* Log vso task issue
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add JobId to post-apiview workflow configuration (#48653)
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
* inner loop, add update-meta-data script (#48014)
* inner loop, add update-meta-data script
* remove ci.yaml updates
* Add CI.yml provisioning and update support
Adds CI.yml update as Step 4 in the metadata update script, ported
from the Python implementation in eng/automation/utils.py.
Supported cases:
- Create new ci.yml from template for brand-new services
- Add artifact entry to existing ci.yml (with/without release params)
- Rename ci.yml to ci.data.yml when SDKType=data and create new ci.yml
- Skip when module already exists (idempotent)
- Management-plane packages get default: false for release param
- Data-plane packages get default: true for release param
Fixes https://github.com/Azure/azure-sdk-tools/issues/13808
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* resolve comments
* Fail metadata update for unsupported SDK types
Add groupId validation to reject unsupported SDK types (e.g., com.azure.spring).
Only com.azure and com.azure.resourcemanager are supported. Uses LogError
with the package path for clear diagnostics before exiting.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Increment package versions for search releases (#48651)
* [Compute] Migrate SDK to generate from TypeSpec (#48646)
* Failed-[AutoPR azure-resourcemanager-azurestackhci]-generated-from-SDK Generation - Java-6084367 (#48644)
* Configurations: 'specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/tspconfig.yaml', API Version: 2026-02-01, SDK Release Type: stable, and CommitSHA: 'aa591176e14ed29f96ebf1e3899e4356df7f13dd' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6084367 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Configurations: 'specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/tspconfig.yaml', API Version: 2026-02-01, SDK Release Type: stable, and CommitSHA: '90d424dc756608a8788ce35b8188c7e82c684f4c' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6086791 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Configurations: 'specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/tspconfig.yaml', API Version: 2026-02-01, SDK Release Type: stable, and CommitSHA: 'dcaa77fcd61105315164a986dd185219331a76a5' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6090571 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* [Redis] Migrate SDK to TypeSpec (#48659)
* Regenerate Redis SDK from TypeSpec, add revapi suppressions
- Regenerated SDK code from TypeSpec
- Added module-info.java opens for implementation.models
- Added revapi suppressions for:
- Read-only model constructors made private
- Read-only model setters removed
- OperationStatusResult setters visibility reduced
- Pageable ListResult classes moved to implementation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Regenerate Redis SDK with alternateType fix for percentComplete
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Regenerate Redis SDK - all revapi checks pass
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Restore changelog from main, update tsp-location.yaml
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Update tsp-location.yaml to specs PR commit
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* commit on main
* record
* fix tsp-location
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Removing boxed types for nregion property check (#48656)
* Removing boxed types for nregion property check
* updating javadoc and adding changelog
* Failed-[AutoPR azure-resourcemanager-containerservice]-generated-from-SDK Generation - Java-6083044 (#48641)
* Configurations: 'specification/containerservice/resource-manager/Microsoft.ContainerService/aks/tspconfig.yaml', API Version: 2026-01-02-preview, SDK Release Type: beta, and CommitSHA: 'f43cd0ba56f868747a1e85155becbf6d3849f725' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6083044 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* revapi suppress
* ut, skip a field that only exists in preview
* fix lint
* Configurations: 'specification/containerservice/resource-manager/Microsoft.ContainerService/aks/tspconfig.yaml', API Version: 2026-01-02-preview, SDK Release Type: beta, and CommitSHA: '94db7d273945296435e15719fd0ade793fdcf7d2' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6085712 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Configurations: 'specification/containerservice/resource-manager/Microsoft.ContainerService/aks/tspconfig.yaml', API Version: 2026-01-02-preview, SDK Release Type: beta, and CommitSHA: 'b684aff3319ffa5784a8b8d19d6af5adf168a4bb' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6085899 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
---------
Co-authored-by: Weidong Xu <weidxu@microsoft.com>
* eng, bump @azure-tools/typespec-azure-resource-manager 0.66.1 (#48668)
* Increment package versions for ai releases (#48635)
* Increment package versions for commerce releases (#48236)
* [AutoPR azure-resourcemanager-playwright]-generated-from-SDK Generation - Java-6092967 (#48660)
* Configurations: 'specification/loadtestservice/resource-manager/Microsoft.LoadTestService/playwright/tspconfig.yaml', API Version: 2026-02-01-preview, SDK Release Type: beta, and CommitSHA: 'dfc0b2356c41c538250f3309f1a35f4cb1bf4e34' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6092967 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Update release date for 1.1.0-beta.1
Updated release date for version 1.1.0-beta.1 in CHANGELOG.
---------
Co-authored-by: Kashish Gupta <90824921+kashish2508@users.noreply.github.com>
* Configurations: 'specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml', API Version: 2025-03-01, SDK Release Type: stable, and CommitSHA: '0758803aaaacc14ce831053cf0eb592e09e14f93' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6067536 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. (#48593)
Co-authored-by: prasannajsns <33145176+prasannajsns@users.noreply.github.com>
* Increment package versions for containerservice releases (#48669)
* Increment package versions for confluent releases (#48670)
* [Automation] Generate SDK based on TypeSpec 0.43.3 (#48672)
* Update Spring Boot and Spring Cloud versions for the Spring compatibility tests. (#48679)
This commit is created by GitHub Action: https://github.com/Azure/spring-cloud-azure-tools/actions/runs/23928117451
Co-authored-by: github-actions <github-actions@github.com>
* [EventHubs] Migrate to TypeSpec (#48673)
* Clean up azure-identity README (#48685)
* Clean up azure-identity README
- Fix typo: 'used by to' -> 'used to'
- Remove redundant DefaultAzureCredential and ManagedIdentityCredential code examples
- Update credential chain and managed identity reference links
- Improve Markdown table formatting
- Fix indentation and whitespace issues
* Update sdk/identity/azure-identity/README.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Sync eng/common directory with azure-sdk-tools for PR 14890 (#48686)
* Allow azure-sdk PRs to bypass CODEOWNERS section check and rename CodeownersChanged to ShouldCheckCodeownersEdits
Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/6acbd501-14e8-4108-9213-c49d035fb815
Co-authored-by: danieljurek <2158838+danieljurek@users.noreply.github.com>
* Use gh pr view to detect PR author instead of Build.RequestedFor
Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/e2fb79aa-7ed3-45dd-a0ba-3ebb24b10e4b
Co-authored-by: danieljurek <2158838+danieljurek@users.noreply.github.com>
* Reorder logic: check CODEOWNERS changed before gh API call, remove stderr capture
Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/747d7c1f-ba14-4781-83e1-6b80bf475318
Co-authored-by: danieljurek <2158838+danieljurek@users.noreply.github.com>
* Replace gh CLI with Invoke-RestMethod for PR author detection
Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/56bb56b5-f097-48df-90ab-de347a28634f
Co-authored-by: danieljurek <2158838+danieljurek@users.noreply.github.com>
* Add retry parameters to Invoke-RestMethod for PR author lookup
Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/d8f97723-9352-41c9-8005-356bde3313c4
Co-authored-by: danieljurek <2158838+danieljurek@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: danieljurek <2158838+danieljurek@users.noreply.github.com>
* March 2026 Patches Merge-back (#48665)
* March 2026 Patches Merge-back: update dependency versions, CHANGELOGs, pom.xml and README.md files
Agent-Logs-Url: https://github.com/Azure/azure-sdk-for-java/sessions/87bdcc7a-92a5-466f-96b5-98cc5e322403
Co-authored-by: jairmyree <67484440+jairmyree@users.noreply.github.com>
* Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Revert changes on v2 libraries.
* mgmt, prepare 2.61.0 (#48681)
* Update azure-resourcemanager current version to 2.61.0
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Run update_versions.py --sr to update pom versions
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Update resourcemanager README versions for 2.61.0
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Update CHANGELOG.md for azure-resourcemanager 2.61.0 release
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Increment package versions for resourcemanager releases (#48684)
* March 2026 Patches Merge-back (#48694)
* Initial plan
* Revert all README.md changes to match main
Agent-Logs-Url: https://github.com/Azure/azure-sdk-for-java/sessions/5b58e210-1356-48b4-985d-71902dbda698
Co-authored-by: jairmyree <67484440+jairmyree@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jairmyree <67484440+jairmyree@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jairmyree <67484440+jairmyree@users.noreply.github.com>
Co-authored-by: Jair Myree <jairmyree@microsoft.com>
Co-authored-by: Xiaofei Cao <92354331+XiaofeiCao@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
* Sync eng/common directory with azure-sdk-tools for PR 14922 (#48696)
* Add rust to prepare-pipelines
* Use existing rust info with narrower variable group specifications
* Space
---------
Co-authored-by: Daniel Jurek <djurek@microsoft.com>
* [Key Vault Certificates] Remove preview service version from GA library (#48678)
* [Key Vault Certificates] Remove preview service version from GA library
Remove V2025_06_01_PREVIEW from CertificateServiceVersion as preview
service versions should not be included in GA versions of the library.
Also update getLatest() to return V2025_07_01 (the new stable version)
and remove the preview entry from the CHANGELOG.
* Revert getLatest() to V7_6 to fix playback test failures
Changing getLatest() to V2025_07_01 caused all playback tests to fail
because existing recordings were made against API version 7.6. Reverting
getLatest() to V7_6 — only the removal of V2025_06_01_PREVIEW is in scope
for this PR.
* Remove 2025-06-01-preview from customization version list
The customization class generates CertificateServiceVersion.java with a
hardcoded list of API versions. Preview service versions should not be
included in GA library releases. Removing '2025-06-01-preview' from the
list so that the generated output matches the committed file and the
TypeSpec code generation verify check passes.
* Update CertificateServiceVersion.getLatest() to V2025_07_01 and re-record tests
- Updated getLatest() to return V2025_07_01 in both CertificateServiceVersion.java
and CertificatesCustomizations.java (the TypeSpec code-gen source of truth)
- Re-recorded all tests against live Azure Key Vault using API version 2025-07-01
- Updated assets.json with new recording tag: java/keyvault/azure-security-keyvault-certificates_665470077b
* Re-record CertificateAsyncClientTest against live 2025-07-01 API
Updated assets.json tag to include async test recordings:
java/keyvault/azure-security-keyvault-certificates_8643a442b1
All 159 playback tests now pass (2 skipped).
* Re-record mergeCertificate tests with JDK 8 for api-version 2025-07-01
* Retrigger CI
---------
Co-authored-by: singhalrohit <singhalrohit@microsoft.com>
* Set default service version to 2025-07-01 for keyvault secrets (#48690)
* Set default service version to 2025-07-01 for keyvault secrets
- Added V2025_07_01 enum constant to SecretServiceVersion
- Updated getLatest() to return V2025_07_01
- Updated SecretsCustomizations.java codegen to include 2025-07-01
- Re-recorded all tests (sync + async) against live service with 2025-07-01
* Add CHANGELOG entry for 2025-07-01 service version support
Agent-Logs-Url: https://github.com/Azure/azure-sdk-for-java/sessions/2124764f-44a6-4fa3-bed7-60d87aea7f67
Co-authored-by: rohitsinghal4u <5697065+rohitsinghal4u@users.noreply.github.com>
---------
Co-authored-by: Rohit Singhal <singhalrohit@microsoft.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: rohitsinghal4u <5697065+rohitsinghal4u@users.noreply.github.com>
* fix: reset metrics registry per benchmark cycle (#48695)
Fix: create a fresh CompositeMeterRegistry, SimpleMeterRegistry, and
CsvMetricsReporter for each cycle.
Co-authored-by: Annie Liang <xinlian@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Temporarily Disabling Immutable Storage with Versioning Tests During Diagnostics (#48701)
* Release azure-cosmos 4.79.1 (#48700)
* Release azure-cosmos 4.79.1
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Increment package versions for playwright releases (#48692)
* Increment package versions for cosmos releases (#48705)
* sync PR for config update (#48712)
Co-authored-by: anannya03 <aaniee09@gmail.com>
* Added pip auth step for using internal feed (#48717)
* [AutoPR azure-resourcemanager-deviceregistry]-generated-from-SDK Generation - Java-6118507 (#48709)
* Configurations: 'specification/deviceregistry/DeviceRegistry.Management/tspconfig.yaml', API Version: 2026-03-01-preview, SDK Release Type: beta, and CommitSHA: '768bdb4b9b7a4fa1dab0b5f22f0dc285341c6374' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6118507 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Add live test for Credentials and Policies flow (2026-03-01-preview)
---------
Co-authored-by: Suat Iskender <suatiskender@microsoft.com>
* Added npm auth step to internal feed (#48720)
* Added npm auth step to internal feed
* Added root nuget config to disable non-cfs feed
* Configurations: 'specification/storagemover/StorageMover.Management/tspconfig.yaml', API Version: 2025-12-01, SDK Release Type: stable, and CommitSHA: '55fc3e7d12df68485d19b10847f24c95579a06f4' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6110797 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. (#48691)
* Migrate authorization (#48721)
* Prepare March 2026 BOM Release (#48711)
* Prepare March 2026 BOM Release
* Prepare March 2026 BOM Release
* Sync eng/common directory with azure-sdk-tools for PR 14918 (#48710)
* use doc-warden from feed directly. no more pypi
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
* [keyvault] azure-security-keyvault-certificates: set release date to 2026-04-07 for 4.9.0-beta.1 (#48722)
Co-authored-by: singhalrohit <singhalrohit@microsoft.com>
* Increment package versions for deviceregistry releases (#48728)
* [ServiceBus] Migrate azure-resourcemanager-servicebus to TypeSpec (#48724)
* migrate network to generate from typespec (#48609)
* Increment package versions for keyvault releases (#48741)
* Sync eng/common directory with azure-sdk-tools for PR 15020 (#48743)
* override lodash to latest
* npm i
---------
Co-authored-by: Mike Harder <mharder@microsoft.com>
* Migrate sql (#48725)
* Increment package versions for keyvault releases (#48748)
* Sync eng/common directory with azure-sdk-tools for PR 15041 (#48750)
* fix the deps installation
* Update eng/common/scripts/Verify-Readme.ps1
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
Co-authored-by: Scott Beddall <45376673+scbedd@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Use mirror settings for CFS in CI (#48718)
* Turned back using mirror settings for CFS in CI
* Restore POM repository overrides for local dev CFS routing
Keep <repositories> and <pluginRepositories> blocks in POMs so local
development continues to route through CFS (no-auth) by default.
The CI mirror settings in eng/settings.xml handle the tools/extensions
that don't respect POM-level repos.
* Updated contributing doc
* Added clarification for using mirror settings locally
* Added azure-artifacts folder to gitignore
* Azd error handling modification (#47975)
* rebase-1
* fixed a null case
* Update sdk/identity/azure-identity/CHANGELOG.md
Co-authored-by: Scott Addie <10702007+scottaddie@users.noreply.github.com>
---------
Co-authored-by: Scott Addie <10702007+scottaddie@users.noreply.github.com>
* Disable MSAL's internal retry (#48472)
* Disable MSAL's internal retry
* fixed retry
* fixed formatting
* fixed tests and checkstyle issues
* Recover from local version parsing failures in install (#48756)
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>
* Enable CHANGE_FEED_WITH_START_TIME_POST_MERGE SDK capability (#48752)
Enable the CHANGE_FEED_WITH_START_TIME_POST_MERGE capability flag in
SUPPORTED_CAPABILITIES so the backend allows IfModifiedSince headers
on merged partitions for change feed requests.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* eng, remove api-version required check, and infer sdk release type from api-version if not provided (#48706)
* infer sdk release type
* ensure revapi.skip=true in generated pom.xml for beta releases
When SDK release type is beta (either explicitly passed or inferred from
api-version), ensure <revapi.skip>true</revapi.skip> is present in the
generated pom.xml: add it if missing, or change false to true.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* remove generate_beta_sdk parameter from generate_typespec_project
The preview version is set again after generation with the correct
release_beta_sdk value, so the pre-generation call defaults to True.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* update revapi.skip for both beta and stable releases
Renamed ensure_revapi_skip to update_revapi_skip. Now sets revapi.skip=true
for beta releases and revapi.skip=false for stable releases.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* add unit tests for update_revapi_skip
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [Automation] Generate SDK based on TypeSpec 0.44.0 (#48747)
* cdn, remove handwritten code on properties that still in preview (#48763)
* Add throughput bucket samples for Cosmos Spark connector (#48734)
Add Python (.ipynb) and Scala sample notebooks demonstrating
server-side throughput bucket configuration as an alternative
to SDK-based global throughput control.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Making a fix to compare sessionid on the message and the sessionid on the link filter in a case-insensitive way. (#48759)
* Making a fix to compare sessionid on the message and the link filter in a case insensite way.
* Fixing one build error.
* Sync .github directory with azure-sdk-tools for PR 15048 (#48770)
* Add SDK Validation check name filter to post-apiview workflow
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fixed format issue
---------
Co-authored-by: Ray Chen <raychen@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Combined settings for signing and release stages (#48761)
* Combined settings for signing and release stages
* Updated path to the sparse checkout one
* Use full qualified name for gpg plugin
* [MSI] Regenerate SDK from TypeSpec (#48767)
* Regenerate MSI SDK from TypeSpec with revapi suppressions
- Updated module-info.java to open implementation.models to azure.core
- Added revapi suppressions for ListResult class removals, OperationDisplay constructor/setter changes
- New models: AssignmentRestrictions, ClaimsMatchingExpression, SystemAssignedIdentityProperties
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* record
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [Automation] Generate SDK based on TypeSpec 0.44.2 (#48790)
* Sync eng/common directory with azure-sdk-tools for PR 14920 (#48779)
* Bump @azure-tools/typespec-client-generator-cli
Bumps [@azure-tools/typespec-client-generator-cli](https://github.com/Azure/azure-sdk-tools) from 0.31.0 to 0.32.0.
- [Release notes](https://github.com/Azure/azure-sdk-tools/releases)
- [Commits](https://github.com/Azure/azure-sdk-tools/commits)
* Remove lodash overrides from package.json
Removed overrides for lodash in package.json
* npm update --before 2026-04-10
* Add engines section to eng/common/tsp-client/package.json
Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/61e028bc-cf10-4896-81df-690436743c69
Co-authored-by: mikeharder <9459391+mikeharder@users.noreply.github.com>
* Reorder engines section in package.json
---------
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mike Harder <mharder@microsoft.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: mikeharder <9459391+mikeharder@users.noreply.github.com>
* App Config - Startup retry (#47857)
* Refactor + Startup Retry
* Update AzureAppConfigDataLoader.java
* Adding Tests
* Updating readme, correct location
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* interval change
* fixes after merge
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update AzureAppConfigDataLoader.java
* review comments
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Sync eng/common directory with azure-sdk-tools for PR 15119 (#48802)
* Add SYSTEM_ACCESSTOKEN to Git release step
* Add SYSTEM_ACCESSTOKEN to publish-blobs.yml
---------
Co-authored-by: Ray Chen <raychen@microsoft.com>
* Check maven package published from the internal feed (#48795)
* Validated published package from internal feed
* Add comment
* Reused the package repo url variable
* Added SYSTEM_ACCESSTOKEN for azure artifact auth
* Reverted these eng common template changes
* dns: migrate azure-resourcemanager-dns from Swagger to TypeSpec (#48792)
* Remove PR condition because it is alwasy empty for PRs from forks (#48804)
Co-authored-by: Wes Haggard <Wes.Haggard@microsoft.com>
* privatedns: migrate azure-resourcemanager-privatedns from Swagger to TypeSpec (#48807)
* Update Jackson, Netty, Reactor, and Vert.x dependencies (#48636)
* Update Jackson, Netty, Reactor, and Vert.x dependencies
* Update POM validation versions
* Try to fix failing Batch tests
* Clean up linting
* Sync eng/common directory with azure-sdk-tools for PR 14973 (#48731)
* adding support for soft deleted blobs and blob versions during resource cleanup
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Isabelle <ibrandes@microsoft.com>
Co-authored-by: Isabelle <141270045+ibrandes@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Fix JVM <clinit> deadlock by removing static final accessor fields (#48689)
* Fix JVM <clinit> deadlock and CosmosItemSerializer.DEFAULT_SERIALIZER null
Fixes #48622, #48585
Replace all static final accessor fields and inline
ImplementationBridgeHelpers calls with uniform private static getter
methods. This eliminates <clinit>-time class loading that caused
permanent deadlocks under concurrent class initialization (JLS 12.4.2).
Fix CosmosItemSerializer.DEFAULT_SERIALIZER circular <clinit> —
create instance directly and move INTERNAL_DEFAULT_SERIALIZER to
parent class to prevent concurrent <clinit> between parent and child.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix review comments: remove duplicate imports, add getter pattern
- ModelBridgeInternal.java: Remove 26 duplicate ImplementationBridgeHelpers imports
- ItemBulkOperation.java: Remove 2 duplicate ImplementationBridgeHelpers imports
- SqlQuerySpecWithEncryption.java: Add private static internalDefaultSerializer()
getter (matching uniform pattern), replace inline accessor calls, remove
unused DefaultCosmosItemSerializer import
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix misleading JavaDoc on allAccessorClassesMustHaveStaticInitializerBlock test
Clarify that the test verifies accessor resolvability (via <clinit> or
initializeAllAccessors fallback), not that each class independently
registers its accessor. Structural enforcement is done by the companion
noStaticOrInstanceAccessorFieldsInConsumingClasses test.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Refactoring.
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix Cosmos Spark BannedDependencies enforcer failure - update scala-jackson.version to 2.18.6 (#48812)
* Fix Cosmos Spark BannedDependencies enforcer failure by updating scala-jackson.version
The recent Jackson dependency update (8a671dd0ca3) bumped Jackson from 2.18.4
to 2.18.6 in all Cosmos Spark child modules but missed updating the
scala-jackson.version property in the parent POM. This caused the
maven-enforcer-plugin BannedDependencies rule to reject
jackson-module-scala_2.12 and _2.13 at version 2.18.6.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* add whitespace
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [Automation] Generate SDK based on TypeSpec 0.44.3 (#48814)
* Increment package versions for appnetwork releases (#48815)
* fix: [SparkConnector] Skip readContainerThroughput when targetThroughput is configured (#48800)
* fix: skip readContainerThroughput when targetThroughput is configured and customer is using AAD
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Sync .github directory with azure-sdk-tools repository (#48822)
* [AutoPR azure-resourcemanager-azurestackhci]-generated-from-SDK Generation - Java-6144129 (#48793)
* Configurations: 'specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/tspconfig.yaml', API Version: 2026-04-01-preview, SDK Release Type: beta, and CommitSHA: 'c22e8792df237fd9afe601d69e305504679c42af' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6144129 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* fix missed version update
* Configurations: 'specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/tspconfig.yaml', API Version: 2026-04-01-preview, SDK Release Type: beta, and CommitSHA: '7f6945ba66f4adffc66a21e9700be37975a4e157' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6150443 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
---------
Co-authored-by: Weidong Xu <weidxu@microsoft.com>
* Sync eng/common directory with azure-sdk-tools for PR 15153 (#48828)
* Copilot hook script to collect user prompt telemetry
* remove bypass local dns (#48834)
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
* Fix streaming APIs in Agents and Projects libraries (#48832)
* Fix streaming APIs in Agents and Projects libraries
* add unit tests
* update HttpResponse
* remove unused logger
* remove unused import
* Sync eng/common directory with azure-sdk-tools for PR 15105 (#48835)
* remove mapping
* api version optional/removed
---------
Co-authored-by: Juan Ospina <70209456+jeo02@users.noreply.github.com>
* Update azure-ai-agents and azure-ai-projects version to 2.0.1 (#48840)
* Delete eng/common/pipelines/templates/steps/bypass-local-dns.yml (#48836)
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
* Update release date (#48842)
* update date
* format
* [Automation] Generate SDK based on TypeSpec 0.44.5 (#48826)
Co-authored-by: Weidong Xu <weidxu@microsoft.com>
* mgmt, update compute to 2025-11-01 (#48844)
* regen on 2025-11
* update handwritten code
* [AutoPR azure-resourcemanager-authorization]-generated-from-SDK Generation - Java-6131697 (#48751)
* Configurations: 'specification/authorization/resource-manager/Microsoft.Authorization/Authorization/tspconfig.yaml', API Version: 2024-07-01-preview, SDK Release Type: beta, and CommitSHA: '14ea458babe962d08b39acbb244bb81bdd3cb999' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6131697 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Update CHANGELOG.md
---------
Co-authored-by: Weidong Xu <weidxu@microsoft.com>
* [SparkConnector][No Review]FixNoClassDefFoundError for MetadataVersionUtil (#48837)
* Fix NoClassDefFoundError for MetadataVersionUtil in Cosmos Spark connector
Inline version validation logic in ChangeFeedInitialOffsetWriter instead
of depending on Spark-internal MetadataVersionUtil, which has been
relocated in Databricks Runtime 17.3 LTS (Spark 4.0).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add unit tests for inlined validateVersion logic
Add ChangeFeedInitialOffsetWriterSpec with tests covering:
- Valid version strings within supported range
- Version exceeding max supported (UnsupportedLogVersion)
- Malformed versions: non-numeric, empty, missing v prefix, v0, negative, bare v
Widen companion object visibility to private[spark] for testability.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add change feed micro-batch streaming scenarios to Databricks live test notebooks
Add structured streaming scenarios using cosmos.oltp.changeFeed to both
basicScenario.scala and basicScenarioAadManagedIdentity.scala notebooks.
These scenarios exercise the ChangeFeedInitialOffsetWriter and
HDFSMetadataLog code paths that can break on certain Spark distributions
(e.g. Databricks Runtime 17.3+).
Each scenario:
- Creates a sink container
- Reads change feed from source via readStream with micro-batch
- Writes to sink container via writeStream
- Validates records were copied
- Cleans up both containers
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix change feed streaming checkpoint path in Databricks notebooks
Use file:/tmp/ instead of /tmp/ for checkpoint location to avoid DBFS
access issues on Unity Catalog-enabled Databricks clusters. Also:
- Remove unused Trigger import
- Stop query before reading sink to avoid race conditions
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Simplify change feed streaming test to use memory sink
Replace cosmos.oltp sink with in-memory sink to eliminate the need for
a separate sink container. This avoids 404 errors from sink container
creation/resolution and removes checkpoint path concerns.
The test still exercises the full ChangeFeedInitialOffsetWriter and
HDFSMetadataLog code paths (readStream with cosmos.oltp.changeFeed),
which is the goal for validating the MetadataVersionUtil fix.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Remove change feed streaming scenarios from Databricks notebooks
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Re-add change feed streaming with shared logic in both notebooks
Both notebooks now use the same pattern: derive changeFeedCfg from the
existing cfg map (which already has the correct auth config) plus the
change feed-specific options. Write to an in-memory sink to avoid
container creation issues. This ensures both key-based and AAD/MSI
notebooks exercise identical streaming logic.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Remove change feed streaming from AAD/MSI notebook
The MSI notebook shares a cluster with basicScenario, and the Cosmos
client cache retains references from the first notebook's proactive
connection init. When basicScenario drops the source container during
cleanup, the MSI notebook's change feed streaming fails with 404 on
the cached (now-deleted) container. The change feed streaming test in
basicScenario already provides sufficient coverage for the
ChangeFeedInitialOffsetWriter code paths.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add diagnostic logging to MSI change feed streaming test
Add detailed logging to capture:
- Endpoint, database, container, auth config used
- Source container record count before streaming
- Streaming query ID
- Full exception details on failure
This will help diagnose why the change feed streaming fails
on the MSI notebook but succeeds on the key-based one.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Remove change feed streaming from MSI notebook
The MSI change feed test passes on a fresh cluster but fails when
basicScenario runs first on the same cluster without restart. The
basicScenario leaves cached Cosmos client state (proactive connection
init on the ephemeral endpoint) that causes the MSI streaming query
to resolve to the wrong endpoint, resulting in a 404. The change feed
test in basicScenario provides sufficient coverage for the
ChangeFeedInitialOffsetWriter/HDFSMetadataLog code paths.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* eng, fix analyze, move mvn auth before verify typespec (#48843)
* Release azure-cosmos-spark 4.47.0 (#48838)
* Release azure-cosmos-spark 4.47.0
Version bumps and CHANGELOG updates for:
- azure-cosmos-spark_3-3_2-12 4.47.0
- azure-cosmos-spark_3-4_2-12 4.47.0
- azure-cosmos-spark_3-5_2-12 4.47.0
- azure-cosmos-spark_3-5_2-13 4.47.0
- azure-cosmos-spark_4-0_2-13 4.47.0
Features Added:
- Added support for change feed with startFrom point-in-time on merged partitions (PR #48752)
Bugs Fixed:
- Fixed readContainerThroughput unnecessary permission requirement (PR #48800)
Also updated azure-cosmos CHANGELOG to reclassify the startFrom fix as a feature.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Address PR review: add clinit fix to CHANGELOGs and DBR 17.3 known issue
- Added JVM <clinit> deadlock fix (PR #48689) to all 5 spark connector CHANGELOGs
- Added Known Issues section to Spark 4.0 README for Structured Streaming
incompatibility with Databricks Runtime 17.3
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Reword DBR 17.3 known issue based on IcM 779484786
Updated with accurate details: MetadataVersionUtil$ class removal,
DBR 17.3 includes Spark 4.1 changes while reporting 4.0.0, and
recommendation to stay on previous LTS until DBR 18 LTS.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Remove DBR 17.3 known issue - will be fixed before release
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Update spark release date to 2026-04-17
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add MetadataVersionUtil fix to Spark 4.0 CHANGELOG (PR #48837)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [Java] Added a warm up step to cache maven-help-plugin into the CFS (#48816)
* Added a warm up step to cache maven-help-plugin into the CFS
* temp change to test docs publish
* Moved warm up step to the install-rex-validation template
* Ran command in batch mode rather than quiet mode
* Reverted test change for template ci
* Re-applied template ci change for testing
* Reverted test change
* Add service-specific skills infrastructure (find-package-skill, create-package-skill wizard, search skill) (#48833)
* Sync eng/common directory with azure-sdk-tools for PR 15134 (#48820)
* Add GitHub Action run link to APIView PR comment
Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/0a4d8e3c-c96b-4265-905c-5f8918876354
Co-authored-by: raych1 <20296335+raych1@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Ray Chen <raychen@microsoft.com>
* Apply suggestion from @raych1
* Apply suggestion from @raych1
* Pass GitHubActionRunUrl via environment variable and use IsNullOrWhiteSpace guard
Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/61d68e76-9b14-444b-b244-44d770e9a9b2
Co-authored-by: raych1 <20296335+raych1@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: raych1 <20296335+raych1@users.noreply.github.com>
Co-authored-by: Ray Chen <raychen@microsoft.com>
* Sync .github directory with azure-sdk-tools for PR 15134 (#48819)
* Add GitHub Action run link to APIView PR comment
Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/0a4d8e3c-c96b-4265-905c-5f8918876354
Co-authored-by: raych1 <20296335+raych1@users.noreply.github.com>
* Pass GitHubActionRunUrl via environment variable and use IsNullOrWhiteSpace guard
Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/61d68e76-9b14-444b-b244-44d770e9a9b2
Co-authored-by: raych1 <20296335+raych1@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: raych1 <20296335+raych1@users.noreply.github.com>
Co-authored-by: Ray Chen <raychen@microsoft.com>
* fix: CustomItemSerializer not applied correctly in queries and SqlParameter [Cosmos] (#48811)
* fix: ensure CustomItemSerializer is not applied to internal query pipeline structures and is applied to SqlParameter serialization
---------
Co-authored-by: Annie Liang <xinlian@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* regen w new SHA + customizations (#48479)
* regen w new SHA + customizations
* updated changes from PR comment
* regen with latest SHA
* re-record tests and removed tests for old features
* fix typos in skill reference .md
* additional fix
* fix: move SearchServiceVersion customizations to SearchCustomizations.java for CI compliance
* fix: remove unused imports and update test recordings
* fix: remove unused BinaryData import
* updated tests to 2026-04-01 version
* regen w proper SHA
* Add knowledge samples
* fix: remove src_embed from generated files
* remove unnecessary plugin
* regen with typespec-java@0.43.0
* Revert "regen with typespec-java@0.43.0"
This reverts commit fbd62ca89d457e65ed8caf23229d94c43f9922e1.
* regen
* remove permission filter / related files, regen
* Regenerate with latest hash. Update tests and update customizations
* address comments and regen with updated SHA
* remove unnecessary file
* update renamed KB references
* update references to searchindexingbufferedsenderbuilder
* fix code for renames + apply spotless formatting
* fix test
* regen from tsp
* fix linting issues
* updated disabled tests
* address second apireview comments
* revert unnecessary changes
* fixed build issues
* version bump and list methods fix
* update version in pom
* update version in version client
* make nextLink and nextPageParameters internal
* regen with accept headers fix
* fix linting issues and re-run tests
* fixed broken link
* regen with tsp changes
* regen
* fix comments
* re-trigger CI
* fix return type
* pull in skills files
* remove duplicate PascalCase skills directory
---------
Co-authored-by: efrainretana <141282336+efrainretana@users.noreply.github.com>
* Fix background database account refresh stopping in multi-writer accounts (#48758)
* Fix background database account refresh stopping in multi-writer accounts
In multi-writer accounts, refreshLocationPrivateAsync() stops the background
refresh timer when shouldRefreshEndpoints() returns false. This means topology
changes (e.g., multi-write to single-write transitions) go undetected until
the next explicit refresh trigger.
The .NET SDK (azure-cosmos-dotnet-v3) correctly continues the background
refresh loop unconditionally - the loop only stops when canRefreshInBackground
is explicitly false, not when shouldRefreshEndpoints returns false.
This fix adds startRefreshLocationTimerAsync() to the else-branch of
refreshLocationPrivateAsync(), ensuring the background timer always reschedules
itself regardless of whether endpoints currently need refreshing.
Without this fix, after a multi-write -> single-write -> multi-write transition,
reads remain stuck on the primary region because the SDK never re-reads account
metadata to learn about the restored multi-write topology.
Unit tests updated:
- backgroundRefreshForMultiMaster: assertTrue (timer must keep running)
- backgroundRefreshDetectsTopologyChangeForMultiMaster: new test proving
MW->SW transition detection via mock
Related: PR #6139 (point #4 in description acknowledged this bug)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add DR drill test results (4 scenarios: MW offline, MW transitions, SW switch, SW offline)
Kusto-backed evidence with charts for PR #48758 validation.
Accounts: bgrefresh-mw-test-440 (multi-writer), bgrefresh-sw-test-440 (single-writer)
Branch: fix/background-refresh-multi-writer @ 2048abeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Revert "Add DR drill test results (4 scenarios: MW offline, MW transitions, SW switch, SW offline)"
This reverts commit c9fc5c49284e92dfafd650569c82aed5d609105c.
* Restart background timer on force-refresh path (403/3 driven)
The forceRefresh=true path in refreshLocationAsync() updates the
LocationCache but never restarts the background timer. After a
MW→SW transition triggered by 403/3, the timer stays dead and the
SDK never detects MW re-enablement — traffic stays pinned to the
SW write region permanently.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add jitter (0-15s) to background refresh interval to prevent thundering herd
Configurable via COSMOS.BACKGROUND_REFRESH_LOCATION_JITTER_MAX_IN_SECONDS
(default 15). Spreads refresh calls from many CosmosClient instances to
avoid overwhelming the compute gateway.
Jitter is skipped during initialization (zero delay for first refresh).
Tests set jitter to 0 for deterministic behavior.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Disable background refresh jitter in GatewayServiceConfigurationReaderTest
The background refresh jitter (0-15s) added to prevent thundering herd
causes the refresh interval to exceed the 2-second sleep windows used
by this test. Disable jitter so the background refresh fires predictably.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Sync eng/common directory with azure-sdk-tools for PR 15192 (#48857)
* Add CODEOWNERS verification pipeline step and script
Add verify-codeowners.yml pipeline template step and
Test-CodeownersForArtifacts.ps1 script to validate that packages
intended for release have sufficient CODEOWNERS coverage.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Review feedback
* Fail closed on missing release status
---------
Co-authored-by: Daniel Jurek <djurek@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Failed-[AutoPR azure-resourcemanager-relationships]-generated-from-SDK Generation - Java-6084812 (#48645)
* Configurations: 'specification/relationships/Relationships.Management/tspconfig.yaml', API Version: 2023-09-01-preview, SDK Release Type: beta, and CommitSHA: 'ab5c0abaf718ad3ad3328695dc8e1eb5b3bfd38c' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6084812 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Configurations: 'specification/relationships/Relationships.Management/tspconfig.yaml', API Version: 2023-09-01-preview, SDK Release Type: beta, and CommitSHA: '843ab81f0fb6e0d22bca64e1c73ffe64d1681ca9' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6103940 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
---------
Co-authored-by: Meghana Gupta <93553451+meghanagupta95@users.noreply.github.com>
* [AutoPR azure-resourcemanager-containerservice]-generated-from-SDK Generation - Java-6178330 (#48863)
* Configurations: 'specification/containerservice/resource-manager/Microsoft.ContainerService/aks/tspconfig.yaml', API Version: 2026-02-01, SDK Release Type: stable, and CommitSHA: '8b2ae2cd4aaa5292b115bb38663f722b8a694235' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6178330 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Configurations: 'specification/containerservice/resource-manager/Microsoft.ContainerService/aks/tspconfig.yaml', API Version: 2026-02-01, SDK Release Type: stable, and CommitSHA: '8b2ae2cd4aaa5292b115bb38663f722b8a694235' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6178396 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Update CHANGELOG.md
* Update CHANGELOG.md
---------
Co-authored-by: Weidong Xu <weidxu@microsoft.com>
* Increment package versions for containerservice releases (#48867)
* update spring-reference.yml (#48866)
* Merge to main after spring cloud azure 7.2.0 released (#48865)
* Increment package versions for kubernetesconfiguration releases (#48870)
* Increment package versions for cosmos releases (#48852)
* [ContentUnderstanding] Add usage details to invoice sample and tests (#48839)
* add usage into invoice sample
* revise per copilot comments
* Failed-[AutoPR azure-resourcemanager-computelimit]-generated-from-SDK Generation - Java-6087535 (#48650)
* Configurations: 'specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/tspconfig.yaml', API Version: 2026-03-20, SDK Release Type: stable, and CommitSHA: 'a83147fe12aece4ded0bd96be212e5242e087cb9' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6087535 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Configurations: 'specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/tspconfig.yaml', API Version: 2026-03-20, SDK Release Type: stable, and CommitSHA: 'cca5b9fb049544c3bd14869f1642d4cc0187ef00' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6087783 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Configurations: 'specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/tspconfig.yaml', API Version: 2026-03-20, SDK Release Type: stable, and CommitSHA: 'd12a591062fc42adbad8c0105094f3de018a71b7' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6113665 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
---------
Co-authored-by: Hebin Huang <hebin_huang@hotmail.com>
* Configurations: 'specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml', API Version: 2025-03-01, SDK Release Type: stable, and CommitSHA: '41aa2e9f20cb7d28653078638d143bb0272658a3' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6116006 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. (#48704)
Co-authored-by: weidongxu-microsoft <53292327+weidongxu-microsoft@users.noreply.github.com>
* Configurations: 'specification/horizondb/resource-manager/Microsoft.HorizonDb/HorizonDb/tspconfig.yaml', API Version: 2026-01-20-preview, SDK Release Type: beta, and CommitSHA: 'f6e1fbd6268be7712bf96a516ba846f7d42e2baa' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6080421 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. (#48632)
Co-authored-by: Weidong Xu <weidxu@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix Netty ByteBuf leak in GatewayServerErrorInjector fault injection delay paths (#48880)
When fault injection simulates a response delay, the real HTTP response body
was discarded without draining its ByteBuf content. Under HTTP/2, this causes
ByteBuf leaks that accumulate on the long-lived parent channel.
Two leak paths fixed:
- delay >= timeout: doOnNext drains body before delayElement buffers it
- delay < timeout: doOnDiscard releases body if downstream cancels during delay
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [cosmos] Fix ClientTelemetry static-init NPE when IMDS access is disabled (#48888)
* Add regression test for IMDS-disabled ClientTelemetry init
* Fix ClientTelemetry initialization when IMDS access is disabled
* Update CHANGELOG.md
* Update ClientConfigDiagnosticsTest.java
* Add vnext emulator stages back to public CI pipeline (#48737)
* Add vnext emulator stages back to public CI pipeline
Remove the internal-only guard ({{ if eq(variables['System.TeamProject'], 'internal') }})
from the VNext emulator test stages in cosmos-sdk-client.yml so they run
on both public and internal CI pipelines.
The Skip.VnextEmulator variable condition is preserved for opt-out.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Adding dummy change to trigger CI
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Update-DocsMsToc.ps1 - Use powershell-yaml 0.4.12, include fixes for breaking behavior change. (#48892)
Co-authored-by: Daniel Jurek <djurek@microsoft.com>
* fix bot comment on azure-ai-transcription sdk apiview (#48889)
* fix bot comment on apiview
* Fix lint: drop @ServiceMethod on convenience transcribeWithResponse(TranscriptionOptions) overload
The Checkstyle ServiceClientCheck requires sync methods annotated with @ServiceMethod to take Context/RequestOptions/RequestContext. The convenience overload only takes TranscriptionOptions, so the annotation is removed. Also drops unused ClientLogger imports/fields and fixes javadoc rendering in the customization.
* update changelog
* Consolidate documentation into docs/ hub (#48730)
* Increment package versions for ai releases (#48847)
* mgmt, Migrate monitor (#48845)
* add code owners for transcription sdk (#48898)
* Bump @azure-tools/typespec-client-generator-cli (#48896)
Bumps [@azure-tools/typespec-client-generator-cli](https://github.com/Azure/azure-sdk-tools) from 0.32.0 to 0.32.1.
- [Release notes](https://github.com/Azure/azure-sdk-tools/releases)
- [Commits](https://github.com/Azure/azure-sdk-tools/commits)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Enhance HttpResponse to include new method to return InputStream (#48858)
* Enhance HttpResponse to include new method to return InputStream
* changelog
* update unit tests and change package for flux inputstream
* spotless formatting
* Wagamber/java transcription sdk - apiview fix - add javadoc required (#48897)
* add javadoc required
* update tspconfig with latest commit
* Regenerate ProfanityFilterMode for updated spec pin
* Remove cosmos filter from pullrequest build definition (#48879)
* Remove cosmos filter from pullrequest build definition
Remove sdk/cosmos/ exclusion from pullrequest.yml trigger paths
and ExcludePaths parameter so cosmos changes go through the standard
PR validation pipeline.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* pullrequest pipeline excludes cosmos, cosmos still triggers properly
* remove the triggering file that I was using to test
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix broken link (#48901)
* fix broken link
* fix link verification error
* Increment package versions for transcription releases (#48905)
* [AutoPR azure-resourcemanager-iotoperations]-generated-from-SDK Generation - Java-6132589 (#48754)
* Configurations: 'specification/iotoperations/IoTOperations.Management/tspconfig.yaml', API Version: 2026-03-01, SDK Release Type: stable, and CommitSHA: '0238251ff4a7b2404ec0110599b845b15d7fdd7f' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6132589 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Update pom.xml
---------
Co-authored-by: Weidong Xu <weidxu@microsoft.com>
Co-authored-by: Byron Jin <146121964+byronjinmsft@users.noreply.github.com>
* [AutoPR azure-resourcemanager-compute]-generated-from-SDK Generation - Java-6183423 (#48883)
* Configurations: 'specification/compute/resource-manager/Microsoft.Compute/Compute/tspconfig.yaml', API Version: 2025-11-01, SDK Release Type: stable, and CommitSHA: '1e6111d12c709c3395fb8546e311b6c67fd87efc' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6183423 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Update CHANGELOG.md
* Update CHANGELOG.md
---------
Co-authored-by: Weidong Xu <weidxu@microsoft.com>
* Patch Sparse Checkout (#48907)
* updates to patch sparse checkout to account for spring and cosmos while they are still excluded from the build list
* Update eng/scripts/Generate-ServiceDirectories-From-Project-List.ps1
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Configurations: 'specification/dataprotection/resource-manager/Microsoft.DataProtection/DataProtection/tspconfig.yaml', API Version: 2026_03_01, SDK Release Type: beta, and CommitSHA: '32ab0a3f798fed9517cb4026e47144251ea9331e' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6095332 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. (#48666)
* Use HttpResponse.getBodyAsInputStreamSync() in azure-ai-agents and azure-ai-projects (#48916)
* Update docs links to point to main. (#48906)
* update links to point to main.
* fix links
* update docs
* Update README.md
* [Cosmos] Docs: clarify 449 RetryWith retry behavior is Direct-mode only (#48913)
* Docs: clarify 449 RetryWith retry behavior is Direct-mode only
The 449 RetryWith status code is automatically retried by the SDK only in
Direct (TCP) mode via RetryWithRetryPolicy (nested in
GoneAndRetryWithRetryPolicy, wired in ReplicatedResourceClient). In Gateway
(HTTPS) mode the SDK does not retry 449 client-side; the gateway runs its
own internal RNTBD RetryWith loop on the gateway-to-backend connection, and
if that loop is exhausted the 449 propagates to the SDK and surfaces to the
caller. Update both ErrorCodesAndRetries.md and StatusCodes.md to make this
distinction explicit.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Docs: fix 404/1002 mislabel and complete truncated 408 bullet
- 404/1002 row: remove the misleading 'For Write Operations:' wrapper
(404/1002 / ReadSessionNotAvailable is a read-side condition only) and
state up-front that writes do not produce 404/1002.
- 408 row: complete the truncated 'If this is due to a network error:'
bullet so the client-generated timeout retry path is documented
(same path as a client-generated 410, with cross-region failover
for multi-region accounts).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Docs: address Copilot review feedback on 449 wording
- ErrorCodesAndRetries.md: reword .NET-style 'CosmosException(StatusCode = 449)'
to idiomatic Java phrasing ('a CosmosException with status code 449').
- StatusCodes.md: change the 'Expected to be transient' column for 449 from
'Yes (Direct mode only)' to 'Yes'. The condition itself is transient
regardless of SDK connection mode; the Direct vs Gateway retry nuance
already lives in the Additional info column.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Kushagra Thapar <kushagrathapar@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [Spark connector]Added spark 4.1 support (#48861)
* Added support for spark 4.1
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add exception handler on HTTP/2 parent channel to suppress WARN logs (#48890)
* Add exception handler on HTTP/2 parent channel to suppress WARN logs
In HTTP/2, reactor-netty multiplexes streams on a shared parent TCP connection.
The parent channel pipeline has no ChannelOperationsHandler (unlike HTTP/1.1),
so TCP-level exceptions like Connection reset by peer (ECONNRESET) propagate to
Netty's TailContext, which logs them as WARN.
This adds Http2ParentChannelExceptionHandler to the parent chan…
* inner loop, add update-meta-data script (#48014)
* inner loop, add update-meta-data script
* remove ci.yaml updates
* Add CI.yml provisioning and update support
Adds CI.yml update as Step 4 in the metadata update script, ported
from the Python implementation in eng/automation/utils.py.
Supported cases:
- Create new ci.yml from template for brand-new services
- Add artifact entry to existing ci.yml (with/without release params)
- Rename ci.yml to ci.data.yml when SDKType=data and create new ci.yml
- Skip when module already exists (idempotent)
- Management-plane packages get default: false for release param
- Data-plane packages get default: true for release param
Fixes https://github.com/Azure/azure-sdk-tools/issues/13808
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* resolve comments
* Fail metadata update for unsupported SDK types
Add groupId validation to reject unsupported SDK types (e.g., com.azure.spring).
Only com.azure and com.azure.resourcemanager are supported. Uses LogError
with the package path for clear diagnostics before exiting.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Increment package versions for search releases (#48651)
* [Compute] Migrate SDK to generate from TypeSpec (#48646)
* Failed-[AutoPR azure-resourcemanager-azurestackhci]-generated-from-SDK Generation - Java-6084367 (#48644)
* Configurations: 'specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/tspconfig.yaml', API Version: 2026-02-01, SDK Release Type: stable, and CommitSHA: 'aa591176e14ed29f96ebf1e3899e4356df7f13dd' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6084367 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Configurations: 'specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/tspconfig.yaml', API Version: 2026-02-01, SDK Release Type: stable, and CommitSHA: '90d424dc756608a8788ce35b8188c7e82c684f4c' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6086791 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Configurations: 'specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/tspconfig.yaml', API Version: 2026-02-01, SDK Release Type: stable, and CommitSHA: 'dcaa77fcd61105315164a986dd185219331a76a5' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6090571 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* [Redis] Migrate SDK to TypeSpec (#48659)
* Regenerate Redis SDK from TypeSpec, add revapi suppressions
- Regenerated SDK code from TypeSpec
- Added module-info.java opens for implementation.models
- Added revapi suppressions for:
- Read-only model constructors made private
- Read-only model setters removed
- OperationStatusResult setters visibility reduced
- Pageable ListResult classes moved to implementation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Regenerate Redis SDK with alternateType fix for percentComplete
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Regenerate Redis SDK - all revapi checks pass
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Restore changelog from main, update tsp-location.yaml
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Update tsp-location.yaml to specs PR commit
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* commit on main
* record
* fix tsp-location
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Removing boxed types for nregion property check (#48656)
* Removing boxed types for nregion property check
* updating javadoc and adding changelog
* Failed-[AutoPR azure-resourcemanager-containerservice]-generated-from-SDK Generation - Java-6083044 (#48641)
* Configurations: 'specification/containerservice/resource-manager/Microsoft.ContainerService/aks/tspconfig.yaml', API Version: 2026-01-02-preview, SDK Release Type: beta, and CommitSHA: 'f43cd0ba56f868747a1e85155becbf6d3849f725' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6083044 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* revapi suppress
* ut, skip a field that only exists in preview
* fix lint
* Configurations: 'specification/containerservice/resource-manager/Microsoft.ContainerService/aks/tspconfig.yaml', API Version: 2026-01-02-preview, SDK Release Type: beta, and CommitSHA: '94db7d273945296435e15719fd0ade793fdcf7d2' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6085712 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Configurations: 'specification/containerservice/resource-manager/Microsoft.ContainerService/aks/tspconfig.yaml', API Version: 2026-01-02-preview, SDK Release Type: beta, and CommitSHA: 'b684aff3319ffa5784a8b8d19d6af5adf168a4bb' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6085899 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
---------
Co-authored-by: Weidong Xu <weidxu@microsoft.com>
* eng, bump @azure-tools/typespec-azure-resource-manager 0.66.1 (#48668)
* Increment package versions for ai releases (#48635)
* Increment package versions for commerce releases (#48236)
* [AutoPR azure-resourcemanager-playwright]-generated-from-SDK Generation - Java-6092967 (#48660)
* Configurations: 'specification/loadtestservice/resource-manager/Microsoft.LoadTestService/playwright/tspconfig.yaml', API Version: 2026-02-01-preview, SDK Release Type: beta, and CommitSHA: 'dfc0b2356c41c538250f3309f1a35f4cb1bf4e34' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6092967 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Update release date for 1.1.0-beta.1
Updated release date for version 1.1.0-beta.1 in CHANGELOG.
---------
Co-authored-by: Kashish Gupta <90824921+kashish2508@users.noreply.github.com>
* Configurations: 'specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml', API Version: 2025-03-01, SDK Release Type: stable, and CommitSHA: '0758803aaaacc14ce831053cf0eb592e09e14f93' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6067536 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. (#48593)
Co-authored-by: prasannajsns <33145176+prasannajsns@users.noreply.github.com>
* Increment package versions for containerservice releases (#48669)
* Increment package versions for confluent releases (#48670)
* [Automation] Generate SDK based on TypeSpec 0.43.3 (#48672)
* Update Spring Boot and Spring Cloud versions for the Spring compatibility tests. (#48679)
This commit is created by GitHub Action: https://github.com/Azure/spring-cloud-azure-tools/actions/runs/23928117451
Co-authored-by: github-actions <github-actions@github.com>
* [EventHubs] Migrate to TypeSpec (#48673)
* Clean up azure-identity README (#48685)
* Clean up azure-identity README
- Fix typo: 'used by to' -> 'used to'
- Remove redundant DefaultAzureCredential and ManagedIdentityCredential code examples
- Update credential chain and managed identity reference links
- Improve Markdown table formatting
- Fix indentation and whitespace issues
* Update sdk/identity/azure-identity/README.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Sync eng/common directory with azure-sdk-tools for PR 14890 (#48686)
* Allow azure-sdk PRs to bypass CODEOWNERS section check and rename CodeownersChanged to ShouldCheckCodeownersEdits
Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/6acbd501-14e8-4108-9213-c49d035fb815
Co-authored-by: danieljurek <2158838+danieljurek@users.noreply.github.com>
* Use gh pr view to detect PR author instead of Build.RequestedFor
Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/e2fb79aa-7ed3-45dd-a0ba-3ebb24b10e4b
Co-authored-by: danieljurek <2158838+danieljurek@users.noreply.github.com>
* Reorder logic: check CODEOWNERS changed before gh API call, remove stderr capture
Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/747d7c1f-ba14-4781-83e1-6b80bf475318
Co-authored-by: danieljurek <2158838+danieljurek@users.noreply.github.com>
* Replace gh CLI with Invoke-RestMethod for PR author detection
Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/56bb56b5-f097-48df-90ab-de347a28634f
Co-authored-by: danieljurek <2158838+danieljurek@users.noreply.github.com>
* Add retry parameters to Invoke-RestMethod for PR author lookup
Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/d8f97723-9352-41c9-8005-356bde3313c4
Co-authored-by: danieljurek <2158838+danieljurek@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: danieljurek <2158838+danieljurek@users.noreply.github.com>
* March 2026 Patches Merge-back (#48665)
* March 2026 Patches Merge-back: update dependency versions, CHANGELOGs, pom.xml and README.md files
Agent-Logs-Url: https://github.com/Azure/azure-sdk-for-java/sessions/87bdcc7a-92a5-466f-96b5-98cc5e322403
Co-authored-by: jairmyree <67484440+jairmyree@users.noreply.github.com>
* Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Revert changes on v2 libraries.
* mgmt, prepare 2.61.0 (#48681)
* Update azure-resourcemanager current version to 2.61.0
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Run update_versions.py --sr to update pom versions
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Update resourcemanager README versions for 2.61.0
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Update CHANGELOG.md for azure-resourcemanager 2.61.0 release
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Increment package versions for resourcemanager releases (#48684)
* March 2026 Patches Merge-back (#48694)
* Initial plan
* Revert all README.md changes to match main
Agent-Logs-Url: https://github.com/Azure/azure-sdk-for-java/sessions/5b58e210-1356-48b4-985d-71902dbda698
Co-authored-by: jairmyree <67484440+jairmyree@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jairmyree <67484440+jairmyree@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jairmyree <67484440+jairmyree@users.noreply.github.com>
Co-authored-by: Jair Myree <jairmyree@microsoft.com>
Co-authored-by: Xiaofei Cao <92354331+XiaofeiCao@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
* Sync eng/common directory with azure-sdk-tools for PR 14922 (#48696)
* Add rust to prepare-pipelines
* Use existing rust info with narrower variable group specifications
* Space
---------
Co-authored-by: Daniel Jurek <djurek@microsoft.com>
* [Key Vault Certificates] Remove preview service version from GA library (#48678)
* [Key Vault Certificates] Remove preview service version from GA library
Remove V2025_06_01_PREVIEW from CertificateServiceVersion as preview
service versions should not be included in GA versions of the library.
Also update getLatest() to return V2025_07_01 (the new stable version)
and remove the preview entry from the CHANGELOG.
* Revert getLatest() to V7_6 to fix playback test failures
Changing getLatest() to V2025_07_01 caused all playback tests to fail
because existing recordings were made against API version 7.6. Reverting
getLatest() to V7_6 — only the removal of V2025_06_01_PREVIEW is in scope
for this PR.
* Remove 2025-06-01-preview from customization version list
The customization class generates CertificateServiceVersion.java with a
hardcoded list of API versions. Preview service versions should not be
included in GA library releases. Removing '2025-06-01-preview' from the
list so that the generated output matches the committed file and the
TypeSpec code generation verify check passes.
* Update CertificateServiceVersion.getLatest() to V2025_07_01 and re-record tests
- Updated getLatest() to return V2025_07_01 in both CertificateServiceVersion.java
and CertificatesCustomizations.java (the TypeSpec code-gen source of truth)
- Re-recorded all tests against live Azure Key Vault using API version 2025-07-01
- Updated assets.json with new recording tag: java/keyvault/azure-security-keyvault-certificates_665470077b
* Re-record CertificateAsyncClientTest against live 2025-07-01 API
Updated assets.json tag to include async test recordings:
java/keyvault/azure-security-keyvault-certificates_8643a442b1
All 159 playback tests now pass (2 skipped).
* Re-record mergeCertificate tests with JDK 8 for api-version 2025-07-01
* Retrigger CI
---------
Co-authored-by: singhalrohit <singhalrohit@microsoft.com>
* Set default service version to 2025-07-01 for keyvault secrets (#48690)
* Set default service version to 2025-07-01 for keyvault secrets
- Added V2025_07_01 enum constant to SecretServiceVersion
- Updated getLatest() to return V2025_07_01
- Updated SecretsCustomizations.java codegen to include 2025-07-01
- Re-recorded all tests (sync + async) against live service with 2025-07-01
* Add CHANGELOG entry for 2025-07-01 service version support
Agent-Logs-Url: https://github.com/Azure/azure-sdk-for-java/sessions/2124764f-44a6-4fa3-bed7-60d87aea7f67
Co-authored-by: rohitsinghal4u <5697065+rohitsinghal4u@users.noreply.github.com>
---------
Co-authored-by: Rohit Singhal <singhalrohit@microsoft.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: rohitsinghal4u <5697065+rohitsinghal4u@users.noreply.github.com>
* fix: reset metrics registry per benchmark cycle (#48695)
Fix: create a fresh CompositeMeterRegistry, SimpleMeterRegistry, and
CsvMetricsReporter for each cycle.
Co-authored-by: Annie Liang <xinlian@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Temporarily Disabling Immutable Storage with Versioning Tests During Diagnostics (#48701)
* Release azure-cosmos 4.79.1 (#48700)
* Release azure-cosmos 4.79.1
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Increment package versions for playwright releases (#48692)
* Increment package versions for cosmos releases (#48705)
* sync PR for config update (#48712)
Co-authored-by: anannya03 <aaniee09@gmail.com>
* Added pip auth step for using internal feed (#48717)
* [AutoPR azure-resourcemanager-deviceregistry]-generated-from-SDK Generation - Java-6118507 (#48709)
* Configurations: 'specification/deviceregistry/DeviceRegistry.Management/tspconfig.yaml', API Version: 2026-03-01-preview, SDK Release Type: beta, and CommitSHA: '768bdb4b9b7a4fa1dab0b5f22f0dc285341c6374' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6118507 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Add live test for Credentials and Policies flow (2026-03-01-preview)
---------
Co-authored-by: Suat Iskender <suatiskender@microsoft.com>
* Added npm auth step to internal feed (#48720)
* Added npm auth step to internal feed
* Added root nuget config to disable non-cfs feed
* Configurations: 'specification/storagemover/StorageMover.Management/tspconfig.yaml', API Version: 2025-12-01, SDK Release Type: stable, and CommitSHA: '55fc3e7d12df68485d19b10847f24c95579a06f4' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6110797 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. (#48691)
* Migrate authorization (#48721)
* Prepare March 2026 BOM Release (#48711)
* Prepare March 2026 BOM Release
* Prepare March 2026 BOM Release
* Sync eng/common directory with azure-sdk-tools for PR 14918 (#48710)
* use doc-warden from feed directly. no more pypi
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
* [keyvault] azure-security-keyvault-certificates: set release date to 2026-04-07 for 4.9.0-beta.1 (#48722)
Co-authored-by: singhalrohit <singhalrohit@microsoft.com>
* Increment package versions for deviceregistry releases (#48728)
* [ServiceBus] Migrate azure-resourcemanager-servicebus to TypeSpec (#48724)
* migrate network to generate from typespec (#48609)
* Increment package versions for keyvault releases (#48741)
* Sync eng/common directory with azure-sdk-tools for PR 15020 (#48743)
* override lodash to latest
* npm i
---------
Co-authored-by: Mike Harder <mharder@microsoft.com>
* Migrate sql (#48725)
* Increment package versions for keyvault releases (#48748)
* Sync eng/common directory with azure-sdk-tools for PR 15041 (#48750)
* fix the deps installation
* Update eng/common/scripts/Verify-Readme.ps1
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
Co-authored-by: Scott Beddall <45376673+scbedd@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Use mirror settings for CFS in CI (#48718)
* Turned back using mirror settings for CFS in CI
* Restore POM repository overrides for local dev CFS routing
Keep <repositories> and <pluginRepositories> blocks in POMs so local
development continues to route through CFS (no-auth) by default.
The CI mirror settings in eng/settings.xml handle the tools/extensions
that don't respect POM-level repos.
* Updated contributing doc
* Added clarification for using mirror settings locally
* Added azure-artifacts folder to gitignore
* Azd error handling modification (#47975)
* rebase-1
* fixed a null case
* Update sdk/identity/azure-identity/CHANGELOG.md
Co-authored-by: Scott Addie <10702007+scottaddie@users.noreply.github.com>
---------
Co-authored-by: Scott Addie <10702007+scottaddie@users.noreply.github.com>
* Disable MSAL's internal retry (#48472)
* Disable MSAL's internal retry
* fixed retry
* fixed formatting
* fixed tests and checkstyle issues
* Recover from local version parsing failures in install (#48756)
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>
* Enable CHANGE_FEED_WITH_START_TIME_POST_MERGE SDK capability (#48752)
Enable the CHANGE_FEED_WITH_START_TIME_POST_MERGE capability flag in
SUPPORTED_CAPABILITIES so the backend allows IfModifiedSince headers
on merged partitions for change feed requests.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* eng, remove api-version required check, and infer sdk release type from api-version if not provided (#48706)
* infer sdk release type
* ensure revapi.skip=true in generated pom.xml for beta releases
When SDK release type is beta (either explicitly passed or inferred from
api-version), ensure <revapi.skip>true</revapi.skip> is present in the
generated pom.xml: add it if missing, or change false to true.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* remove generate_beta_sdk parameter from generate_typespec_project
The preview version is set again after generation with the correct
release_beta_sdk value, so the pre-generation call defaults to True.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* update revapi.skip for both beta and stable releases
Renamed ensure_revapi_skip to update_revapi_skip. Now sets revapi.skip=true
for beta releases and revapi.skip=false for stable releases.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* add unit tests for update_revapi_skip
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [Automation] Generate SDK based on TypeSpec 0.44.0 (#48747)
* cdn, remove handwritten code on properties that still in preview (#48763)
* Add throughput bucket samples for Cosmos Spark connector (#48734)
Add Python (.ipynb) and Scala sample notebooks demonstrating
server-side throughput bucket configuration as an alternative
to SDK-based global throughput control.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Making a fix to compare sessionid on the message and the sessionid on the link filter in a case-insensitive way. (#48759)
* Making a fix to compare sessionid on the message and the link filter in a case insensite way.
* Fixing one build error.
* Sync .github directory with azure-sdk-tools for PR 15048 (#48770)
* Add SDK Validation check name filter to post-apiview workflow
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fixed format issue
---------
Co-authored-by: Ray Chen <raychen@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Combined settings for signing and release stages (#48761)
* Combined settings for signing and release stages
* Updated path to the sparse checkout one
* Use full qualified name for gpg plugin
* [MSI] Regenerate SDK from TypeSpec (#48767)
* Regenerate MSI SDK from TypeSpec with revapi suppressions
- Updated module-info.java to open implementation.models to azure.core
- Added revapi suppressions for ListResult class removals, OperationDisplay constructor/setter changes
- New models: AssignmentRestrictions, ClaimsMatchingExpression, SystemAssignedIdentityProperties
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* record
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [Automation] Generate SDK based on TypeSpec 0.44.2 (#48790)
* Sync eng/common directory with azure-sdk-tools for PR 14920 (#48779)
* Bump @azure-tools/typespec-client-generator-cli
Bumps [@azure-tools/typespec-client-generator-cli](https://github.com/Azure/azure-sdk-tools) from 0.31.0 to 0.32.0.
- [Release notes](https://github.com/Azure/azure-sdk-tools/releases)
- [Commits](https://github.com/Azure/azure-sdk-tools/commits)
* Remove lodash overrides from package.json
Removed overrides for lodash in package.json
* npm update --before 2026-04-10
* Add engines section to eng/common/tsp-client/package.json
Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/61e028bc-cf10-4896-81df-690436743c69
Co-authored-by: mikeharder <9459391+mikeharder@users.noreply.github.com>
* Reorder engines section in package.json
---------
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mike Harder <mharder@microsoft.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: mikeharder <9459391+mikeharder@users.noreply.github.com>
* App Config - Startup retry (#47857)
* Refactor + Startup Retry
* Update AzureAppConfigDataLoader.java
* Adding Tests
* Updating readme, correct location
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* interval change
* fixes after merge
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update AzureAppConfigDataLoader.java
* review comments
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Sync eng/common directory with azure-sdk-tools for PR 15119 (#48802)
* Add SYSTEM_ACCESSTOKEN to Git release step
* Add SYSTEM_ACCESSTOKEN to publish-blobs.yml
---------
Co-authored-by: Ray Chen <raychen@microsoft.com>
* Check maven package published from the internal feed (#48795)
* Validated published package from internal feed
* Add comment
* Reused the package repo url variable
* Added SYSTEM_ACCESSTOKEN for azure artifact auth
* Reverted these eng common template changes
* dns: migrate azure-resourcemanager-dns from Swagger to TypeSpec (#48792)
* Remove PR condition because it is alwasy empty for PRs from forks (#48804)
Co-authored-by: Wes Haggard <Wes.Haggard@microsoft.com>
* privatedns: migrate azure-resourcemanager-privatedns from Swagger to TypeSpec (#48807)
* Update Jackson, Netty, Reactor, and Vert.x dependencies (#48636)
* Update Jackson, Netty, Reactor, and Vert.x dependencies
* Update POM validation versions
* Try to fix failing Batch tests
* Clean up linting
* Sync eng/common directory with azure-sdk-tools for PR 14973 (#48731)
* adding support for soft deleted blobs and blob versions during resource cleanup
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Isabelle <ibrandes@microsoft.com>
Co-authored-by: Isabelle <141270045+ibrandes@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Fix JVM <clinit> deadlock by removing static final accessor fields (#48689)
* Fix JVM <clinit> deadlock and CosmosItemSerializer.DEFAULT_SERIALIZER null
Fixes #48622, #48585
Replace all static final accessor fields and inline
ImplementationBridgeHelpers calls with uniform private static getter
methods. This eliminates <clinit>-time class loading that caused
permanent deadlocks under concurrent class initialization (JLS 12.4.2).
Fix CosmosItemSerializer.DEFAULT_SERIALIZER circular <clinit> —
create instance directly and move INTERNAL_DEFAULT_SERIALIZER to
parent class to prevent concurrent <clinit> between parent and child.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix review comments: remove duplicate imports, add getter pattern
- ModelBridgeInternal.java: Remove 26 duplicate ImplementationBridgeHelpers imports
- ItemBulkOperation.java: Remove 2 duplicate ImplementationBridgeHelpers imports
- SqlQuerySpecWithEncryption.java: Add private static internalDefaultSerializer()
getter (matching uniform pattern), replace inline accessor calls, remove
unused DefaultCosmosItemSerializer import
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix misleading JavaDoc on allAccessorClassesMustHaveStaticInitializerBlock test
Clarify that the test verifies accessor resolvability (via <clinit> or
initializeAllAccessors fallback), not that each class independently
registers its accessor. Structural enforcement is done by the companion
noStaticOrInstanceAccessorFieldsInConsumingClasses test.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Refactoring.
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix Cosmos Spark BannedDependencies enforcer failure - update scala-jackson.version to 2.18.6 (#48812)
* Fix Cosmos Spark BannedDependencies enforcer failure by updating scala-jackson.version
The recent Jackson dependency update (8a671dd0ca3) bumped Jackson from 2.18.4
to 2.18.6 in all Cosmos Spark child modules but missed updating the
scala-jackson.version property in the parent POM. This caused the
maven-enforcer-plugin BannedDependencies rule to reject
jackson-module-scala_2.12 and _2.13 at version 2.18.6.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* add whitespace
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [Automation] Generate SDK based on TypeSpec 0.44.3 (#48814)
* Increment package versions for appnetwork releases (#48815)
* fix: [SparkConnector] Skip readContainerThroughput when targetThroughput is configured (#48800)
* fix: skip readContainerThroughput when targetThroughput is configured and customer is using AAD
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Sync .github directory with azure-sdk-tools repository (#48822)
* [AutoPR azure-resourcemanager-azurestackhci]-generated-from-SDK Generation - Java-6144129 (#48793)
* Configurations: 'specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/tspconfig.yaml', API Version: 2026-04-01-preview, SDK Release Type: beta, and CommitSHA: 'c22e8792df237fd9afe601d69e305504679c42af' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6144129 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* fix missed version update
* Configurations: 'specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/tspconfig.yaml', API Version: 2026-04-01-preview, SDK Release Type: beta, and CommitSHA: '7f6945ba66f4adffc66a21e9700be37975a4e157' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6150443 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
---------
Co-authored-by: Weidong Xu <weidxu@microsoft.com>
* Sync eng/common directory with azure-sdk-tools for PR 15153 (#48828)
* Copilot hook script to collect user prompt telemetry
* remove bypass local dns (#48834)
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
* Fix streaming APIs in Agents and Projects libraries (#48832)
* Fix streaming APIs in Agents and Projects libraries
* add unit tests
* update HttpResponse
* remove unused logger
* remove unused import
* Sync eng/common directory with azure-sdk-tools for PR 15105 (#48835)
* remove mapping
* api version optional/removed
---------
Co-authored-by: Juan Ospina <70209456+jeo02@users.noreply.github.com>
* Update azure-ai-agents and azure-ai-projects version to 2.0.1 (#48840)
* Delete eng/common/pipelines/templates/steps/bypass-local-dns.yml (#48836)
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
* Update release date (#48842)
* update date
* format
* [Automation] Generate SDK based on TypeSpec 0.44.5 (#48826)
Co-authored-by: Weidong Xu <weidxu@microsoft.com>
* mgmt, update compute to 2025-11-01 (#48844)
* regen on 2025-11
* update handwritten code
* [AutoPR azure-resourcemanager-authorization]-generated-from-SDK Generation - Java-6131697 (#48751)
* Configurations: 'specification/authorization/resource-manager/Microsoft.Authorization/Authorization/tspconfig.yaml', API Version: 2024-07-01-preview, SDK Release Type: beta, and CommitSHA: '14ea458babe962d08b39acbb244bb81bdd3cb999' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6131697 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Update CHANGELOG.md
---------
Co-authored-by: Weidong Xu <weidxu@microsoft.com>
* [SparkConnector][No Review]FixNoClassDefFoundError for MetadataVersionUtil (#48837)
* Fix NoClassDefFoundError for MetadataVersionUtil in Cosmos Spark connector
Inline version validation logic in ChangeFeedInitialOffsetWriter instead
of depending on Spark-internal MetadataVersionUtil, which has been
relocated in Databricks Runtime 17.3 LTS (Spark 4.0).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add unit tests for inlined validateVersion logic
Add ChangeFeedInitialOffsetWriterSpec with tests covering:
- Valid version strings within supported range
- Version exceeding max supported (UnsupportedLogVersion)
- Malformed versions: non-numeric, empty, missing v prefix, v0, negative, bare v
Widen companion object visibility to private[spark] for testability.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add change feed micro-batch streaming scenarios to Databricks live test notebooks
Add structured streaming scenarios using cosmos.oltp.changeFeed to both
basicScenario.scala and basicScenarioAadManagedIdentity.scala notebooks.
These scenarios exercise the ChangeFeedInitialOffsetWriter and
HDFSMetadataLog code paths that can break on certain Spark distributions
(e.g. Databricks Runtime 17.3+).
Each scenario:
- Creates a sink container
- Reads change feed from source via readStream with micro-batch
- Writes to sink container via writeStream
- Validates records were copied
- Cleans up both containers
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix change feed streaming checkpoint path in Databricks notebooks
Use file:/tmp/ instead of /tmp/ for checkpoint location to avoid DBFS
access issues on Unity Catalog-enabled Databricks clusters. Also:
- Remove unused Trigger import
- Stop query before reading sink to avoid race conditions
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Simplify change feed streaming test to use memory sink
Replace cosmos.oltp sink with in-memory sink to eliminate the need for
a separate sink container. This avoids 404 errors from sink container
creation/resolution and removes checkpoint path concerns.
The test still exercises the full ChangeFeedInitialOffsetWriter and
HDFSMetadataLog code paths (readStream with cosmos.oltp.changeFeed),
which is the goal for validating the MetadataVersionUtil fix.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Remove change feed streaming scenarios from Databricks notebooks
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Re-add change feed streaming with shared logic in both notebooks
Both notebooks now use the same pattern: derive changeFeedCfg from the
existing cfg map (which already has the correct auth config) plus the
change feed-specific options. Write to an in-memory sink to avoid
container creation issues. This ensures both key-based and AAD/MSI
notebooks exercise identical streaming logic.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Remove change feed streaming from AAD/MSI notebook
The MSI notebook shares a cluster with basicScenario, and the Cosmos
client cache retains references from the first notebook's proactive
connection init. When basicScenario drops the source container during
cleanup, the MSI notebook's change feed streaming fails with 404 on
the cached (now-deleted) container. The change feed streaming test in
basicScenario already provides sufficient coverage for the
ChangeFeedInitialOffsetWriter code paths.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add diagnostic logging to MSI change feed streaming test
Add detailed logging to capture:
- Endpoint, database, container, auth config used
- Source container record count before streaming
- Streaming query ID
- Full exception details on failure
This will help diagnose why the change feed streaming fails
on the MSI notebook but succeeds on the key-based one.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Remove change feed streaming from MSI notebook
The MSI change feed test passes on a fresh cluster but fails when
basicScenario runs first on the same cluster without restart. The
basicScenario leaves cached Cosmos client state (proactive connection
init on the ephemeral endpoint) that causes the MSI streaming query
to resolve to the wrong endpoint, resulting in a 404. The change feed
test in basicScenario provides sufficient coverage for the
ChangeFeedInitialOffsetWriter/HDFSMetadataLog code paths.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* eng, fix analyze, move mvn auth before verify typespec (#48843)
* Release azure-cosmos-spark 4.47.0 (#48838)
* Release azure-cosmos-spark 4.47.0
Version bumps and CHANGELOG updates for:
- azure-cosmos-spark_3-3_2-12 4.47.0
- azure-cosmos-spark_3-4_2-12 4.47.0
- azure-cosmos-spark_3-5_2-12 4.47.0
- azure-cosmos-spark_3-5_2-13 4.47.0
- azure-cosmos-spark_4-0_2-13 4.47.0
Features Added:
- Added support for change feed with startFrom point-in-time on merged partitions (PR #48752)
Bugs Fixed:
- Fixed readContainerThroughput unnecessary permission requirement (PR #48800)
Also updated azure-cosmos CHANGELOG to reclassify the startFrom fix as a feature.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Address PR review: add clinit fix to CHANGELOGs and DBR 17.3 known issue
- Added JVM <clinit> deadlock fix (PR #48689) to all 5 spark connector CHANGELOGs
- Added Known Issues section to Spark 4.0 README for Structured Streaming
incompatibility with Databricks Runtime 17.3
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Reword DBR 17.3 known issue based on IcM 779484786
Updated with accurate details: MetadataVersionUtil$ class removal,
DBR 17.3 includes Spark 4.1 changes while reporting 4.0.0, and
recommendation to stay on previous LTS until DBR 18 LTS.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Remove DBR 17.3 known issue - will be fixed before release
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Update spark release date to 2026-04-17
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add MetadataVersionUtil fix to Spark 4.0 CHANGELOG (PR #48837)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [Java] Added a warm up step to cache maven-help-plugin into the CFS (#48816)
* Added a warm up step to cache maven-help-plugin into the CFS
* temp change to test docs publish
* Moved warm up step to the install-rex-validation template
* Ran command in batch mode rather than quiet mode
* Reverted test change for template ci
* Re-applied template ci change for testing
* Reverted test change
* Add service-specific skills infrastructure (find-package-skill, create-package-skill wizard, search skill) (#48833)
* Sync eng/common directory with azure-sdk-tools for PR 15134 (#48820)
* Add GitHub Action run link to APIView PR comment
Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/0a4d8e3c-c96b-4265-905c-5f8918876354
Co-authored-by: raych1 <20296335+raych1@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Ray Chen <raychen@microsoft.com>
* Apply suggestion from @raych1
* Apply suggestion from @raych1
* Pass GitHubActionRunUrl via environment variable and use IsNullOrWhiteSpace guard
Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/61d68e76-9b14-444b-b244-44d770e9a9b2
Co-authored-by: raych1 <20296335+raych1@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: raych1 <20296335+raych1@users.noreply.github.com>
Co-authored-by: Ray Chen <raychen@microsoft.com>
* Sync .github directory with azure-sdk-tools for PR 15134 (#48819)
* Add GitHub Action run link to APIView PR comment
Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/0a4d8e3c-c96b-4265-905c-5f8918876354
Co-authored-by: raych1 <20296335+raych1@users.noreply.github.com>
* Pass GitHubActionRunUrl via environment variable and use IsNullOrWhiteSpace guard
Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/61d68e76-9b14-444b-b244-44d770e9a9b2
Co-authored-by: raych1 <20296335+raych1@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: raych1 <20296335+raych1@users.noreply.github.com>
Co-authored-by: Ray Chen <raychen@microsoft.com>
* fix: CustomItemSerializer not applied correctly in queries and SqlParameter [Cosmos] (#48811)
* fix: ensure CustomItemSerializer is not applied to internal query pipeline structures and is applied to SqlParameter serialization
---------
Co-authored-by: Annie Liang <xinlian@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* regen w new SHA + customizations (#48479)
* regen w new SHA + customizations
* updated changes from PR comment
* regen with latest SHA
* re-record tests and removed tests for old features
* fix typos in skill reference .md
* additional fix
* fix: move SearchServiceVersion customizations to SearchCustomizations.java for CI compliance
* fix: remove unused imports and update test recordings
* fix: remove unused BinaryData import
* updated tests to 2026-04-01 version
* regen w proper SHA
* Add knowledge samples
* fix: remove src_embed from generated files
* remove unnecessary plugin
* regen with typespec-java@0.43.0
* Revert "regen with typespec-java@0.43.0"
This reverts commit fbd62ca89d457e65ed8caf23229d94c43f9922e1.
* regen
* remove permission filter / related files, regen
* Regenerate with latest hash. Update tests and update customizations
* address comments and regen with updated SHA
* remove unnecessary file
* update renamed KB references
* update references to searchindexingbufferedsenderbuilder
* fix code for renames + apply spotless formatting
* fix test
* regen from tsp
* fix linting issues
* updated disabled tests
* address second apireview comments
* revert unnecessary changes
* fixed build issues
* version bump and list methods fix
* update version in pom
* update version in version client
* make nextLink and nextPageParameters internal
* regen with accept headers fix
* fix linting issues and re-run tests
* fixed broken link
* regen with tsp changes
* regen
* fix comments
* re-trigger CI
* fix return type
* pull in skills files
* remove duplicate PascalCase skills directory
---------
Co-authored-by: efrainretana <141282336+efrainretana@users.noreply.github.com>
* Fix background database account refresh stopping in multi-writer accounts (#48758)
* Fix background database account refresh stopping in multi-writer accounts
In multi-writer accounts, refreshLocationPrivateAsync() stops the background
refresh timer when shouldRefreshEndpoints() returns false. This means topology
changes (e.g., multi-write to single-write transitions) go undetected until
the next explicit refresh trigger.
The .NET SDK (azure-cosmos-dotnet-v3) correctly continues the background
refresh loop unconditionally - the loop only stops when canRefreshInBackground
is explicitly false, not when shouldRefreshEndpoints returns false.
This fix adds startRefreshLocationTimerAsync() to the else-branch of
refreshLocationPrivateAsync(), ensuring the background timer always reschedules
itself regardless of whether endpoints currently need refreshing.
Without this fix, after a multi-write -> single-write -> multi-write transition,
reads remain stuck on the primary region because the SDK never re-reads account
metadata to learn about the restored multi-write topology.
Unit tests updated:
- backgroundRefreshForMultiMaster: assertTrue (timer must keep running)
- backgroundRefreshDetectsTopologyChangeForMultiMaster: new test proving
MW->SW transition detection via mock
Related: PR #6139 (point #4 in description acknowledged this bug)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add DR drill test results (4 scenarios: MW offline, MW transitions, SW switch, SW offline)
Kusto-backed evidence with charts for PR #48758 validation.
Accounts: bgrefresh-mw-test-440 (multi-writer), bgrefresh-sw-test-440 (single-writer)
Branch: fix/background-refresh-multi-writer @ 2048abeca
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Revert "Add DR drill test results (4 scenarios: MW offline, MW transitions, SW switch, SW offline)"
This reverts commit c9fc5c49284e92dfafd650569c82aed5d609105c.
* Restart background timer on force-refresh path (403/3 driven)
The forceRefresh=true path in refreshLocationAsync() updates the
LocationCache but never restarts the background timer. After a
MW→SW transition triggered by 403/3, the timer stays dead and the
SDK never detects MW re-enablement — traffic stays pinned to the
SW write region permanently.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add jitter (0-15s) to background refresh interval to prevent thundering herd
Configurable via COSMOS.BACKGROUND_REFRESH_LOCATION_JITTER_MAX_IN_SECONDS
(default 15). Spreads refresh calls from many CosmosClient instances to
avoid overwhelming the compute gateway.
Jitter is skipped during initialization (zero delay for first refresh).
Tests set jitter to 0 for deterministic behavior.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Disable background refresh jitter in GatewayServiceConfigurationReaderTest
The background refresh jitter (0-15s) added to prevent thundering herd
causes the refresh interval to exceed the 2-second sleep windows used
by this test. Disable jitter so the background refresh fires predictably.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Sync eng/common directory with azure-sdk-tools for PR 15192 (#48857)
* Add CODEOWNERS verification pipeline step and script
Add verify-codeowners.yml pipeline template step and
Test-CodeownersForArtifacts.ps1 script to validate that packages
intended for release have sufficient CODEOWNERS coverage.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Review feedback
* Fail closed on missing release status
---------
Co-authored-by: Daniel Jurek <djurek@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Failed-[AutoPR azure-resourcemanager-relationships]-generated-from-SDK Generation - Java-6084812 (#48645)
* Configurations: 'specification/relationships/Relationships.Management/tspconfig.yaml', API Version: 2023-09-01-preview, SDK Release Type: beta, and CommitSHA: 'ab5c0abaf718ad3ad3328695dc8e1eb5b3bfd38c' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6084812 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Configurations: 'specification/relationships/Relationships.Management/tspconfig.yaml', API Version: 2023-09-01-preview, SDK Release Type: beta, and CommitSHA: '843ab81f0fb6e0d22bca64e1c73ffe64d1681ca9' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6103940 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
---------
Co-authored-by: Meghana Gupta <93553451+meghanagupta95@users.noreply.github.com>
* [AutoPR azure-resourcemanager-containerservice]-generated-from-SDK Generation - Java-6178330 (#48863)
* Configurations: 'specification/containerservice/resource-manager/Microsoft.ContainerService/aks/tspconfig.yaml', API Version: 2026-02-01, SDK Release Type: stable, and CommitSHA: '8b2ae2cd4aaa5292b115bb38663f722b8a694235' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6178330 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Configurations: 'specification/containerservice/resource-manager/Microsoft.ContainerService/aks/tspconfig.yaml', API Version: 2026-02-01, SDK Release Type: stable, and CommitSHA: '8b2ae2cd4aaa5292b115bb38663f722b8a694235' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6178396 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Update CHANGELOG.md
* Update CHANGELOG.md
---------
Co-authored-by: Weidong Xu <weidxu@microsoft.com>
* Increment package versions for containerservice releases (#48867)
* update spring-reference.yml (#48866)
* Merge to main after spring cloud azure 7.2.0 released (#48865)
* Increment package versions for kubernetesconfiguration releases (#48870)
* Increment package versions for cosmos releases (#48852)
* [ContentUnderstanding] Add usage details to invoice sample and tests (#48839)
* add usage into invoice sample
* revise per copilot comments
* Failed-[AutoPR azure-resourcemanager-computelimit]-generated-from-SDK Generation - Java-6087535 (#48650)
* Configurations: 'specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/tspconfig.yaml', API Version: 2026-03-20, SDK Release Type: stable, and CommitSHA: 'a83147fe12aece4ded0bd96be212e5242e087cb9' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6087535 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Configurations: 'specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/tspconfig.yaml', API Version: 2026-03-20, SDK Release Type: stable, and CommitSHA: 'cca5b9fb049544c3bd14869f1642d4cc0187ef00' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6087783 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Configurations: 'specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/tspconfig.yaml', API Version: 2026-03-20, SDK Release Type: stable, and CommitSHA: 'd12a591062fc42adbad8c0105094f3de018a71b7' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6113665 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
---------
Co-authored-by: Hebin Huang <hebin_huang@hotmail.com>
* Configurations: 'specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml', API Version: 2025-03-01, SDK Release Type: stable, and CommitSHA: '41aa2e9f20cb7d28653078638d143bb0272658a3' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6116006 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. (#48704)
Co-authored-by: weidongxu-microsoft <53292327+weidongxu-microsoft@users.noreply.github.com>
* Configurations: 'specification/horizondb/resource-manager/Microsoft.HorizonDb/HorizonDb/tspconfig.yaml', API Version: 2026-01-20-preview, SDK Release Type: beta, and CommitSHA: 'f6e1fbd6268be7712bf96a516ba846f7d42e2baa' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6080421 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. (#48632)
Co-authored-by: Weidong Xu <weidxu@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix Netty ByteBuf leak in GatewayServerErrorInjector fault injection delay paths (#48880)
When fault injection simulates a response delay, the real HTTP response body
was discarded without draining its ByteBuf content. Under HTTP/2, this causes
ByteBuf leaks that accumulate on the long-lived parent channel.
Two leak paths fixed:
- delay >= timeout: doOnNext drains body before delayElement buffers it
- delay < timeout: doOnDiscard releases body if downstream cancels during delay
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [cosmos] Fix ClientTelemetry static-init NPE when IMDS access is disabled (#48888)
* Add regression test for IMDS-disabled ClientTelemetry init
* Fix ClientTelemetry initialization when IMDS access is disabled
* Update CHANGELOG.md
* Update ClientConfigDiagnosticsTest.java
* Add vnext emulator stages back to public CI pipeline (#48737)
* Add vnext emulator stages back to public CI pipeline
Remove the internal-only guard ({{ if eq(variables['System.TeamProject'], 'internal') }})
from the VNext emulator test stages in cosmos-sdk-client.yml so they run
on both public and internal CI pipelines.
The Skip.VnextEmulator variable condition is preserved for opt-out.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Adding dummy change to trigger CI
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Update-DocsMsToc.ps1 - Use powershell-yaml 0.4.12, include fixes for breaking behavior change. (#48892)
Co-authored-by: Daniel Jurek <djurek@microsoft.com>
* fix bot comment on azure-ai-transcription sdk apiview (#48889)
* fix bot comment on apiview
* Fix lint: drop @ServiceMethod on convenience transcribeWithResponse(TranscriptionOptions) overload
The Checkstyle ServiceClientCheck requires sync methods annotated with @ServiceMethod to take Context/RequestOptions/RequestContext. The convenience overload only takes TranscriptionOptions, so the annotation is removed. Also drops unused ClientLogger imports/fields and fixes javadoc rendering in the customization.
* update changelog
* Consolidate documentation into docs/ hub (#48730)
* Increment package versions for ai releases (#48847)
* mgmt, Migrate monitor (#48845)
* add code owners for transcription sdk (#48898)
* Bump @azure-tools/typespec-client-generator-cli (#48896)
Bumps [@azure-tools/typespec-client-generator-cli](https://github.com/Azure/azure-sdk-tools) from 0.32.0 to 0.32.1.
- [Release notes](https://github.com/Azure/azure-sdk-tools/releases)
- [Commits](https://github.com/Azure/azure-sdk-tools/commits)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Enhance HttpResponse to include new method to return InputStream (#48858)
* Enhance HttpResponse to include new method to return InputStream
* changelog
* update unit tests and change package for flux inputstream
* spotless formatting
* Wagamber/java transcription sdk - apiview fix - add javadoc required (#48897)
* add javadoc required
* update tspconfig with latest commit
* Regenerate ProfanityFilterMode for updated spec pin
* Remove cosmos filter from pullrequest build definition (#48879)
* Remove cosmos filter from pullrequest build definition
Remove sdk/cosmos/ exclusion from pullrequest.yml trigger paths
and ExcludePaths parameter so cosmos changes go through the standard
PR validation pipeline.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* pullrequest pipeline excludes cosmos, cosmos still triggers properly
* remove the triggering file that I was using to test
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix broken link (#48901)
* fix broken link
* fix link verification error
* Increment package versions for transcription releases (#48905)
* [AutoPR azure-resourcemanager-iotoperations]-generated-from-SDK Generation - Java-6132589 (#48754)
* Configurations: 'specification/iotoperations/IoTOperations.Management/tspconfig.yaml', API Version: 2026-03-01, SDK Release Type: stable, and CommitSHA: '0238251ff4a7b2404ec0110599b845b15d7fdd7f' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6132589 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Update pom.xml
---------
Co-authored-by: Weidong Xu <weidxu@microsoft.com>
Co-authored-by: Byron Jin <146121964+byronjinmsft@users.noreply.github.com>
* [AutoPR azure-resourcemanager-compute]-generated-from-SDK Generation - Java-6183423 (#48883)
* Configurations: 'specification/compute/resource-manager/Microsoft.Compute/Compute/tspconfig.yaml', API Version: 2025-11-01, SDK Release Type: stable, and CommitSHA: '1e6111d12c709c3395fb8546e311b6c67fd87efc' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6183423 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Update CHANGELOG.md
* Update CHANGELOG.md
---------
Co-authored-by: Weidong Xu <weidxu@microsoft.com>
* Patch Sparse Checkout (#48907)
* updates to patch sparse checkout to account for spring and cosmos while they are still excluded from the build list
* Update eng/scripts/Generate-ServiceDirectories-From-Project-List.ps1
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Configurations: 'specification/dataprotection/resource-manager/Microsoft.DataProtection/DataProtection/tspconfig.yaml', API Version: 2026_03_01, SDK Release Type: beta, and CommitSHA: '32ab0a3f798fed9517cb4026e47144251ea9331e' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6095332 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. (#48666)
* Use HttpResponse.getBodyAsInputStreamSync() in azure-ai-agents and azure-ai-projects (#48916)
* Update docs links to point to main. (#48906)
* update links to point to main.
* fix links
* update docs
* Update README.md
* [Cosmos] Docs: clarify 449 RetryWith retry behavior is Direct-mode only (#48913)
* Docs: clarify 449 RetryWith retry behavior is Direct-mode only
The 449 RetryWith status code is automatically retried by the SDK only in
Direct (TCP) mode via RetryWithRetryPolicy (nested in
GoneAndRetryWithRetryPolicy, wired in ReplicatedResourceClient). In Gateway
(HTTPS) mode the SDK does not retry 449 client-side; the gateway runs its
own internal RNTBD RetryWith loop on the gateway-to-backend connection, and
if that loop is exhausted the 449 propagates to the SDK and surfaces to the
caller. Update both ErrorCodesAndRetries.md and StatusCodes.md to make this
distinction explicit.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Docs: fix 404/1002 mislabel and complete truncated 408 bullet
- 404/1002 row: remove the misleading 'For Write Operations:' wrapper
(404/1002 / ReadSessionNotAvailable is a read-side condition only) and
state up-front that writes do not produce 404/1002.
- 408 row: complete the truncated 'If this is due to a network error:'
bullet so the client-generated timeout retry path is documented
(same path as a client-generated 410, with cross-region failover
for multi-region accounts).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Docs: address Copilot review feedback on 449 wording
- ErrorCodesAndRetries.md: reword .NET-style 'CosmosException(StatusCode = 449)'
to idiomatic Java phrasing ('a CosmosException with status code 449').
- StatusCodes.md: change the 'Expected to be transient' column for 449 from
'Yes (Direct mode only)' to 'Yes'. The condition itself is transient
regardless of SDK connection mode; the Direct vs Gateway retry nuance
already lives in the Additional info column.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Kushagra Thapar <kushagrathapar@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [Spark connector]Added spark 4.1 support (#48861)
* Added support for spark 4.1
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add exception handler on HTTP/2 parent channel to suppress WARN logs (#48890)
* Add exception handler on HTTP/2 parent channel to suppress WARN logs
In HTTP/2, reactor-netty multiplexes streams on a shared parent TCP connection.
The parent channel pipeline has no ChannelOperationsHandler (unlike HTTP/1.1),
so TCP-level exceptions like Connection reset by peer (ECONNRESET) propagate to
Netty's TailContext, which logs them as WARN.
This adds Http2ParentChannelExceptionHandler to the parent channel via
doOnConnected (accessing channel.parent()). The handler consumes exceptions
at DEBUG level WITHOUT closing the channel or altering connection lifecycle,
matching HTTP/1.1 logging behavior.
Changes:
- Handler logs cause.toString() (not getMessage()) for null-safe diagnostics
- Defensive try-catch for duplicate handler name on concurrent stream creation
- Before/after verified with EmbeddedChannel unit tests
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Revert azure-cosmos-tests pom.xml changes
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Clarify why duplicate-name is the only possible IAE in handler install
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Move static utility method to bottom of test file
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Address Copilot review: fix comment accuracy, remove duplicate cause.toString(), update changelog
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add tests for activeStreams > 0 path (WARN branch)
Address Bhaskar's review: add two tests covering the else branch where
activeStreams > 0 on an active channel, exercising the WARN log path.
- withHandler_activeStreams_consumedAtWarn: creates an active H2 stream
via codec.connection().local().createStream(), fires an exception, and
verifies it is consumed (does not reach TailContext).
- withHandler_activeStreams_channelNotClosed: same setup, verifies the
handler does not close the channel even with active streams.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add test for codec-absent fallback path
When Http2FrameCodec is absent from the pipeline, getActiveStreamCount()
returns -1. Since -1 != 0 and channelActive == true, the handler takes
the safe WARN path. This test covers that fallback behavior.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Address review: nullable getActiveStreamCount, Error propagation, debug log in catch
- Change getActiveStreamCount() to return Integer (nullable) instead of
int with -1 sentinel. null explicitly means 'could not determine' and
takes the safe WARN path. (Addresses Fabian's review)
- Add logger.debug in catch block so codec retrieval failures are
observable instead of silently swallowed.
- Add Error guard in exceptionCaught: Error types (OOM, SOF) propagate
to TailContext instead of being consumed. (Addresses Xinlian's review)
- Add withHandler_errorNotConsumed_propagatesToTail test.
- Update Javadoc to reflect Exception-only consumption and Error passthrough.
Co-authored-by: Copilot <223556219+Copilot@user…
Problem
Customers see noisy Netty WARN logs in HTTP/2 scenarios:
Root Cause
In HTTP/2, reactor-netty multiplexes streams on a shared parent TCP connection. The parent and child channels have different pipeline structures:
HTTP/1.1 pipeline (single channel — no leak to TailContext):
HTTP/2 parent channel pipeline (BEFORE fix — leak to TailContext):
HTTP/2 parent channel pipeline (AFTER fix):
HTTP/2 child stream channel pipeline (unchanged):
Design: Connection-State-Based Log Level
The handler consumes
Exceptiontypes on the parent channel (no exception type filtering withinException).Errortypes (e.g.,OutOfMemoryError) are not consumed — they propagate to TailContext for standard Netty handling.The log level for
Exceptiontypes is determined by connection state:activeStreams == 0OR!channelActive.null).Active stream count is retrieved via
Http2FrameCodec.connection().numActiveStreams()on the same parent channel pipeline. Returnsnull(not-1) if the codec is unavailable, making the unknown-state case explicit. Failures to retrieve the stream count are logged at DEBUG.Why no exception type filtering?
By the time any exception reaches our handler, all upstream handlers (
Http2FrameCodec,Http2MultiplexHandler) have already handled the protocol actions (GOAWAY, stream reset, child channel error delivery). The exception reaching TailContext is an echo of already-handled work, regardless of type. Connection state (active streams + channel activity) is the only dimension that determines whether the exception has diagnostic value.Why OR (not AND) for the DEBUG condition?
Either condition alone is sufficient:
activeStreams == 0— no in-flight requests affected, regardless of channel state!channelActive— channel is already dead, any active streams will fail through their Reactor subscribers independentlyWhy no
ctx.close()?The handler does NOT close the channel. Connection lifecycle is owned by:
reactor-netty) — evicts connections based on!channel.isActive(), GOAWAY, maxIdleTime, maxLifeTimeOur handler is the last in the pipeline with the least protocol context. Closing here would race with reactor-netty's pool management and could prematurely kill connections after non-fatal errors.
Why propagate
Errorbut notException?Errortypes (OOM, StackOverflowError) represent JVM-level failures that should not be silently consumed. Re-throwingExceptionto TailContext provides no functional value — TailContext just logs WARN and swallows, which is what our handler already does with better context (connection state in the log message).Testing
9 EmbeddedChannel unit tests with production-matching pipeline (
Http2FrameCodec→Http2MultiplexHandler→ handler):withoutHandler_exceptionReachesTailwithHandler_zeroActiveStreams_consumedAtDebugwithHandler_exceptionDoesNotCloseChannelwithHandler_runtimeException_zeroActiveStreams_consumedwithHandler_npe_zeroActiveStreams_consumedwithHandler_activeStreams_consumedAtWarnwithHandler_activeStreams_channelNotClosedwithHandler_codecAbsent_fallsBackToWarnPathwithHandler_errorNotConsumed_propagatesToTailWARN path log (
activeStreams=1, channelActive=true)Note: The
!channelActivebranch cannot be unit-tested with EmbeddedChannel becausedisconnect()tears down the pipeline beforefireExceptionCaughtcan reach handlers. In production,exceptionCaught()fires while the channel is transitioning to inactive.Impact
exceptionCaught()— Netty@Skipoptimization bypasses it for all hot-path eventsErrortypes are propagated, not consumed