{"record":{"id":"3f5e5a788c8c5c44","repo":"apache/pulsar","slug":"namespace-bundles-do-not-contain-the-child-bundle","errorCode":null,"errorMessage":"Namespace bundles do not contain the child bundle:${childBundle}","messagePattern":"Namespace bundles do not contain the child bundle:(.+?)","errorType":"exception","errorClass":"BrokerServiceException.ServiceUnitNotReadyException","httpStatus":null,"severity":"error","filePath":"pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/extensions/channel/ServiceUnitStateChannelImpl.java","lineNumber":1258,"sourceCode":"        return bundleFactory.getBundlesAsync(parentBundle.getNamespaceObject())\n                .thenCompose(targetNsBundle -> {\n                    boolean found = false;\n                    try {\n                        targetNsBundle.validateBundle(parentBundle);\n                    } catch (IllegalArgumentException e) {\n                        if (debug) {\n                            log.info().attr(\"bundle\", parentBundle)\n                                    .log(\"Namespace bundles do not contain the parent bundle\");\n                        }\n                        for (var childBundle : childBundles) {\n                            try {\n                                targetNsBundle.validateBundle(childBundle);\n                                if (debug) {\n                                    log.info().attr(\"bundle\", childBundle)\n                                            .log(\"Namespace bundles contain the child bundle\");\n                                }\n                            } catch (Exception ex) {\n                                throw FutureUtil.wrapToCompletionException(\n                                        new BrokerServiceException.ServiceUnitNotReadyException(\n                                                \"Namespace bundles do not contain the child bundle:\" + childBundle, e));\n                            }\n                        }\n                        found = true;\n                    } catch (Exception e) {\n                        throw FutureUtil.wrapToCompletionException(\n                                new BrokerServiceException.ServiceUnitNotReadyException(\n                                        \"Failed to validate the parent bundle in the namespace bundles.\", e));\n                    }\n                    if (found) {\n                        return CompletableFuture.completedFuture(targetNsBundle);\n                    } else {\n                        return namespaceService.getSplitBoundary(parentBundle, algorithm, boundaries)\n                                .thenApply(splitBundlesPair -> splitBundlesPair.getLeft());\n                    }\n                });\n    }","sourceCodeStart":1240,"sourceCodeEnd":1276,"githubUrl":"https://github.com/apache/pulsar/blob/820761864ed8e2a7d2e52dd9763ad2ae117c1395/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/extensions/channel/ServiceUnitStateChannelImpl.java#L1240-L1276","documentation":"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.","triggerScenarios":"Thrown at pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/extensions/channel/ServiceUnitStateChannelImpl.java:1258 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"820761864ed8e2a7d2e52dd9763ad2ae117c1395","analyzedAt":"2026-09-06T00:14:20.138Z","contentChangedAt":"2026-09-06T00:14:20.138Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}