flowable/flowable-engine · error · FlowableIllegalArgumentException
Unsupported variable query operation: ${operation}
Error message
Unsupported variable query operation: ${operation} What it means
FlowableIllegalArgumentException thrown when a QueryVariable in the variable-instance query request uses an operation the implementation does not handle. In this CMMN REST module only EQUALS is wired into the switch; any other operator name (GREATER_THAN, LIKE, NEQUALS, ...) reaches the default branch.
Source
Thrown at modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/runtime/variable/VariableInstanceBaseResource.java:141
}
boolean nameLess = variable.getName() == null;
Object actualValue = restResponseFactory.getVariableValue(variable);
// A value-only query is only possible using equals-operator
if (nameLess) {
throw new FlowableIllegalArgumentException("Value-only query (without a variable-name) is not supported");
}
switch (variable.getVariableOperation()) {
case EQUALS:
variableInstanceQuery.variableValueEquals(variable.getName(), actualValue);
break;
default:
throw new FlowableIllegalArgumentException("Unsupported variable query operation: " + variable.getVariableOperation());
}
}
}
}
View on GitHub (pinned to d6d39ce1c6)
Solutions
- Use operation EQUALS for each variable filter in the CMMN variable-instance query
- Filter additional conditions client-side on the returned results
- Check the module source/API docs for the supported operator list before upgrading query code
Example fix
// before
{"variables":[{"name":"count","value":5,"operation":"GREATER_THAN"}]}
// after
{"variables":[{"name":"count","value":5,"operation":"EQUALS"}]} Defensive patterns
Strategy: validation
Validate before calling
const SUPPORTED = ['EQUALS']; const ok = q.variables.every(v => SUPPORTED.includes(v.operation));
Prevention
- Restrict CMMN variable-instance query filters to operation EQUALS
- Do not assume operator parity with the BPMN process variable query API
- Check the switch in VariableInstanceBaseResource when upgrading versions
When it happens
Trigger: POST /cmmn-query/variable-instances with a variables[] entry whose 'operation' is any value other than EQUALS.
Common situations: Clients ported from the process (BPMN) REST API that supports more operators; assuming parity of supported operators across engine REST modules.
Understand the failure class
Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.
Related errors
- Unsupported variable query operation: ${variable.getVariable
- Unsupported variable query operation:
- Variable operation is missing for variable: ${variable.getNa
- Variable value is missing for variable: ${variable.getName()
- Value-only query (without a variable-name) is only supported
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/ad40e5c5e81b7ad4.
Report an issue: GitHub.