apache/pulsar · error · RestException
Topic partitions were not yet created
Error message
Topic partitions were not yet created
What it means
The partitioned topic's metadata exists but its actual partitions have not been created yet (partitions == 0 or null metadata), so an operation requiring concrete partition topics fails; typically resolved by triggering partition creation or retrying.
Source
Thrown at pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java:4718
if (!topicName.isPartitioned()) {
return FutureUtil.failedFuture(new RestException(Status.NOT_FOUND,
getTopicNotFoundErrorMessage(topicName.toString())));
}
return getPartitionedTopicMetadataAsync(
TopicName.get(topicName.getPartitionedTopicName()), false, false)
.thenAccept(partitionedTopicMetadata -> {
if (partitionedTopicMetadata == null || partitionedTopicMetadata.partitions == 0) {
final String topicErrorType = partitionedTopicMetadata
== null ? "has no metadata" : "has zero partitions";
throw new RestException(Status.NOT_FOUND, String.format(
"Partitioned Topic not found: %s %s", topicName.toString(), topicErrorType));
}
})
.thenCompose(__ -> internalGetListAsync(Optional.empty(), null))
.thenApply(topics -> {
if (!topics.contains(topicName.toString())) {
throw new RestException(Status.NOT_FOUND, "Topic partitions were not yet created");
}
throw new RestException(Status.NOT_FOUND,
getPartitionedTopicNotFoundErrorMessage(topicName.toString()));
});
}
/**
* Find the subscription or create it when automatic subscription creation is allowed.
*/
private CompletableFuture<Subscription> findOrCreateSubscriptionAsync(String subName, PersistentTopic topic) {
Subscription subscription = topic.getSubscription(subName);
if (subscription != null) {
return CompletableFuture.completedFuture(subscription);
}
return pulsar().getBrokerService().isAllowAutoSubscriptionCreationAsync(topicName)
.thenCompose(isAllowed -> {
Subscription existingSubscription = topic.getSubscription(subName);View on GitHub (pinned to 820761864e)
Solutions
- Re-run partition creation (update partitions) so actual partitions are materialized
- Inspect broker logs for a failed earlier creation attempt
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java:4718 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/pulsar@820761864e (2026-09-06).
Data as JSON: /api/errors/e63af987de8c393d.
Report an issue: GitHub.