flowable/flowable-engine · error · FlowableException

Could not find org.flowable.http.HttpActivityBehavior:

Error message

Could not find org.flowable.http.HttpActivityBehavior: 

What it means

For an HTTP service task whose class delegate is used, DefaultCmmnActivityBehaviorFactory.createHttpActivityBehavior tries to load the HttpActivityBehavior class via ClassUtils. If the class is not on the classpath (ClassNotFoundException) it throws this FlowableException naming org.flowable.http.HttpActivityBehavior.

Source

Thrown at modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/parser/DefaultCmmnActivityBehaviorFactory.java:192

                    theClass = Class.forName(fieldExtension.getStringValue());
                    behaviorExtension = fieldExtension;
                    break;
                }
            }

            if (behaviorExtension != null) {
                task.getFieldExtensions().remove(behaviorExtension);
            }

            // Default Http behavior class
            if (theClass == null) {
                return createDefaultHttpActivityBehaviour(planItem, task);
            }

            return classDelegateFactory.create(theClass.getName(), task.getFieldExtensions());

        } catch (ClassNotFoundException e) {
            throw new FlowableException("Could not find org.flowable.http.HttpActivityBehavior: ", e);
        }
    }

    protected CmmnActivityBehavior createDefaultHttpActivityBehaviour(PlanItem planItem, ServiceTask serviceTask) {
        if (ImplementationType.IMPLEMENTATION_TYPE_CLASS.equals(serviceTask.getImplementationType())) {
            return createCmmnClassDelegate(planItem, serviceTask);
        } else if (ImplementationType.IMPLEMENTATION_TYPE_DELEGATEEXPRESSION.equals(serviceTask.getImplementationType())) {
            return createPlanItemDelegateExpressionActivityBehavior(planItem, serviceTask);
        } else {
            return classDelegateFactory.create(DefaultCmmnHttpActivityDelegate.class.getName(), serviceTask.getFieldExtensions());
        }
    }

    @Override
    public CmmnActivityBehavior createEmailActivityBehavior(PlanItem planItem, ServiceTask task) {
        return classDelegateFactory.create(CmmnMailActivityDelegate.class.getName(), task.getFieldExtensions());
    }

View on GitHub (pinned to d6d39ce1c6)

Solutions

  1. Add the flowable-http module dependency (org.flowable:flowable-http) matching your Flowable version.
  2. Remove/replace the HTTP service task in the CMMN model if HTTP calls aren't needed.
  3. If using a custom behavior class, fix the class reference so it points to an existing class on the classpath.
  4. Check for shaded/moved packages after upgrading Flowable (class relocation).

Example fix

// before
<dependency><groupId>org.flowable</groupId><artifactId>flowable-cmmn-engine</artifactId></dependency>
// after
<dependency><groupId>org.flowable</groupId><artifactId>flowable-cmmn-engine</artifactId></dependency>
<dependency><groupId>org.flowable</groupId><artifactId>flowable-http</artifactId><version>${flowable.version}</version></dependency>
Defensive patterns

Strategy: validation

Validate before calling

try {
    Class.forName("org.flowable.http.HttpActivityBehavior");
} catch (ClassNotFoundException e) {
    throw new IllegalStateException("Add org.flowable:flowable-http to the classpath");
}

Try / catch

try { deploy(...); } catch (FlowableException e) { if (e.getMessage().startsWith("Could not find org.flowable.http.HttpActivityBehavior")) { /* add flowable-http dependency */ } throw e; }

Prevention

When it happens

Trigger: A CMMN model contains an HTTP service task (or a class reference to an HttpActivityBehavior) but the flowable-http module is not on the runtime classpath, so the class-delegate class cannot be loaded.

Common situations: Missing org.flowable:flowable-http dependency in the application; deployment moved to a slimmer runtime without the http module; version mismatch where the class was relocated/renamed across Flowable versions.

Related errors


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