flowable/flowable-engine · error · FlowableIllegalArgumentException

deploymentNameLike is null

Error message

deploymentNameLike is null

What it means

AppDeploymentQueryImpl.deploymentNameLike() throws FlowableIllegalArgumentException when the nameLike pattern argument is null. The LIKE filter needs a non-null pattern string; null is rejected at call time.

Source

Thrown at modules/flowable-app-engine/src/main/java/org/flowable/app/engine/impl/repository/AppDeploymentQueryImpl.java:87

            throw new FlowableIllegalArgumentException("Deployment ids is null");
        }
        this.deploymentIds = deploymentIds;
        return this;
    }

    @Override
    public AppDeploymentQueryImpl deploymentName(String deploymentName) {
        if (deploymentName == null) {
            throw new FlowableIllegalArgumentException("deploymentName is null");
        }
        this.name = deploymentName;
        return this;
    }

    @Override
    public AppDeploymentQueryImpl deploymentNameLike(String nameLike) {
        if (nameLike == null) {
            throw new FlowableIllegalArgumentException("deploymentNameLike is null");
        }
        this.nameLike = nameLike;
        return this;
    }

    @Override
    public AppDeploymentQueryImpl deploymentCategory(String deploymentCategory) {
        if (deploymentCategory == null) {
            throw new FlowableIllegalArgumentException("deploymentCategory is null");
        }
        this.category = deploymentCategory;
        return this;
    }

    @Override
    public AppDeploymentQueryImpl deploymentCategoryNotEquals(String deploymentCategoryNotEquals) {
        if (deploymentCategoryNotEquals == null) {
            throw new FlowableIllegalArgumentException("deploymentCategoryExclude is null");

View on GitHub (pinned to d6d39ce1c6)

Solutions

  1. Guard: only call deploymentNameLike when the pattern is non-null (and non-empty).
  2. Normalize empty/null inputs to 'skip this filter' in your query-builder helper.
  3. Provide a default pattern like "%" if you intend an all-match search.
  4. Catch FlowableIllegalArgumentException at the boundary for a clean error message.

Example fix

// before
query.deploymentNameLike(searchTerm); // may be null
// after
if (searchTerm != null && !searchTerm.isEmpty()) {
    query.deploymentNameLike("%" + searchTerm + "%");
}
Defensive patterns

Strategy: validation

Validate before calling

if (nameLike != null && !nameLike.isBlank()) query.deploymentNameLike("%" + nameLike + "%");

Type guard

boolean isNotBlank(String s) { return s != null && !s.isBlank(); }

Try / catch

try {
    query.deploymentNameLike(pattern);
} catch (org.flowable.common.engine.api.FlowableIllegalArgumentException e) {
    throw new javax.ws.rs.BadRequestException("nameLike must not be null", e);
}

Prevention

When it happens

Trigger: Calling deploymentNameLike(null) — the parameter (named nameLike in the API) is null, often an optional search term never defaulted.

Common situations: Building a dynamic query where a wildcard clause is only added sometimes but the call is unconditional; null from an empty form field not normalized to a value.

Understand the failure class

Background: "missing required argument" and "the following required arguments were not provided": what required-argument errors mean and how to fix them — this error's family across 20 libraries.

Related errors


AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11). Data as JSON: /api/errors/92132c91ada80d96. Report an issue: GitHub.