New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Native delayed delivery forwarding of delayed messages can cause duplicate processing #478

boblangley opened this Issue Feb 4, 2019 · 1 comment


None yet
1 participant
Copy link

boblangley commented Feb 4, 2019

The message dispatcher was designed to allow messages being drained from the timeout manager to be forwarded using native delayed delivery.

if (headers.TryGetValue(TimeoutManagerHeaders.Expire, out var expireString))

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 SQL 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 SQL endpoints not using native delayed delivery should upgrade immediately.


This comment has been minimized.

Copy link
Member Author

boblangley commented Feb 4, 2019

Resolved by PR #477

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment