flowable/flowable-engine · error · FlowableIllegalArgumentException

categoryNotEquals is null

Error message

categoryNotEquals is null

What it means

EventDefinitionQueryImpl.eventCategoryNotEquals() throws FlowableIllegalArgumentException ('categoryNotEquals is null') when the argument is null. The negated-equality category filter requires a non-null value; null would be meaningless in SQL (NULL != x is unknown), so the library rejects it eagerly.

Solutions

  1. Pass a non-null category string to exclude, e.g. eventCategoryNotEquals("internal.category")
  2. Guard the call with a null check and omit the exclusion when absent
  3. If you need NULL-exclusion semantics, use the dedicated isNotNull-style query methods instead of passing null

Example fix

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

Strategy: validation

Validate before calling

null

Type guard

null

Try / catch

null

Prevention

When it happens

Trigger: Calling eventCategoryNotEquals(null), commonly when excluding a category that was never set in configuration or was returned null by a lookup.

Common situations: 'Exclude category' filters bound to empty config values; null category constants; refactors that made an exclusion field optional without updating callers.

Related errors


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

Appendix: source

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

            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");
        }
        this.categoryNotEquals = categoryNotEquals;
        return this;
    }

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

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

View on GitHub (pinned to d6d39ce1c6)