ServicePulse offers a redirect feature to route messages to a different endpoint than what is specified in the failed message headers. This is useful in cases when a failed message needs to be retried, but the destination endpoint no longer exists.
Message redirects are a feature of ServicePulse/ServiceControl only; they do not alter the routing for NServiceBus endpoints.
Redirects can be managed from the Configuration page by selecting the Retry Redirects tab.
Managing redirects
This page displays the configured redirects that are currently in effect along with the following information:
- Source Queue: the queue for which this redirect will be applied.
- Destination Queue: the queue that will be the new destination when retrying.
- Last modified: a timestamp of the last modification.
To create a redirect, click Create Redirect. A dialog will appear.
Select a source queue from the From physical address dropdown list. Type the queue name for the target of the redirect in the To Physical Address field. The To Physical Address tries to auto-complete the queue name listing all queue names known to ServiceControl.
The To Physical Address field allows entering arbitrary values to select a queue that is not yet known to ServiceControl. When that happens, a message is shown warning about possible message loss.
To immediately retry all unresolved failed messages from the source address, check the box with the label Immediately retry any matching failed messages. This does not apply to failed messages that have a retry status of Pending.
Any existing redirects can be deleted using the End Redirect link.
To change the target of a redirect, click the Modify Redirect link. Only the target queue can be modified. The source queue remains read-only.
Validation errors
When adding and editing redirects, the following validation rules apply:
- Duplicate There can be only one redirect for a given source queue. When attempting to add multiple redirects for the same source queue, an error will occur.
- Dependent Redirects cannot be chained i.e. a destination queue in one redirect cannot be used as the source queue for another redirect. For example, if there is a configured redirect that redirects messages from QueueA -> QueueB, there cannot be a second rule configured to redirect from QueueB -> QueueC. Attempts to create the second redirect will result in an error.

