Where are failed messages?

I am using RetailDemo and converting it for AzureServiceBus plus playing with conventions etc. to see what would be needed to switch to NServiceBus. I installed ServicePulse, and in Billing service I force exception on some messages. I can see them in ServicePulse and replay them, that all works fine. What I am puzzled about is where these messages are actually stored. I am used to poison messages being moved to Deadletter under the Queue, but is seems that NSB uses some other way of persisting these messages, as I cannot find them anywhere under endpoint queue nor in ‘error’ queue setup for ServicePulse.

I looked in source code for ServiceControl, and it is using embeded RavenDb server and messages are stored there.

Hi @Edvard_Pitka ,

When using ServiceControl like in the RetailDemo project, all error and audit messages are consumed by ServiceControl and stored, as you correctly stated, in the internal RavenDB database where the data can be processed for analytics (e.g. for ServiceInsight and ServicePulse) more efficiently than storing it in the queue itself. We do have some documentation on ServiceControl available here: How does ServiceControl work? • ServiceControl • Particular Docs

I hope this answers your question.