Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Native delayed delivery forwarding of delayed messages can cause duplicate processing #350
The message dispatcher was designed to allow messages being drained from the timeout manager to be forwarded using native delayed delivery.
However, this behaviour can affect messages that are using other forwarding mechanisms where the destination queue should not be altered.
The most relevant scenario where this can occur in customer's systems is when ServiceControl 3.0 or greater is configured to forward error or audit messages and receives an audited/errored message that was delayed from a legacy endpoint.
NServiceBus core 7.1 is designed to better handle migration of transports from Timeout manager to native delayed delivery, allowing the transport to remove the code causing this issue.
How to know if you are affected
Any scenario where you are forwarding a message that was previously delayed by a legacy version of the ASQ transport that was not using delayed delivery can cause the message to be incorrectly redirected back to the original processing endpoint. This includes Auditing, forwarding using SendOptions, endpoint message forwarding, and raw uses of IDispatchMessages in behaviors.
Should you upgrade immediately
Any users forwarding delayed messages as part of their message processing from ASQ endpoints not using native delayed delivery should upgrade immediately.