flowable/flowable-engine · error · FlowableException
only provided id generation allowed for properties
Error message
only provided id generation allowed for properties
What it means
PropertyEntityImpl.setId deliberately throws FlowableException: property entities (engine configuration rows like next.dbid) use a fixed, provided ID (the property name), so changing the ID programmatically is not allowed. Only the engine's own id generation is permitted.
Solutions
- Set the id through the PropertyEntityImpl constructor (new PropertyEntityImpl(name, value)) instead of setId
- Never mutate the id of an existing property; create a new property entity with the desired name
- Adjust generic entity-handling code to skip setId for PropertyEntity
Example fix
// before
PropertyEntityImpl prop = new PropertyEntityImpl();
prop.setId("next.dbid"); // throws
// after
PropertyEntityImpl prop = new PropertyEntityImpl("next.dbid", "1"); Defensive patterns
Strategy: type-guard
Validate before calling
if (entity instanceof PropertyEntity) {
// don't call setId; id is the property name set via constructor
} Type guard
void safeSetId(Object entity, String id) {
if (entity instanceof PropertyEntity) throw new UnsupportedOperationException("property ids are immutable");
} Try / catch
try {
propertyEntity.setId(id);
} catch (FlowableException e) {
if (e.getMessage().contains("only provided id generation allowed")) {
// recreate property with desired name instead
}
throw e;
} Prevention
- Construct PropertyEntityImpl with the id/name in the constructor
- Skip setId in generic entity hydration for PropertyEntity
- Treat property ids as immutable
When it happens
Trigger: Calling setId(...) on a PropertyEntity instance, typically via code that generically assigns ids to entities or mutates properties after creation.
Common situations: Generic persistence/serialization code invoking setId on all entities; custom code building PropertyEntity objects and then trying to rename the property; reflection-based mappers assigning ids.
Understand the failure class
Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.
Related errors
- Behavior is not supported for a case task for
- can't clear configuration beans
- can't clear configuration beans
- can't search values in configuration beans
- can't search values in configuration beans
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/dcdadf491c804931.
Report an issue: GitHub.
Appendix: source
Thrown at modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/persistence/entity/PropertyEntityImpl.java:72
@Override
public void setValue(String value) {
this.value = value;
}
@Override
public String getId() {
return name;
}
@Override
public Object getPersistentState() {
return value;
}
@Override
public void setId(String id) {
throw new FlowableException("only provided id generation allowed for properties");
}
// common methods //////////////////////////////////////////////////////////
@Override
public String toString() {
return "PropertyEntity[name=" + name + ", value=" + value + "]";
}
}
View on GitHub (pinned to d6d39ce1c6)