apache/cassandra · error · IllegalArgumentException
Invalid queue identifier
Error message
Invalid queue identifier ${split[0]} in ${describe}: ${input} What it means
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.
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.
Example fix
// before -Dcassandra.acord.queue_active_limits=work:8;local:4 // after -Dcassandra.acord.queue_active_limits=load:8;local:4
Defensive patterns
Strategy: validation
Validate before calling
for (String name : input.split("[;,:]")) { /* check against known enum constants */ if (!KNOWN_QUEUES.contains(name.trim())) throw new IllegalArgumentException("unknown queue: " + name); } Try / catch
try { parse(input); } catch (IllegalArgumentException e) { LOG.error("Check queue names against GlobalGroup/ExclusiveGroup enums: {}", e.getMessage()); } Prevention
- 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.
When it happens
Trigger: 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.
Common situations: Typos in queue enum names; referencing a queue from the wrong group; version drift where enum constants were renamed between Cassandra releases.
Understand the failure class
Background: Invalid enum value errors: "Unknown type", "Invalid scope", "must be one of" — when a string is not on the library's allowed list — this error's family across 23 libraries.
Related errors
- Invalid limit in queue_active_limits
- Invalid specifier in
- Invalid specifiers in
- entries must not be empty
- Unhandled status byte: " + b
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/e89372d9c5e8ae95.
Report an issue: GitHub.
Appendix: source
Thrown at src/java/org/apache/cassandra/service/accord/execution/AccordExecutor.java:842
{
if (spec.trim().isEmpty()) continue;
String[] split = spec.split(":");
if (split.length != 2)
throw new IllegalArgumentException("Invalid specifier " + spec + " in " + describe + ": " + input);
try
{
Enum<?> queue = get.apply(split[0]);
long value = Long.parseLong(split[1]);
if (value <= 0 || value >= 128)
throw new IllegalArgumentException("Invalid limit " + value + " in queue_active_limits: " + input);
result |= value << (queue.ordinal() * 8);
}
catch (Throwable t)
{
throw new IllegalArgumentException("Invalid queue identifier " + split[0] + " in " + describe + ": " + input);
}
}
return result;
}
}
View on GitHub (pinned to 88fd0f6a0e)