Delivery Confirmation Issues¶
This page describes common issues related to publisher delivery confirmations.
No Acknowledgement Received¶
Verify delivery confirmation is enabled.
Example:
DeliveryConfirmation = new DeliveryConfirmation
{
Enabled = true
};
If delivery confirmation is disabled, acknowledgements are not observed.
Publisher Never Receives Ack Or Nack¶
Verify:
- publisher confirms are enabled;
- channel events are enabled;
- RabbitMQ connection remains active.
Example:
EnableChannelEvents = true;
Delivery Confirmation Timeout¶
Typical symptoms:
TimeoutException
OperationCanceledException
Possible causes:
- broker overload;
- network latency;
- connection instability;
- timeout configured too aggressively.
Verify:
Timeout = TimeSpan.FromSeconds(30);
Message Published But Confirmation Missing¶
Verify:
- publisher channel remains open;
- broker connection remains open;
- confirmation timeout is sufficient.
Also inspect RabbitMQ logs.
Unexpected Nack¶
A negative acknowledgement indicates the broker could not confirm the publish operation.
Possible causes:
- broker resource issues;
- channel shutdown;
- internal broker failures.
Inspect:
- RabbitMQ logs;
- channel events;
- broker diagnostics.
Observe Channel Events¶
Channel events are often the fastest way to diagnose publisher confirmation issues.
Example:
publisher.OnChannelEventFired.Add(
async (sender, args) =>
{
Console.WriteLine(args);
await Task.CompletedTask;
});
Diagnostic Checklist¶
Verify:
- delivery confirmation enabled;
- timeout configuration;
- channel events enabled;
- broker logs;
- connection stability;
- channel state.