diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/ServerCnx.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/ServerCnx.java index 7d10a43cfe297..cfbbef1ea0bb0 100644 --- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/ServerCnx.java +++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/ServerCnx.java @@ -1475,6 +1475,7 @@ protected void handleAck(CommandAck ack) { final boolean hasRequestId = ack.hasRequestId(); final long requestId = hasRequestId ? ack.getRequestId() : 0; final long consumerId = ack.getConsumerId(); + final CommandAck finalAck = getBrokerService().getInterceptor() != null ? new CommandAck().copyFrom(ack) : null; if (consumerFuture != null && consumerFuture.isDone() && !consumerFuture.isCompletedExceptionally()) { Consumer consumer = consumerFuture.getNow(null); @@ -1484,7 +1485,7 @@ protected void handleAck(CommandAck ack) { requestId, null, null, consumerId)); } if (getBrokerService().getInterceptor() != null) { - getBrokerService().getInterceptor().messageAcked(this, consumer, ack); + getBrokerService().getInterceptor().messageAcked(this, consumer, finalAck); } }).exceptionally(e -> { if (hasRequestId) {