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

  1. Set the id through the PropertyEntityImpl constructor (new PropertyEntityImpl(name, value)) instead of setId
  2. Never mutate the id of an existing property; create a new property entity with the desired name
  3. 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

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


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)