Skip to content

Assert on the queue name, not the endpoint name, and untag Bug_2307 (GH-3827) - #3830

Merged
jeremydmiller merged 1 commit into
mainfrom
gh-3827/asb-batching-queue-name
Aug 4, 2026
Merged

Assert on the queue name, not the endpoint name, and untag Bug_2307 (GH-3827)#3830
jeremydmiller merged 1 commit into
mainfrom
gh-3827/asb-batching-queue-name

Conversation

@jeremydmiller

Copy link
Copy Markdown
Member

Closes #3827.

This was never a product bug, contrary to how I filed the issue — I inherited the diagnosis from the in-file note instead of reproducing it first. Correction is on the issue too.

Bug_2307_batching_with_conventional_routing carried [Trait("Category", "Flaky")], excluding it from CIAzureServiceBus. The note said the listener's "EndpointName is just the raw type name rather than the sanitized queue name — a naming bug in the GH-2307 fix".

Dumping every Azure Service Bus endpoint the convention builds says otherwise:

EndpointName='Wolverine.AzureServiceBus.Tests.Bugs.BatchedItem'
Uri='asb://queue/wolverine.azureservicebus.tests.bugs.batcheditem'   <- correctly sanitized
IsListener=True

The listener exists and its Azure Service Bus entity name is correct. GH-2307 works end to end; nothing is misnamed on the broker.

EndpointName is a logical label that deliberately is not the entity name:

  • MessageRoutingConvention has endpoint.EndpointName = queueName commented out on both listener-creation paths.
  • The transport's own system endpoints behave identically — AzureServiceBusResponsesasb://queue/wolverine.response.*, AzureServiceBusRetriesasb://queue/wolverine.retries.*.
  • AzureServiceBusQueue.QueueName is the physical entity name, assigned once at construction; EndpointName is mutable and picks up the friendly value afterwards.

So the test was asserting on the wrong property. It now asserts on QueueName — the thing GH-2307 is actually about — and the Flaky tag comes off.

Verification

  • 3/3 passes in ~5s against the emulator
  • Full wolverine.slnx Release build clean, 0 warnings

The class returns to CIAzureServiceBus.

🤖 Generated with Claude Code

https://claude.ai/code/session_01WHAuhdWS3XeAk16swV9G8m

…H-3827)

This was never a product bug. The 2026-08-02 triage was right that the listener
IS created for the batch element type -- so GH-2307 works -- but concluded the
endpoint had been given "the raw type name rather than the sanitized queue name".
Dumping the endpoints shows both names are exactly what they should be:

  EndpointName='Wolverine.AzureServiceBus.Tests.Bugs.BatchedItem'
  Uri='asb://queue/wolverine.azureservicebus.tests.bugs.batcheditem'

The Azure Service Bus entity -- the thing conventional routing is responsible for
-- is correctly sanitized. EndpointName is a LOGICAL name and deliberately is not
the entity name: MessageRoutingConvention has `endpoint.EndpointName = queueName`
commented out on both listener-creation paths, and the transport's own system
endpoints do the same (AzureServiceBusResponses -> asb://queue/wolverine.response.*).
AzureServiceBusQueue.QueueName is the physical name, assigned once at
construction; EndpointName is mutable and takes the friendly value afterwards.

So the test was reading the wrong property. It now asserts on QueueName, which is
what GH-2307 is actually about, and the Category=Flaky tag comes off -- returning
the class to CIAzureServiceBus.

Passes 3/3 in ~5s against the emulator. Full wolverine.slnx Release build clean.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WHAuhdWS3XeAk16swV9G8m
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Azure Service Bus batching with conventional routing: listener EndpointName is the raw type name, not the sanitized queue name

1 participant