{"record":{"id":"e89372d9c5e8ae95","repo":"apache/cassandra","slug":"invalid-queue-identifier-split-0-in-describe","errorCode":null,"errorMessage":"Invalid queue identifier ${split[0]} in ${describe}: ${input}","messagePattern":"Invalid queue identifier (.+?) in (.+?): (.+?)","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"src/java/org/apache/cassandra/service/accord/execution/AccordExecutor.java","lineNumber":842,"sourceCode":"        {\n            if (spec.trim().isEmpty()) continue;\n\n            String[] split = spec.split(\":\");\n            if (split.length != 2)\n                throw new IllegalArgumentException(\"Invalid specifier \" + spec + \" in \" + describe + \": \" + input);\n\n            try\n            {\n                Enum<?> queue = get.apply(split[0]);\n                long value = Long.parseLong(split[1]);\n                if (value <= 0 || value >= 128)\n                    throw new IllegalArgumentException(\"Invalid limit \" + value + \" in queue_active_limits: \" + input);\n\n                result |= value << (queue.ordinal() * 8);\n            }\n            catch (Throwable t)\n            {\n                throw new IllegalArgumentException(\"Invalid queue identifier \" + split[0] + \" in \" + describe + \": \" + input);\n            }\n        }\n\n        return result;\n    }\n}\n","sourceCodeStart":824,"sourceCodeEnd":849,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/service/accord/execution/AccordExecutor.java#L824-L849","documentation":"After parsing 'queue:limit', AccordExecutor applies the enum lookup function (GlobalGroup::valueOf or ExclusiveGroup::valueOf) and the Long.parseLong; any failure (unknown queue name, bad number) is caught and rethrown as IllegalArgumentException 'Invalid queue identifier ...' because queue and limit parsing share one try block. It effectively reports unparseable input as an unknown/bad queue identifier.","triggerScenarios":"Using a queue name not present in the GlobalGroup/ExclusiveGroup enum (e.g. 'work:8') or a non-numeric limit ('load:many') in the queue_active_limits property.","commonSituations":"Typos in queue enum names; referencing a queue from the wrong group; version drift where enum constants were renamed between Cassandra releases.","solutions":["Use exactly the enum constant names defined in GlobalGroup/ExclusiveGroup for the relevant group position.","Ensure the limit part is a valid decimal number (also satisfies error 1973's range).","Check the enum constants in your Cassandra version (org.apache.cassandra.service.accord.global/ExclusiveGroup) rather than copying names from docs of another version."],"exampleFix":"// before\n-Dcassandra.acord.queue_active_limits=work:8;local:4\n// after\n-Dcassandra.acord.queue_active_limits=load:8;local:4","handlingStrategy":"validation","validationCode":"for (String name : input.split(\"[;,:]\")) { /* check against known enum constants */ if (!KNOWN_QUEUES.contains(name.trim())) throw new IllegalArgumentException(\"unknown queue: \" + name); }","typeGuard":null,"tryCatchPattern":"try { parse(input); } catch (IllegalArgumentException e) { LOG.error(\"Check queue names against GlobalGroup/ExclusiveGroup enums: {}\", e.getMessage()); }","preventionTips":["Copy queue names from the GlobalGroup/ExclusiveGroup enums of your exact Cassandra version.","Watch for enum renames across upgrades.","Add a smoke test parsing your production flag values."],"tags":["accord","parsing","enum"],"backgroundTag":"invalid-enum-value","analyzedSha":"88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1","analyzedAt":"2026-09-10T07:29:22.284Z","contentChangedAt":"2026-09-10T07:29:22.284Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}