Skip to content

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.