flowable/flowable-engine · error · FlowableIllegalArgumentException

resourceName is null

Error message

resourceName is null

What it means

EventDefinitionQueryImpl.eventDefinitionResourceName sets an exact-match filter on the resource name (.event/.json file) of event definitions. It throws FlowableIllegalArgumentException when the resourceName argument is null because a null exact-match filter cannot be represented in the query.

Source

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

    protected void checkVersion(Integer version) {
        if (version == null) {
            throw new FlowableIllegalArgumentException("version is null");
        } else if (version <= 0) {
            throw new FlowableIllegalArgumentException("version must be positive");
        }
    }

    @Override
    public EventDefinitionQueryImpl latestVersion() {
        this.latest = true;
        return this;
    }

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

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

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

View on GitHub (pinned to d6d39ce1c6)

Solutions

  1. Pass a non-null resource name string as deployed with the event definition
  2. Guard the call and skip the filter if the name is unknown (leave it unset for an unfiltered query)
  3. Use eventDefinitionResourceNameLike(...) when only a partial pattern is known

Example fix

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

Strategy: validation

Validate before calling

if (resourceName == null || resourceName.isEmpty()) { throw new IllegalArgumentException("resourceName required for eventDefinitionResourceName()"); }

Type guard

boolean hasText(String s) { return s != null && !s.trim().isEmpty(); }

Try / catch

try { query.eventDefinitionResourceName(name); } catch (FlowableIllegalArgumentException e) { log.warn(" resourceName null, skipping filter"); }

Prevention

When it happens

Trigger: Calling eventDefinitionResourceName(null), typically when the resource name variable comes from an unset config value or an optional map lookup.

Common situations: Config key for the resource file not set, model object missing its resourceName field, refactoring where a default resource name was removed.

Related errors


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