Skip to content

Topology Issues

Topology issues occur when RabbitMQ objects are missing, incorrectly configured or bound incorrectly.


Queue Not Created

Possible causes:

  • descriptor not configured correctly;
  • client never started;
  • topology creation disabled;
  • insufficient broker permissions.

Verify:

Queue = new QueueDescriptor
{
    Name = "orders.created",
    Durable = true
};

Exchange Not Created

Verify exchange configuration.

Example:

Exchange = new ExchangeDescriptor
{
    Name = "orders",
    Type = ExchangeTypes.Direct,
    Durable = true
};

Common issues:

  • invalid exchange type;
  • permissions;
  • startup failures during topology creation.

Binding Not Created

Verify the binder configuration.

Example:

Binder = new BinderDescriptor
{
    RoutingKey = "orders.created"
};

Verify in RabbitMQ Management UI that:

  • exchange exists;
  • queue exists;
  • binding exists;
  • routing key is correct.

Messages Not Routed

Common causes:

  • routing key mismatch;
  • wrong exchange type;
  • missing binding.

Example:

Publisher:

orders.updated

Subscriber:

orders.created

The message will not reach the queue.


Retry Topology Missing

If retry is enabled:

RetryPolicy = new RetryPolicyDescriptor
{
    Enabled = true
};

Verify that the following objects were created:

<queue>_dlx
<queue>_retry exchange
<queue>_retry queue

Verify the expected bindings:

DLX Exchange -> Retry Queue

Retry Exchange -> Main Queue

Diagnostic Checklist

Verify:

  • queue configuration;
  • exchange configuration;
  • binding configuration;
  • routing keys;
  • retry topology;
  • RabbitMQ permissions;
  • RabbitMQ Management UI topology view.