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 HTTP service tasks (flowable:type="http"), DefaultActivityBehaviorFactory.createHttpActivityBehavior loads the HTTP behavior class from the flowable-http module. If that class is not on the classpath, the ClassNotFoundException is wrapped in FlowableException("Could not find org.flowable.http.HttpActivityBehavior: ").
Source
Thrown at modules/flowable-engine/src/main/java/org/flowable/engine/impl/bpmn/parser/factory/DefaultActivityBehaviorFactory.java:367
break;
}
}
if (behaviorExtension != null) {
serviceTask.getFieldExtensions().remove(behaviorExtension);
}
if (theClass == null) {
return createDefaultActivityBehaviour(serviceTask);
}
return classDelegateFactory.create(serviceTask.getId(), theClass.getName(),
createFieldDeclarations(serviceTask.getFieldExtensions()),
serviceTask.isTriggerable(),
getSkipExpressionFromServiceTask(serviceTask), serviceTask.getMapExceptions());
} catch (ClassNotFoundException e) {
throw new FlowableException("Could not find org.flowable.http.HttpActivityBehavior: ", e);
}
}
protected ActivityBehavior createDefaultActivityBehaviour(ServiceTask serviceTask) {
if (ImplementationType.IMPLEMENTATION_TYPE_CLASS.equals(serviceTask.getImplementationType())) {
return createClassDelegateServiceTask(serviceTask);
} else if (ImplementationType.IMPLEMENTATION_TYPE_DELEGATEEXPRESSION.equals(serviceTask.getImplementationType())) {
return createServiceTaskDelegateExpressionActivityBehavior(serviceTask);
} else {
return classDelegateFactory.create(serviceTask.getId(), DefaultBpmnHttpActivityDelegate.class.getName(),
createFieldDeclarations(serviceTask.getFieldExtensions()),
serviceTask.isTriggerable(),
getSkipExpressionFromServiceTask(serviceTask), serviceTask.getMapExceptions());
}
}
@Override
public ActivityBehavior createBusinessRuleTaskActivityBehavior(BusinessRuleTask businessRuleTask) {View on GitHub (pinned to d6d39ce1c6)
Solutions
- Add the flowable-http dependency (org.flowable:flowable-http) to the application
- If HTTP tasks are not intended, remove/replace the http service tasks in the BPMN XML
- Confirm the jar containing org.flowable.http.HttpActivityBehavior is packaged in the deployment artifact
Example fix
// before (pom.xml)
<!-- missing -->
// after (pom.xml)
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-http</artifactId>
<version>${flowable.version}</version>
</dependency> Defensive patterns
Strategy: fallback
Validate before calling
try {
Class.forName("org.flowable.http.HttpActivityBehavior");
} catch (ClassNotFoundException e) {
throw new IllegalStateException("flowable-http module missing from classpath");
} Try / catch
try {
repositoryService.createDeployment().deploy();
} catch (FlowableException e) {
if (e.getMessage().startsWith("Could not find org.flowable.http.HttpActivityBehavior")) {
log.error("Add org.flowable:flowable-http to dependencies");
}
} Prevention
- Add flowable-http dependency when using flowable:type="http" tasks
- Audit process definitions for http tasks before slimming deployments
- Verify packaged jars include optional modules in use
When it happens
Trigger: Deploying or executing a process with <serviceTask flowable:type="http"> while the flowable-http dependency is missing from the engine's runtime classpath.
Common situations: Engine installed without the optional flowable-http module; process definitions using http tasks moved to a slim deployment; dependency exclusions stripping flowable-http.
Related errors
- Could not find org.flowable.http.HttpActivityBehavior:
- Could not find org.flowable.camel.CamelBehavior:
- Found Flowable 5 process definition, but no compatibility ha
- Found Flowable 5 process definition, but no compatibility ha
- Multipart request is required
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/de1a1f14589997d6.
Report an issue: GitHub.