Summary
The Java SDK is adding an HTTP/2 PING keepalive (azure-sdk-for-java#49095) and is reserving bit 6 (value 64) in UserAgentFeatureFlags as Http2PingHealth for user-agent telemetry.
Filing this issue so the .NET SDK reserves the same bit before any future flag claims it, keeping the cross-SDK bitmap aligned per the convention noted in UserAgentFeatureFlags.cs.
Current state
| Bit |
Value |
.NET (UserAgentFeatureFlags.cs) |
Java (UserAgentFeatureFlags.java) |
| 0 |
1 |
PerPartitionAutomaticFailover |
PerPartitionAutomaticFailover |
| 1 |
2 |
PerPartitionCircuitBreaker |
PerPartitionCircuitBreaker |
| 2 |
4 |
ThinClient |
ThinClient |
| 3 |
8 |
BinaryEncoding |
(reserved comment only) |
| 4 |
16 |
Http2 |
Http2 |
| 5 |
32 |
(free) |
RegionScopedSessionCapturing |
| 6 |
64 |
(free — request to reserve) |
Http2PingHealth (this PR) |
Ask
Reserve bit 6 = Http2PingHealth = 64 in Microsoft.Azure.Cosmos/src/Diagnostics/UserAgentFeatureFlags.cs, even as a commented-out placeholder, so the bit is not accidentally reused.
Reserving it does not require .NET to implement the HTTP/2 PING feature — only that the bit is claimed so the user-agent |F<hex> decoder remains comparable across SDKs.
Context
A separate cross-SDK reconciliation for bits 3 and 5 (where .NET and Java have already drifted) is out of scope here; raising that as its own discussion if useful.
cc @kushagraThapar
Summary
The Java SDK is adding an HTTP/2 PING keepalive (azure-sdk-for-java#49095) and is reserving bit 6 (value 64) in UserAgentFeatureFlags as
Http2PingHealthfor user-agent telemetry.Filing this issue so the .NET SDK reserves the same bit before any future flag claims it, keeping the cross-SDK bitmap aligned per the convention noted in UserAgentFeatureFlags.cs.
Current state
Ask
Reserve bit 6 = Http2PingHealth = 64 in Microsoft.Azure.Cosmos/src/Diagnostics/UserAgentFeatureFlags.cs, even as a commented-out placeholder, so the bit is not accidentally reused.
Reserving it does not require .NET to implement the HTTP/2 PING feature — only that the bit is claimed so the user-agent
|F<hex>decoder remains comparable across SDKs.Context
https://github.com/Azure/azure-sdk-for-java/blob/squad/http2-ping-keepalive/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/UserAgentFeatureFlags.java
A separate cross-SDK reconciliation for bits 3 and 5 (where .NET and Java have already drifted) is out of scope here; raising that as its own discussion if useful.
cc @kushagraThapar