dotnetcore/CAP · error · InvalidOperationException
You must be config transport provider for…
Error message
You must be config transport provider for CAP!
==================================================================================
======== eg: services.AddCap( options => { options.UseRabbitMQ(...) }); ========
================================================================================== What it means
Error "You must be config transport provider for CAP! ================================================================================== ======== eg: services.AddCap( options => { options.UseRabbitMQ(...) }); ======== ==================================================================================" thrown in dotnetcore/CAP.
Solutions
- Configure a message transport in AddCAP, e.g. services.AddCAP(options => { options.UseRabbitMQ("localhost"); }); (or UseKafka/UseAzureServiceBus/etc.).
- Ensure the transport extension package (e.g. DotNetCore.CAP.RabbitMQ) is installed and the corresponding Use* method is called inside the AddCAP options lambda.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/DotNetCore.CAP/Internal/IBootstrapper.Default.cs:136 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of dotnetcore/CAP@e52b8508e5 (2026-09-14).
Data as JSON: /api/errors/a46092f8b7e27ded.
Report an issue: GitHub.
Appendix: source
Thrown at src/DotNetCore.CAP/Internal/IBootstrapper.Default.cs:136
}
public override async Task StopAsync(CancellationToken cancellationToken)
{
_cts?.Cancel();
await base.StopAsync(cancellationToken).ConfigureAwait(false);
}
private void CheckRequirement()
{
var marker = _serviceProvider.GetService<CapMarkerService>();
if (marker == null)
throw new InvalidOperationException(
"AddCap() must be added on the service collection. eg: services.AddCap(...)");
var messageQueueMarker = _serviceProvider.GetService<CapMessageQueueMakerService>();
if (messageQueueMarker == null)
throw new InvalidOperationException(
"You must be config transport provider for CAP!" + Environment.NewLine +
"==================================================================================" +
Environment.NewLine +
"======== eg: services.AddCap( options => { options.UseRabbitMQ(...) }); ========" +
Environment.NewLine +
"==================================================================================");
var databaseMarker = _serviceProvider.GetService<CapStorageMarkerService>();
if (databaseMarker == null)
throw new InvalidOperationException(
"You must be config storage provider for CAP!" + Environment.NewLine +
"===================================================================================" +
Environment.NewLine +
"======== eg: services.AddCap( options => { options.UseSqlServer(...) }); ========" +
Environment.NewLine +
"===================================================================================");
}
View on GitHub (pinned to e52b8508e5)