8.11 Release announcements
Supported environment changes, breaking changes, and deprecations in Camunda 8.11.
APIs & tools
Batch process instance operations now narrow and validate the state filter
Starting with 8.11, the batch operations to modify, migrate, resolve incidents, suspend, resume, and cancel process instances narrow your state filter with the state the operation requires, and validate it.
Previously, the API documentation described the state filter as "ignored and overridden". This didn't match the actual behavior, which differed by operation.
| Operation | Required state | Previous behavior |
|---|---|---|
| Modify | ACTIVE | Combined your filter with the required state. |
| Migrate | ACTIVE | Combined your filter with the required state. |
| Resolve incidents | ACTIVE | Combined your filter with the required state. |
| Suspend | ACTIVE | Replaced your filter with the required state. |
| Resume | SUSPENDED | Replaced your filter with the required state. |
| Cancel | ACTIVE and SUSPENDED | Combined your filter with the required state. |
The following rules apply to all six operations:
- A top-level
statefilter that uses$eqor$inwith a state outside the required states is rejected with400 Bad Request. Modify, migrate, and resolve incidents previously accepted such a filter and created an empty batch. Suspend and resume previously discarded the filter. Cancel already rejected it. - States inside
$orbranches aren't validated. A branch that conflicts with the required state matches no instances. Cancel previously rejected invalid states in$orbranches. - The
$neq,$exists, and$likeoperators on a top-levelstateare applied as given.
The following changes apply to the parentProcessInstanceKey filter:
- Suspend and resume now apply the filter as given. Previously, they discarded it and could act on instances outside your filter.
- Cancel now narrows the filter to root instances instead of replacing it. A filter that matches only child instances selects no instances and doesn't return an error.
Action: Remove a conflicting top-level state filter from your batch requests, or move it into an $or branch. If your integration relied on suspend or resume discarding your parentProcessInstanceKey filter, review the filter, because it now limits the batch.