diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/Consumer.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/Consumer.java index cce8fbee88509..bedaabf28d1ee 100644 --- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/Consumer.java +++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/Consumer.java @@ -624,10 +624,12 @@ private void checkCanRemovePendingAcksAndHandle(PositionImpl position, MessageId private Consumer getAckOwnerConsumer(long ledgerId, long entryId) { Consumer ackOwnerConsumer = this; if (Subscription.isIndividualAckMode(subType)) { - for (Consumer consumer : subscription.getConsumers()) { - if (consumer != this && consumer.getPendingAcks().containsKey(ledgerId, entryId)) { - ackOwnerConsumer = consumer; - break; + if (!getPendingAcks().containsKey(ledgerId, entryId)) { + for (Consumer consumer : subscription.getConsumers()) { + if (consumer != this && consumer.getPendingAcks().containsKey(ledgerId, entryId)) { + ackOwnerConsumer = consumer; + break; + } } } }