NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
NuGet · #689 most downloaded on NuGet
Rebus is a lean service bus for .NET
Last release 4 days ago
29 Sep 2026
Release timing varies
gaps range from 2 weeks to 7 months
Nearly every release is documented
notes for 56 of the last 60 stable releases
15 versions withdrawn
withdrawn after publishing
127 years old
546 releases · first in 1900
Added ability to configure queue polling backoff strategy to low-latency mode - thanks [hagbarddenstore]
* Fixed Rabbit transport nuspec
RabbitMQ client updated - thanks [hagbarddenstore]
One column per quarter.
Made ConsoleLoggerFactory public so it can be used e.g. from processes hosting the load balancer
ConsoleLoggerFactory public so it can be used e.g. from processes hosting the load balancer* Fixed logging in load balancer
Added load balancer NuGet package
Fixed SqlServerSubscriptionStorage to be able to work when publishing within a TransactionScope when it manages the connection by itself - thanks [jas
SqlServerSubscriptionStorage to be able to work when publishing within a TransactionScope when it manages the connection by itself - thanks [jasperdk]Nothing changed - pushed new version because NuGet.org had a seisure the other day and 0.54.3 wasn't properly uploaded
XmlSubscriptionStorage automatically creates directory pointed to by the subscription XML file path - thanks [hagbarddenstore]
XmlSubscriptionStorage automatically creates directory pointed to by the subscription XML file path - thanks [hagbarddenstore]Nudged order of disposal and logging inside Azure Service Bus transport
InvalidOperationException when > 100 (because of a limitation in Azure Service bus)Change SqlServerSagaPersister and SqlServerSubscriptionStorage to use the same ConnectionHolder as SqlServerMessageQueue
SqlServerSagaPersister and SqlServerSubscriptionStorage to use the same ConnectionHolder as SqlServerMessageQueueSqlTransaction out of a SqlConnection (because it did not work all the time)AzureServiceBusMessageQueueAzureServiceBusMessageQueue and SqlServerSagaPersisterAvoid ending up overflowing the stack if Console.WriteLine fails
Console.WriteLine failsAzure Service Bus transport: Set MaxDeliveryCount to 1000 to effectively disable built-in dead-lettering (because Rebus handles poison messages)
Action available in the message context under the AzureServiceBusMessageQueue.AzureServiceBusRenewLeaseAction key to allow for renewing the peek lock when performing long-running operations* Updated NLog to 2.1.0
Catch exception occurring while attempting to preserve the stack trace of a caught exception inside a TargetInvocationException. This will most likely
TargetInvocationException. This will most likely be caused by the absence of a proper exception serialization constructor, which is really dumb - oh, and thanks to the Unity container crew for making me realize how silly the need for serialization constructors isMade timeout manager log internal errors properly - first as warnings, and if the problem persists for 1 minute it will be logged as an error
Fix that makes changelog 0.50.0 around ToString actually true
Sent messages are no longer logged at INFO level. Both sent and received messages are now logged at DEBUG level by calling ToString on the logical mes
MessageLoggerWhen delivery tracking (i.e. the tracking of message IDs across multiple delivery attempts) times out, a WARN used to be logged. That is now an INFO b
TargetInvocationExceptions in message dispatch, and do some trickery to preserve the stack trace.MessageHandleException which is raised when a message cannot be handled.Queue transaction failures are now properly caught and will be waited out when possible
Use hybrid stash model for transaction context, allowing it to overcome thread discontinuity in ASP.NET and WCF - thanks [jasperdk]
WeakReference target matchChanged order of operations in MsmqMessageQueue that could lead to using an invalid transaction in rare circumstances
null as a proper value, thus ensuring that saga data can be inserted, updated, and found with null in a correlation propertyAzure Service Bus transport now automatically creates the error queue
Fixed bug where RabbitMQ transport would leak channels when used e.g. in combination with MSMQ in order to "bridge" from a MSMQ bus environment to a R
Added ability for Azure Service Bus transport to actually use MSMQ when connection string is UseDevelopmentStorage=true
UseDevelopmentStorage=trueFixed race condition bug when using RabbitMQ auto-delete input queue and subscribing on another thread after having started the bus
Added ability for RabbitMQ transport to NOT create the error queue. This way, the Rebus errorQueue setting just becomes the topic under which failed m
Avoid warning when disposing one-way Azure transport
Updated Log4Net dependency to 2.0.1 (BEWARE: It appears that the Log4Net public key has changed since previous version!!)
Rebus now always adds a unique Rebus Transport ID in the headers upon sending a message. This ID will stay the same when message is deferred, forwarde
* Updated RabbitMQ dep to 3.1.5
Fixed logging when unit of work commit fails - should always be logged as a USER exception
Upgraded RabbitMQ client dependency to 3.1
Added ability to use custom encoding with the built-in JSON serializer
Timeout manager SQL persistence oddity fixed: Explicit bigint PK instead of compound thing that could potentially lead to missed timeouts - thx [krivi
IStartableBus API extended with the ability to specify number of workers - thx [krivin]Added ability to compress message bodies as well.
Fixed constantly generated warning in timeout manager - thx [hagbarddenstore]
Broke the Log4Net configuration API - sorry! But now it just adds the correlation ID to the thread context by default (i mean, why would you NOT do th
Added to SqlServerMessageQueue the ability to receive messages in prioritized order.
SqlServerMessageQueue the ability to receive messages in prioritized order.Update Mongo to 1.8.2 because that's the most recent version of the driver... duh!
Updated Mongo stuff to use 1.8.1 driver and no deprecated APIs
Behavior option to allow for impersonating a proper user when the user name header is present on handled messages
Special username header will flow like correlation ID if it is present
Only one SQL roundtrip to receive a message
Added transport performance showdown
Better handling of errors (i.e. DON'T IGNORE ERRORS) when MSMQ receive fails
SqlServerMessageQueue would associate commands with the ongoing SqlTransaction1st go at implementing a SQL Server-based transport - can be used if you don't have MSMQ available on your machines
Made JSON serializer handle encoding properly when deserializing messages
Added configuration extension for Log4Net that will automatically set the correlation ID property on the ThreadContext
Added ability to provide correlation ID on all outgoing messages automatically in cases where none was supplied from elsewhere ('elsewhere' being eith
Added ability to let a special correlation ID header automatically flow to all outgoing messages when it is present
Fixed bug in InMemorySagaPersister that would not use the proper JSON serializer settings when deserializing
InMemorySagaPersister that would not use the proper JSON serializer settings when deserializingFixed bug in SQL saga persister and SQL subscription storage because SqlConnection is not nice enough to set the Transaction property when creating co
Better error handling when deferring messages
Added (finally!) an icon for NuGet to display along with all Rebus packages
Removed (default) transaction scope around message handlers, made it configurable with .Behavior(b => b.HandleMessagesInsideTransactionScope())
.Behavior(b => b.HandleMessagesInsideTransactionScope())Added ability to customize max retries for specific exception types
Fixed bug in NLogLoggerFactory that would try to use RebusConfigurer as a logger (?!)
Re-introduced automatic error queue creation when using RabbitMQ
Fixed handling of exceptions when committing user-provided unit(s) of work
Your coding agent can read these notes before it upgrades. Set up the MCP server →