{"record":{"id":"65df29ee7727fcda","repo":"apache/pulsar","slug":"backlog-scan-max-entries-must-be-greater-than-0","errorCode":null,"errorMessage":"--backlog-scan-max-entries must be greater than 0","messagePattern":"--backlog-scan-max-entries must be greater than 0","errorType":"validation","errorClass":"ParameterException","httpStatus":null,"severity":"error","filePath":"pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java","lineNumber":3040,"sourceCode":"                required = false)\n        private boolean plainPrint = false;\n\n        @Override\n        void run() throws Exception {\n            String persistentTopic = validatePersistentTopic(topicName);\n            Optional<MessageId> startPosition = Optional.empty();\n            int partitionIndex = TopicName.get(persistentTopic).getPartitionIndex();\n            if (isNotBlank(messagePosition)) {\n                MessageId messageId = validateMessageIdString(messagePosition, partitionIndex);\n                startPosition = Optional.of(messageId);\n            }\n\n            AnalyzeSubscriptionBacklogResult backlogResult;\n            if (backlogScanMaxEntries == null) {\n                backlogResult = getTopics().analyzeSubscriptionBacklog(persistentTopic, subName, startPosition);\n            } else {\n                if (backlogScanMaxEntries <= 0) {\n                    throw new ParameterException(\"--backlog-scan-max-entries must be greater than 0\");\n                }\n                backlogResult = getTopics().analyzeSubscriptionBacklog(persistentTopic, subName, startPosition,\n                        result -> {\n                            boolean terminate = result.getEntries() >= backlogScanMaxEntries;\n                            if (!quiet && !terminate) {\n                                print(result, !plainPrint);\n                            }\n                            return terminate;\n                        });\n            }\n            print(backlogResult, !plainPrint);\n        }\n    }\n\n    @Command(description = \"Get the schema validation enforced\")\n    private class GetSchemaValidationEnforced extends CliCommand {\n        @Parameters(description = \"persistent://tenant/namespace/topic\", arity = \"1\")\n        private String topicName;","sourceCodeStart":3022,"sourceCodeEnd":3058,"githubUrl":"https://github.com/apache/pulsar/blob/820761864ed8e2a7d2e52dd9763ad2ae117c1395/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java#L3022-L3058","documentation":"CLI option validation for subscription analysis: the --backlog-scan-max-entries option was given a value of zero or less, which would scan nothing, so AnalyzeSubscriptionBacklog is rejected before starting; the numeric option value is the faulty input.","triggerScenarios":"Thrown at pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java:3040 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass a value greater than 0 for --backlog-scan-max-entries","Omit the flag to use the default"],"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"}