diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java index fee5e25647ce6..77cd52f4558ea 100644 --- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java +++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java @@ -1875,7 +1875,10 @@ public void openLedgerFailed(ManagedLedgerException exception, Object ctx) { }, () -> isTopicNsOwnedByBrokerAsync(topicName), null); }).exceptionally((exception) -> { - log.warn("[{}] Failed to get topic configuration: {}", topic, exception.getMessage(), exception); + boolean migrationFailure = exception.getCause() instanceof TopicMigratedException; + String msg = migrationFailure ? "Topic is already migrated" : + "Failed to get topic configuration:"; + log.warn("[{}] {} {}", topic, msg, exception.getMessage(), exception); // remove topic from topics-map in different thread to avoid possible deadlock if // createPersistentTopic-thread only tries to handle this future-result pulsar.getExecutor().execute(() -> topics.remove(topic, topicFuture));