apache/pulsar · error · BrokerServiceException.ServiceUnitNotReadyException
Namespace bundles do not contain the child bundle:${childBun
Error message
Namespace bundles do not contain the child bundle:${childBundle} What it means
During bundle-split handling in the service-unit channel, neither the parent bundle nor any candidate child bundle was found in the namespace's current bundle list — the split state references bundles that no longer exist.
Source
Thrown at pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/extensions/channel/ServiceUnitStateChannelImpl.java:1258
return bundleFactory.getBundlesAsync(parentBundle.getNamespaceObject())
.thenCompose(targetNsBundle -> {
boolean found = false;
try {
targetNsBundle.validateBundle(parentBundle);
} catch (IllegalArgumentException e) {
if (debug) {
log.info().attr("bundle", parentBundle)
.log("Namespace bundles do not contain the parent bundle");
}
for (var childBundle : childBundles) {
try {
targetNsBundle.validateBundle(childBundle);
if (debug) {
log.info().attr("bundle", childBundle)
.log("Namespace bundles contain the child bundle");
}
} catch (Exception ex) {
throw FutureUtil.wrapToCompletionException(
new BrokerServiceException.ServiceUnitNotReadyException(
"Namespace bundles do not contain the child bundle:" + childBundle, e));
}
}
found = true;
} catch (Exception e) {
throw FutureUtil.wrapToCompletionException(
new BrokerServiceException.ServiceUnitNotReadyException(
"Failed to validate the parent bundle in the namespace bundles.", e));
}
if (found) {
return CompletableFuture.completedFuture(targetNsBundle);
} else {
return namespaceService.getSplitBoundary(parentBundle, algorithm, boundaries)
.thenApply(splitBundlesPair -> splitBundlesPair.getLeft());
}
});
}View on GitHub (pinned to 820761864e)
Solutions
- Wait for bundle-split metadata to converge and re-check
- Trigger a namespace bundle refresh or investigate stale split state in the system topic
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/extensions/channel/ServiceUnitStateChannelImpl.java:1258 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/3f5e5a788c8c5c44.
Report an issue: GitHub.