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
- Pass a non-null resource name string as deployed with the event definition
- Guard the call and skip the filter if the name is unknown (leave it unset for an unfiltered query)
- 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
- Verify the exact resource name as stored in ACT_GE_BYTEARRAY / event registry tables
- Null-check optional config lookups before applying filters
- Use the *Like variant when the full name is not known
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.