flowable/flowable-engine · error · FlowableIllegalArgumentException

category is null

Error message

category is null

What it means

EventDefinitionQueryImpl.eventCategory() throws FlowableIllegalArgumentException ('category is null') when the category argument is null. Like the other query setters, it validates eagerly so the eventual SQL filter is guaranteed valid. It indicates a null category string was passed as a filter criterion.

Solutions

  1. Pass a non-null category string, e.g. eventCategory("my.category")
  2. Guard the call with a null check and skip the filter when absent
  3. Use eventCategoryLike or eventCategoryNotEquals with appropriate null guards for pattern/negated matching

Example fix

// before
query.eventCategory(category);
// after
if (category != null) { query.eventCategory(category); }
Defensive patterns

Strategy: validation

Validate before calling

null

Type guard

null

Try / catch

null

Prevention

When it happens

Trigger: Calling eventCategory(null) on an EventDefinitionQuery, typically when the category is taken from an absent configuration value or request parameter.

Common situations: Category filters wired to optional UI inputs; nulls from deserialized filter DTOs; category constants accidentally null due to static init order.

Related errors


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

Appendix: source

Thrown at modules/flowable-event-registry/src/main/java/org/flowable/eventregistry/impl/EventDefinitionQueryImpl.java:86

        super(commandExecutor);
    }

    @Override
    public EventDefinitionQueryImpl eventDefinitionId(String eventDefinitionId) {
        this.id = eventDefinitionId;
        return this;
    }

    @Override
    public EventDefinitionQueryImpl eventDefinitionIds(Set<String> eventDefinitionIds) {
        this.ids = eventDefinitionIds;
        return this;
    }

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

    @Override
    public EventDefinitionQueryImpl eventCategoryLike(String categoryLike) {
        if (categoryLike == null) {
            throw new FlowableIllegalArgumentException("categoryLike is null");
        }
        this.categoryLike = categoryLike;
        return this;
    }

    @Override
    public EventDefinitionQueryImpl eventCategoryNotEquals(String categoryNotEquals) {
        if (categoryNotEquals == null) {
            throw new FlowableIllegalArgumentException("categoryNotEquals is null");

View on GitHub (pinned to d6d39ce1c6)