diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/pendingack/impl/PendingAckHandleImpl.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/pendingack/impl/PendingAckHandleImpl.java index 07a0c0c8b57fc..35d75f1faee77 100644 --- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/pendingack/impl/PendingAckHandleImpl.java +++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/pendingack/impl/PendingAckHandleImpl.java @@ -153,13 +153,20 @@ public PendingAckHandleImpl(PersistentSubscription persistentSubscription) { this.pendingAckStoreProvider = this.persistentSubscription.getTopic() .getBrokerService().getPulsar().getTransactionPendingAckStoreProvider(); - pendingAckStoreProvider.checkInitializedBefore(persistentSubscription).thenAccept(init -> { - if (init) { - initPendingAckStore(); - } else { - completeHandleFuture(); - } - }); + + pendingAckStoreProvider.checkInitializedBefore(persistentSubscription) + .thenAccept(init -> { + if (init) { + initPendingAckStore(); + } else { + completeHandleFuture(); + } + }) + .exceptionally(t -> { + changeToErrorState(); + exceptionHandleFuture(t); + return null; + }); } private void initPendingAckStore() {