{"record":{"id":"45a0d5d5c622c57f","repo":"apache/pulsar","slug":"invalid-size-s-valid-formats-are-4096-100k","errorCode":null,"errorMessage":"Invalid size '%s'. Valid formats are: (4096, 100K, 10M, 16G, 2T)","messagePattern":"Invalid size '(.+?)'\\. Valid formats are: \\(4096, 100K, 10M, 16G, 2T\\)","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"pulsar-cli-utils/src/main/java/org/apache/pulsar/cli/converters/ByteUnitUtil.java","lineNumber":46,"sourceCode":"public class ByteUnitUtil {\n\n    private static Set<Character> sizeUnit = Collections.unmodifiableSet(\n            new HashSet<>(Arrays.asList('k', 'K', 'm', 'M', 'g', 'G', 't', 'T')));\n\n    public static long validateSizeString(String byteStr) {\n        if (byteStr.isEmpty()) {\n            throw new IllegalArgumentException(\"byte string cannot be empty\");\n        }\n\n        char last = byteStr.charAt(byteStr.length() - 1);\n        String subStr = byteStr.substring(0, byteStr.length() - 1);\n        long size;\n        try {\n            size = sizeUnit.contains(last)\n                    ? Long.parseLong(subStr)\n                    : Long.parseLong(byteStr);\n        } catch (IllegalArgumentException e) {\n            throw new IllegalArgumentException(String.format(\"Invalid size '%s'. Valid formats are: %s\",\n                    byteStr, \"(4096, 100K, 10M, 16G, 2T)\"));\n        }\n        switch (last) {\n            case 'k':\n            case 'K':\n                return size * 1024;\n\n            case 'm':\n            case 'M':\n                return size * 1024 * 1024;\n\n            case 'g':\n            case 'G':\n                return size * 1024 * 1024 * 1024;\n\n            case 't':\n            case 'T':\n                return size * 1024 * 1024 * 1024 * 1024;","sourceCodeStart":28,"sourceCodeEnd":64,"githubUrl":"https://github.com/apache/pulsar/blob/820761864ed8e2a7d2e52dd9763ad2ae117c1395/pulsar-cli-utils/src/main/java/org/apache/pulsar/cli/converters/ByteUnitUtil.java#L28-L64","documentation":"Size-string parse failure in ByteUnitUtil.validateSizeString: the trailing character is a unit (k/K/m/M/g/G/t/T) but the numeric prefix is not a valid integer, or NumberFormatException otherwise — i.e. the string is malformed relative to the accepted '<number>[unit]' grammar; the byteStr argument is the faulty input.","triggerScenarios":"Thrown at pulsar-cli-utils/src/main/java/org/apache/pulsar/cli/converters/ByteUnitUtil.java:46 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use one of the accepted formats: 4096, 100K, 10M, 16G, 2T"],"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-14T00:17:10.932Z"}