Bridge to Router question

I have an existing NServiceBus(v. 6.5.4) Endpoint (MSMQ) using the bridge connector to send to a new endpoint that is a NserviceBus(v 7.4.6) (SQS). The SQS endpoint self hosts the Router.

Everything works great but I decided to do some negative testing and in the old endpoint I changed bridge to connect to a machine that doesn’t exist. I wanted to see what happened when the message was sent. Would it end up in an error queue ?

The best I can tell is that message is just gone and there is no record that it failed to have the bridge succeed in sending the message to the router queue. Just wanted to find out if this is the expected behavior.

Thank you

I think your question is:

“What happens when a message is send to a machine that does not exist? Would it end up in the error queue?”

When sending to a (non existing) machine the message is always queued to an Outgoing Queue. If MSMQ is unable to connect to that machine (because it does not exist or any other connectivity reason) the message is send to the (transactional) dead-letter queue after the Time-To-Reach-Queue duration expires. The default Time-To-Reach-Queue duration is 4 days. Meaning, after 4 days the message is moved the the (transaction) dead-letter-queue on the machine the the message is stored in the outgoing queue.

It is MSMQ infrastructure that takes take of delivery to other machines and moving to the dead letter queue. NServiceBus is not aware of any of this. For that reason the message will not end in any error queue. Only NServiceBus processing errors will be forwarded to an error queue.

If it advisable to always monitor the transactional dead letter queues of all machines. See https://docs.particular.net/transports/msmq/troubleshooting#monitoring-msmq for more information.

Thank you for the response. I totally must have been in a brain fog and forgot about the outgoing queues. You are correct the messages are in the outgoing queue.

Thank you