flowable/flowable-engine · error · FlowableIllegalArgumentException
deploymentCategoryLike is null
Error message
deploymentCategoryLike is null
What it means
DeploymentQueryImpl.deploymentCategoryLike(String) throws FlowableIllegalArgumentException when the categoryLike argument is null. The filter is a SQL LIKE on the deployment category column; Flowable validates the argument at the builder call so a null never reaches the query execution.
Solutions
- Pass a non-null LIKE pattern such as "%myCategory%".
- Guard: if (categoryLike != null) query.deploymentCategoryLike(categoryLike).
- Omit the filter when no category pattern is available.
Example fix
// before
query.deploymentCategoryLike(categoryPattern);
// after
if (categoryPattern != null) {
query.deploymentCategoryLike(categoryPattern);
} Defensive patterns
Strategy: validation
Validate before calling
if (categoryPattern != null) {
query.deploymentCategoryLike(categoryPattern);
} Type guard
boolean hasCategoryPattern(String pattern) { return pattern != null && !pattern.isEmpty(); } Try / catch
try {
query.deploymentCategoryLike(categoryLike);
} catch (FlowableIllegalArgumentException e) {
log.warn("Null categoryLike filter ignored", e);
} Prevention
- Default null patterns to an omitted filter
- Build LIKE patterns in one utility to avoid inconsistent null handling
- Validate config templates that generate category patterns
When it happens
Trigger: repositoryService.createDeploymentQuery().deploymentCategoryLike(null), e.g. when a wildcard category pattern comes from a null config value or unset request parameter.
Common situations: Category-based tenant/environment filtering where the pattern template was not filled in; copying query code and forgetting to supply the pattern.
Related errors
- deploymentNameLike is null
- AssigneeLike is null
- AssigneeLike is null
- callbackId is null
- Candidate group is null
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/fb4d67380aff042f.
Report an issue: GitHub.
Appendix: source
Thrown at modules/flowable-engine/src/main/java/org/flowable/engine/impl/DeploymentQueryImpl.java:114
throw new FlowableIllegalArgumentException("deploymentNameLike is null");
}
this.nameLike = nameLike;
return this;
}
@Override
public DeploymentQueryImpl deploymentCategory(String deploymentCategory) {
if (deploymentCategory == null) {
throw new FlowableIllegalArgumentException("deploymentCategory is null");
}
this.category = deploymentCategory;
return this;
}
@Override
public DeploymentQueryImpl deploymentCategoryLike(String categoryLike) {
if (categoryLike == null) {
throw new FlowableIllegalArgumentException("deploymentCategoryLike is null");
}
this.categoryLike = categoryLike;
return this;
}
@Override
public DeploymentQueryImpl deploymentCategoryNotEquals(String deploymentCategoryNotEquals) {
if (deploymentCategoryNotEquals == null) {
throw new FlowableIllegalArgumentException("deploymentCategoryExclude is null");
}
this.categoryNotEquals = deploymentCategoryNotEquals;
return this;
}
@Override
public DeploymentQueryImpl deploymentKey(String deploymentKey) {
if (deploymentKey == null) {
throw new FlowableIllegalArgumentException("deploymentKey is null");View on GitHub (pinned to d6d39ce1c6)