flowable/flowable-engine · error · IllegalStateException

Usage of deprecated property. Use FlowableProcessProperties

Error message

Usage of deprecated property. Use FlowableProcessProperties

What it means

FlowableProperties.getRestApiMapping() is a deprecated Spring Boot configuration property getter that has been hardened to throw IllegalStateException on any access. Flowable migrated the flowable.rest-api-mapping property to FlowableProcessProperties (flowable.process.servlet.path) and deliberately fails fast so stale configuration is detected instead of silently ignored. The throw is intentional, not a bug.

Solutions

  1. Remove flowable.rest-api-mapping from application.properties/yml and replace with flowable.process.servlet.path
  2. Replace any direct calls to getRestApiMapping() with injection of FlowableProcessProperties and processProperties.getServlet().getPath()
  3. Rebuild/re-run the app; check startup logs for which property key triggered binding

Example fix

// before (application.yml)
flowable:
  rest-api-mapping: /process-api
// after
flowable:
  process:
    servlet:
      path: /process-api
Defensive patterns

Strategy: validation

Validate before calling

if (env.containsProperty("flowable.rest-api-mapping")) {
    throw new IllegalStateException("Replace flowable.rest-api-mapping with flowable.process.servlet.path");
}

Prevention

When it happens

Trigger: Spring Boot configuration-property binding or metadata processing accesses the getter flowable.rest-api-mapping on FlowableProperties — e.g. a application.properties/yml still defining flowable.rest-api-mapping, or code calling flowableProperties.getRestApiMapping() directly.

Common situations: Upgrading Flowable (6.x -> 7.x / Spring Boot 3) with old flowable.rest-api-mapping keys left in application.yml; IDE auto-completion or generated configuration metadata still referencing the deprecated property; custom auto-configuration code reading the old getter.

Understand the failure class

Background: "is deprecated and will be removed" — deprecation warnings for old API names, keywords, and options, and how to migrate before the removal release — this error's family across 29 libraries.

Related errors


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

Appendix: source

Thrown at modules/flowable-spring-boot/flowable-spring-boot-starters/flowable-spring-boot-autoconfigure/src/main/java/org/flowable/spring/boot/FlowableProperties.java:184

    public void setRestApiEnabled(boolean restApiEnabled) {
        this.restApiEnabled = restApiEnabled;
    }

    public boolean isJpaEnabled() {
        return jpaEnabled;
    }

    public void setJpaEnabled(boolean jpaEnabled) {
        this.jpaEnabled = jpaEnabled;
    }

    /**
     * @deprecated use {@link org.flowable.spring.boot.process.FlowableProcessProperties#getServlet()#getPath()}
     */
    @DeprecatedConfigurationProperty(replacement = "flowable.process.servlet.path")
    @Deprecated
    public String getRestApiMapping() {
        throw new IllegalStateException("Usage of deprecated property. Use FlowableProcessProperties");
    }

    /**
     * @deprecated use {@link org.flowable.spring.boot.process.FlowableProcessProperties#getServlet()#setPath()}
     */
    @Deprecated
    public void setRestApiMapping(String restApiMapping) {
        throw new IllegalStateException("Usage of deprecated property. Use FlowableProcessProperties");
    }

    /**
     * @deprecated use {@link org.flowable.spring.boot.process.FlowableProcessProperties#getServlet()#getName()}
     */
    @DeprecatedConfigurationProperty(replacement = "flowable.process.servlet.name")
    @Deprecated
    public String getRestApiServletName() {
        throw new IllegalStateException("Usage of deprecated property. Use FlowableProcessProperties");
    }

View on GitHub (pinned to d6d39ce1c6)