What's Actually Happening

Apache Pulsar consumer does not receive messages. Messages are produced but not consumed.

The Error You'll See

python
# Consumer connected but no messages received
consumer.receive()  # Blocks indefinitely

Why This Happens

  1. 1.Wrong subscription type
  2. 2.Messages already acknowledged
  3. 3.Cursor position issue
  4. 4.Broker not reachable
  5. 5.Topic not found

Step 1: Check Topic Stats

bash
pulsar-admin topics stats persistent://public/default/my-topic
pulsar-admin topics list public/default

Step 2: Check Subscription

bash
pulsar-admin topics subscriptions persistent://public/default/my-topic
pulsar-admin topics stats persistent://public/default/my-topic | grep subscriptions

Step 3: Check Consumer Connection

bash
pulsar-admin topics stats persistent://public/default/my-topic | grep consumers

Step 4: Check Message Backlog

bash
pulsar-admin topics stats persistent://public/default/my-topic | grep backlog

Step 5: Reset Cursor

bash
pulsar-admin topics reset-cursor persistent://public/default/my-topic -s my-subscription -t now

Step 6: Check Broker Status

bash
pulsar-admin brokers list
pulsar-admin brokers healthcheck

Step 7: Check Logs

bash
tail -f /var/log/pulsar/broker.log

Step 8: Unsubscribe and Resubscribe

bash
pulsar-admin topics unsubscribe persistent://public/default/my-topic -s my-subscription

Step 9: Check Network

bash
nc -zv pulsar-broker 6650
nc -zv pulsar-broker 8080

Step 10: Test with CLI

bash
pulsar-client consume persistent://public/default/my-topic -s test-sub -n 0
  • [Fix Pulsar Broker Out of Memory](/articles/fix-pulsar-broker-out-of-memory)
  • [Fix Kafka Producer Retries Exceeded](/articles/fix-kafka-producer-retries-exceeded)