How to Catch and Handle DMN Evaluation Errors in Camunda 7?

Hello,

Has anyone successfully implemented the handling of DMN errors in Camunda using an error handling mechanism such as an Error Boundary Event, Error End Event, or any other approach?

If so, what BPMN/DMN configuration did you use to properly propagate and catch these errors?

I am particularly interested in feedback regarding:

  • How DMN evaluation errors are propagated to the process.

  • Whether they can be intercepted by Error Boundary Events or Error End Events.

  • Any specific BPMN modeling patterns or engine configurations required.

  • Best practices and lessons learned from real-world implementations.

For context, we are using Camunda 7 with Spring Boot and PostgreSQL. Below is a simplified excerpt of our configuration:

========== Camunda ==========

camunda:
bpm:
auto-deployment-enabled: false
database:
type: postgres
schema-update: true
history-level: audit
datasource:
driver-class-name: ${DB_DRIVER:org.postgresql.Driver}
url: ${DB_URL:jdbc:postgresql://127.0.0.1:5431/nspbpmdb}
username: ${DB_USERNAME:postgres}
password: ${DB_PASSWORD:root}
hikari:
pool-name: CAMUNDA-NSP-HIKARI-POOL
max-lifetime: 600000
idle-timeout: 120000
keepalive-time: 60000
connection-timeout: 30000
maximum-pool-size: 10
minimum-idle: 2
connection-test-query: SELECT 1
validation-timeout: 3000
job-executor:
enabled: false
wait-time-in-millis: 500
max-jobs-per-acquisition: 16
lock-time-in-millis: 1200000
admin-user:
id: ${CAMUNDA_ADMIN_USER:admin}
password: ${CAMUNDA_ADMIN_PASSWORD:admin}
firstName: Admin
lastName: User

========== ORD Engine ==========

ord:
bascule:
default-delay-seconds: 45
max-delay-seconds: 7200
active: ${ORD_ACTIVE:false}
engine:
datasource:
hikari:
pool-name: CAMUNDA-ORD-HIKARI-POOL
max-lifetime: 600000
idle-timeout: 120000
keepalive-time: 60000
connection-timeout: 30000
maximum-pool-size: 5
minimum-idle: 1
connection-test-query: SELECT 1
validation-timeout: 3000
job-executor:
wait-time-in-millis: 5000
max-jobs-per-acquisition: 8
lock-time-in-millis: 1200000

*****

Camunda

  • History level: audit

  • Database: PostgreSQL

  • Auto deployment: disabled

  • Job executor: disabled

ORD Engine

  • Dedicated datasource

  • Job executor enabled with custom acquisition settings

Has anyone encountered similar requirements or implemented a robust DMN error handling strategy in Camunda?

Any examples, documentation references, or experience sharing would be greatly appreciated.

Thank you in advance.

1 Like