flowable/flowable-engine · error · FlowableException
Cannot unacquire external jobs. There is no BPMN or CMMN…
Error message
Cannot unacquire external jobs. There is no BPMN or CMMN engine available
What it means
FlowableException thrown by unaquireExternalWorkerJobs when neither the BPMN managementService nor the CMMN cmmnManagementService is available while trying to unacquire all jobs for a worker. Bulk unacquire needs at least one engine to execute against. Indicates the REST resource has no engine wired.
Solutions
- Configure at least one engine (BPMN or CMMN) so its management service is available to the REST layer.
- Verify flowable.process.enabled / flowable.cmmn.enabled and the datasource configuration.
- Check startup logs for engine initialization errors leaving the services null.
Example fix
// before
flowable:
process:
enabled: false
// after
flowable:
process:
enabled: true Defensive patterns
Strategy: fallback
Validate before calling
if (processEngine == null && cmmnEngine == null) { throw new IllegalStateException("Bulk unacquire unavailable: no engine configured"); } Try / catch
try { unacquireJobs(request); } catch (FlowableException e) { if (e.getMessage().contains("Cannot unacquire external jobs")) { alertOps("Engine misconfiguration"); } } Prevention
- Ensure at least one engine is configured in the REST deployment
- Run a startup health check on ManagementService availability
- Keep engine auto-configuration enabled
When it happens
Trigger: POST /external-worker-job/unacquire/jobs (bulk path via unacquireJobs) on a deployment where both engines are absent or their services failed to inject.
Common situations: Standalone REST module without engine configuration; Spring Boot app with both flowable.process.enabled and flowable.cmmn.enabled set to false; engine startup failure.
Understand the failure class
Background: "not installed", "pip install", "required for": how missing-dependency errors surface across open-source libraries — this error's family across 34 libraries.
Related errors
- Cannot acquire external jobs. There is no BPMN or CMMN…
- Cannot fail external jobs. There is no BPMN or CMMN engine…
- Cannot unacquire BPMN job. There is no BPMN engine available
- Cannot unacquire CMMN job. There is no CMMN engine available
- Can only unacquire BPMN or CMMN external job. Job with id
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/0e4078bdc4184d72.
Report an issue: GitHub.
Appendix: source
Thrown at modules/flowable-external-job-rest/src/main/java/org/flowable/external/job/rest/service/api/acquire/ExternalWorkerUnacquireJobResource.java:132
}
protected void unaquireExternalWorkerJobs(String workerId, String tenantId) {
if (managementService != null) {
if (StringUtils.isNotEmpty(tenantId)) {
managementService.unacquireAllExternalWorkerJobsForWorker(workerId, tenantId);
} else {
managementService.unacquireAllExternalWorkerJobsForWorker(workerId);
}
} else if (cmmnManagementService != null) {
if (StringUtils.isNotEmpty(tenantId)) {
cmmnManagementService.unacquireAllExternalWorkerJobsForWorker(workerId, tenantId);
} else {
cmmnManagementService.unacquireAllExternalWorkerJobsForWorker(workerId);
}
} else {
throw new FlowableException("Cannot unacquire external jobs. There is no BPMN or CMMN engine available");
}
}
}
View on GitHub (pinned to d6d39ce1c6)