flowable/flowable-engine · error · FlowableIllegalArgumentException
parentDeploymentIdLike is null
Error message
parentDeploymentIdLike is null
What it means
EventDeploymentQueryImpl.parentDeploymentIdLike() throws FlowableIllegalArgumentException when the given like-pattern string is null. Like-filters require a non-null pattern string because a null would be meaningless in the generated SQL LIKE clause. Passing an empty string is allowed; only null is rejected.
Solutions
- Null-check the pattern and only call parentDeploymentIdLike when it is non-null.
- If the filter must always apply, substitute a sensible default pattern such as "%" before the call.
- Fix the upstream source that returned null instead of an empty/default pattern.
Example fix
// before
query.parentDeploymentIdLike(pattern);
// after
if (pattern != null) {
query.parentDeploymentIdLike(pattern);
} Defensive patterns
Strategy: validation
Validate before calling
if (parentDeploymentIdLike == null) { throw new IllegalStateException("parentDeploymentIdLike must not be null"); }
query.parentDeploymentIdLike(parentDeploymentIdLike); Type guard
boolean hasPattern(String s) { return s != null; } Try / catch
try {
query.parentDeploymentIdLike(pattern);
} catch (FlowableIllegalArgumentException e) {
log.warn("Null like-pattern for parentDeploymentIdLike", e);
} Prevention
- Conditionally apply optional like-filters
- Default unresolved placeholders to a fallback pattern
- Validate request parameters at the API boundary
When it happens
Trigger: Calling eventDeploymentQuery().parentDeploymentIdLike(null), typically when the pattern is computed from user input, a template variable, or an optional config value that was never set.
Common situations: Building dynamic search screens where the 'like' filter is optional and the developer passes the raw (null) input instead of conditionally applying the filter; property placeholder that failed to resolve.
Related errors
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/9904df4c261db991.
Report an issue: GitHub.
Appendix: source
Thrown at modules/flowable-event-registry/src/main/java/org/flowable/eventregistry/impl/EventDeploymentQueryImpl.java:117
throw new FlowableIllegalArgumentException("deploymentCategoryExclude is null");
}
this.categoryNotEquals = deploymentCategoryNotEquals;
return this;
}
@Override
public EventDeploymentQueryImpl parentDeploymentId(String parentDeploymentId) {
if (parentDeploymentId == null) {
throw new FlowableIllegalArgumentException("parentDeploymentId is null");
}
this.parentDeploymentId = parentDeploymentId;
return this;
}
@Override
public EventDeploymentQueryImpl parentDeploymentIdLike(String parentDeploymentIdLike) {
if (parentDeploymentIdLike == null) {
throw new FlowableIllegalArgumentException("parentDeploymentIdLike is null");
}
this.parentDeploymentIdLike = parentDeploymentIdLike;
return this;
}
@Override
public EventDeploymentQueryImpl deploymentWithoutTenantId() {
this.withoutTenantId = true;
return this;
}
@Override
public EventDeploymentQueryImpl deploymentTenantId(String tenantId) {
if (tenantId == null) {
throw new FlowableIllegalArgumentException("deploymentTenantId is null");
}
this.tenantId = tenantId;
return this;View on GitHub (pinned to d6d39ce1c6)