Conventional routing against Azure Service Bus fails to initialize the broker. Every affected test fails 100% of the time, deterministically, on a clean emulator — this is not flakiness, and it has been hidden behind [Trait("Category", "Flaky")] since 2026-03-21.
The failure
Wolverine.Transports.BrokerInitializationException : Unable to initialize the Broker asb in time
21 of 24 failures in the suite carry that exact message. Each one burns ~2m11s–2m27s on the timeout before failing, which is why the affected classes dominate the suite's wall clock.
Measured evidence
Full Wolverine.AzureServiceBus.Tests run, 2026-08-02, net9.0, Release, serial, against a freshly recreated emulator (servicebus-emulator:2.0.1) with the GH-3783 readiness gate in place, retries off:
304 tests, 24 failed, 67.6 minutes — of which 57.0 minutes is these classes.
| class |
tests |
failed |
time |
ConventionalRouting.conventional_listener_discovery |
6 |
5 |
12.55m |
ConventionalRouting.when_discovering_a_listening_endpoint_with_all_defaults |
4 |
4 |
10.55m |
Bugs.Bug_1933_multi_tenant_conventional_routing |
2 |
2 |
7.70m |
ConventionalRouting.when_discovering_a_sender_with_all_defaults |
3 |
3 |
7.13m |
ConventionalRouting.when_discovering_a_listening_endpoint_with_overridden_queue_naming |
3 |
3 |
6.09m |
ConventionalRouting.Broadcasting.end_to_end_with_conventional_routing |
1 |
1 |
2.99m |
ConventionalRouting.end_to_end_with_conventional_routing_with_prefix |
1 |
1 |
2.78m |
ConventionalRouting.end_to_end_with_conventional_routing |
1 |
1 |
2.67m |
ConventionalRouting.discover_with_naming_prefix |
1 |
1 |
2.39m |
end_to_end |
6 |
2 |
2.03m |
Bugs.Bug_2307_batching_with_conventional_routing |
1 |
1 |
0.08m |
Every single one is a conventional-routing test.
A clue worth starting from
ConventionalRouting.when_using_handler_type_naming (2 tests) was never tagged, has therefore been running in CI all along, and passes. Whatever it does differently from its eleven neighbours is probably the shortest path to the cause.
Bug_2307_batching_with_conventional_routing is also worth noting separately: it fails in 0.08m, not on the 2-minute broker timeout, so it may be a different (or downstream) failure.
Why nobody noticed
These were tagged in a bulk sweep on 2026-03-21 (commits with messages like "Tag all ConventionalRouting tests as Flaky"), so they have not run in CI for over four months. None of the tags recorded a reason, a number, or an issue link, so there was nothing to indicate the tag was hiding a hard failure rather than a timing race.
Separately, GH-3783 found the ASB readiness gate had been declaring the emulator ready ~26s before its management API could serve provisioning. That is plausibly what the March sweep was actually measuring — but it does not explain these: the numbers above were taken after that fix, on a cold, clean emulator.
Reproducing
docker compose up -d asb-emulator
dotnet test src/Transports/Azure/Wolverine.AzureServiceBus.Tests/Wolverine.AzureServiceBus.Tests.csproj \
--framework net9.0 --filter "FullyQualifiedName~ConventionalRouting"
Recreate the emulator (docker compose rm -sf asb-emulator asb-sql) between runs — accumulated entities from prior runs change the timings.
Scope
Fixing this restores 29 tests and, more importantly, tells us whether conventional routing on Azure Service Bus works at all — the tests are the only coverage of that combination and they have been dark since March.
Conventional routing against Azure Service Bus fails to initialize the broker. Every affected test fails 100% of the time, deterministically, on a clean emulator — this is not flakiness, and it has been hidden behind
[Trait("Category", "Flaky")]since 2026-03-21.The failure
21 of 24 failures in the suite carry that exact message. Each one burns ~2m11s–2m27s on the timeout before failing, which is why the affected classes dominate the suite's wall clock.
Measured evidence
Full
Wolverine.AzureServiceBus.Testsrun, 2026-08-02,net9.0, Release, serial, against a freshly recreated emulator (servicebus-emulator:2.0.1) with the GH-3783 readiness gate in place, retries off:304 tests, 24 failed, 67.6 minutes — of which 57.0 minutes is these classes.
ConventionalRouting.conventional_listener_discoveryConventionalRouting.when_discovering_a_listening_endpoint_with_all_defaultsBugs.Bug_1933_multi_tenant_conventional_routingConventionalRouting.when_discovering_a_sender_with_all_defaultsConventionalRouting.when_discovering_a_listening_endpoint_with_overridden_queue_namingConventionalRouting.Broadcasting.end_to_end_with_conventional_routingConventionalRouting.end_to_end_with_conventional_routing_with_prefixConventionalRouting.end_to_end_with_conventional_routingConventionalRouting.discover_with_naming_prefixend_to_endBugs.Bug_2307_batching_with_conventional_routingEvery single one is a conventional-routing test.
A clue worth starting from
ConventionalRouting.when_using_handler_type_naming(2 tests) was never tagged, has therefore been running in CI all along, and passes. Whatever it does differently from its eleven neighbours is probably the shortest path to the cause.Bug_2307_batching_with_conventional_routingis also worth noting separately: it fails in 0.08m, not on the 2-minute broker timeout, so it may be a different (or downstream) failure.Why nobody noticed
These were tagged in a bulk sweep on 2026-03-21 (commits with messages like "Tag all ConventionalRouting tests as Flaky"), so they have not run in CI for over four months. None of the tags recorded a reason, a number, or an issue link, so there was nothing to indicate the tag was hiding a hard failure rather than a timing race.
Separately, GH-3783 found the ASB readiness gate had been declaring the emulator ready ~26s before its management API could serve provisioning. That is plausibly what the March sweep was actually measuring — but it does not explain these: the numbers above were taken after that fix, on a cold, clean emulator.
Reproducing
Recreate the emulator (
docker compose rm -sf asb-emulator asb-sql) between runs — accumulated entities from prior runs change the timings.Scope
Fixing this restores 29 tests and, more importantly, tells us whether conventional routing on Azure Service Bus works at all — the tests are the only coverage of that combination and they have been dark since March.