flowable/flowable-engine · warning
Exception while autodeploying DMN definitions. This exceptio
Error message
Exception while autodeploying DMN definitions. This exception can be ignored if the root cause indicates a unique constraint violation, which is typically caused by two (or more) servers booting up at the exact same time and deploying the same definitions.
What it means
A WARN from DefaultAutoDeploymentStrategy.deployResourcesInternal: the DMN auto-deployment on application startup threw an exception. When throwExceptionOnDeploymentFailure is false, the exception is swallowed with this message because it is often a unique-constraint violation caused by several server instances deploying identical definitions simultaneously — which is safe to ignore.
Source
Thrown at modules/flowable-dmn-spring/src/main/java/org/flowable/dmn/spring/autodeployment/DefaultAutoDeploymentStrategy.java:71
@Override
protected void deployResourcesInternal(String deploymentNameHint, Resource[] resources, DmnEngine engine) {
DmnRepositoryService repositoryService = engine.getDmnRepositoryService();
// Create a single deployment for all resources using the name hint as the literal name
final DmnDeploymentBuilder deploymentBuilder = repositoryService.createDeployment().enableDuplicateFiltering().name(deploymentNameHint);
for (final Resource resource : resources) {
addResource(resource, deploymentBuilder);
}
try {
deploymentBuilder.deploy();
} catch (Exception e) {
if (isThrowExceptionOnDeploymentFailure()) {
throw e;
} else {
LOGGER.warn("Exception while autodeploying DMN definitions. "
+ "This exception can be ignored if the root cause indicates a unique constraint violation, "
+ "which is typically caused by two (or more) servers booting up at the exact same time and deploying the same definitions. ", e);
}
}
}
}
View on GitHub (pinned to d6d39ce1c6)
Solutions
- Read the nested root cause: if it is a unique constraint (ACT_DMN_DEPLOYMENT / geometric UNIQUE), it is safe to ignore.
- If the root cause is a parse/validation error, fix the .dmn resource — the swallowed warning hides real failures.
- Set the deployment-failure flag (throwExceptionOnDeploymentFailure) to true during development to fail fast on bad DMN files.
- Stagger instance startup or use deployment name/version locking to reduce concurrent-deploy races.
Example fix
// before (application.yml)
flowable:
dmn:
check-definition: false
// after (fail fast during dev)
flowable:
dmn:
enabled: true
# ensure DMN XML validates locally before deploy:
# mvn test -Dtest=DmnDeploymentValidationTest Defensive patterns
Strategy: try-catch
Validate before calling
// validate DMN resources before startup
DmnParser.parseAll(new ClassPathResource("dmn/decision.dmn").getInputStream()); // throws on invalid XML Try / catch
try { dmnEngineRule.deploy(...); } catch (org.flowable.common.engine.api.FlowableException e) { if (!isUniqueConstraint(e)) throw e; /* tolerate race */ } Prevention
- Inspect the nested root cause before ignoring
- Enable throwExceptionOnDeploymentFailure in dev
- Stagger multi-node startups to avoid unique-constraint races
- Validate .dmn files in CI before shipping
When it happens
Trigger: Spring Boot startup with flowable.dmn auto-deployment enabled (classpath .dmn resources) while another node deploys the same definitions at the same moment, or a genuinely failing deployment (bad XML) with auto-deployment failure tolerated.
Common situations: Clustering several booting instances against a shared database; Kubernetes rolling restarts; misconfigured DMN files where the warning masks a real deployment failure.
Related errors
- Exception while autodeploying DMN definitions. This exceptio
- Exception while autodeploying DMN definitions for resource {
- Exception while autodeploying CMMN definitions. This excepti
- Exception while autodeploying CMMN definitions. This excepti
- Exception while autodeploying CMMN definitions for resource
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/a29c5ebaf780afb2.
Report an issue: GitHub.