Releases: camunda/camunda
Releases · camunda/camunda
8.10.0-alpha1-rc2
version:8.10.0-alpha1-rc2
Bug Fixes
Misc
- Regression in 8.9.1 leads to variables local to an ad-hoc sub-process inner instance scope to leak into the parent scope (#51939)
8.10.0-alpha1-rc1
version:8.10.0-alpha1-rc1
Enhancements
Java Client
- API: Allow filtering and sorting by BusinessId in process instances search queries (#47246)
- Missing Exponential Backoff for OIDC Token Requests in Camunda Java Client (#44815)
- Use
OffsetDateTimefor date-time fields in java client (#33678)
Misc
- Engine: Propagate Business Id to child process instances (Call Activity: inherit-only for MVP) (#44980)
- Gateway: Stable partition routing for Business Id uniqueness (#44979)
- API: Support Business Id on process instance start (REST + gRPC) (#44977)
- Optimize: support extraConfiguration via SPRING_CONFIG_IMPORT (parity with orchestration) (#44820)
- [REST endpoints] Forward compatibility (#41936)
- Improve backup/restore usability: always ensure missing index templates are created (>=8.8) (#40675)
- [CPT] I can use a test environment globally (#29131)
- Support client side load balancing (#9870)
Bug Fixes
Broker
- Fail to throw/catch error if the job is based by a message throw event (#8662)
- RoleChangeListener is not called after becoming Leader (#4409)
Gateway
- NullPointerException in MCP gateway for null userTaskKey in getUserTask (#48201)
- NullPointerException in MCP gateway for null userTaskKey in searchUserTaskVariables (#48197)
- NullPointerException in MCP gateway for null incidentKey in resolveIncident (#48196)
- Partition retry inconsistency between gRPC and REST gateways for process instance creation (#46756)
- Gateway can easily overwhelm broker with handling blocking jobs (long polling) (#7659)
Java Client
- [CPT] Slow test execution and test failures if the client prefers REST (#45667)
Misc
- Tests for Swagger consistently fail for Legacy Operate E2E CI (#51702)
- Navigating to deleted process from Batch Operation view leads to blank screen (#51530)
- Variables tab stuck in infinite loading state when editing or adding a large (truncated) variable (#51469)
- Uncaught error incidents not visible in Operate process diagram view (#51400)
- Process instance migration falsely rejects mapped catch events on multi-instance subprocesses (#51295)
- Partition blocked by endless RocksDB retry loop
Caught recoverable exception(#50958) - fix: MCP tool schemas emit Swagger sentinel ##default as default value (#50934)
- Millions of logs in load tests that subscription can't be found (#50655)
- ZeebeDbInconsistentException on
GLOBAL_LISTENER_PINNED_CONFIG(#50518) - Tasklist pod OOM crash when opening advanced filter modal with 1000+ process definitions (#50396)
- SUSPEND audit log entityKey does not match batchOperationKey (#50311)
- Operate Operations Log filters show Identity-related entities (#50305)
- Optimize user task import spams logs for missing due date (#50145)
- Incident panel remains visible (shows 0 incidents) when navigating to a task without incidents (#50002)
- Scheduled flush timer in CamundaExporter get starved under sustained load (#49820)
- Failure to deserialise DbCheckpointState (#49812)
- NullPointerException for OperationType when handling BatchOperationChunkRecordValue (#49765)
- Task is not highlighted after navigating to History tab (#49707)
- fix: e2e job API tests share job type across parallel workers causing flaky 409 tests (#49604)
- Audit Log API: Sentinel Values Returned Instead of null (#49564)
- per-process-definition round-robin dispatch for CreateProcessInstance (#49530)
- Bug: Operate Listeners tab shows all jobs instead of only execution/task listeners (#49525)
- RESUME audit log entityKey does not match batchOperationKey (#49513)
- Inconsistent display: Identity name shows as 'Identity' in dashboard/app switcher but as 'Admin' in cluster details (Helm Chart, 8.9 snapshot) (#49512)
- Stored External Content Injection (#49491)
- Missing Navigation to Root Decision Instance in DMN Incidents (#49425)
- Batch Operation Details page cannot be scrolled (#49410)
- Incident tab context remains visible after incident resolution in Operate details view (#49220)
- Make incidents tab incident counter respond to current user selection (#49161)
- Swagger UI POST requests results in a 401 with CSRF validation error (#48902)
- Authorization search endpoint does not return
page.startCursorandpage.endCursor(#48857) - Assigning roles to groups during initialization doesn't work (#48856)
- USER_TASK authorization cannot be re-created (#48847)
- Fullscreen toggle does not work in Operate diagram controls (Chrome) (#48823)
- UI: No margin in Input/Output Mappings panel list (#48801)
- Process instance details page doesn't handle permission errors on process instance history (#48728)
- MCP gateway: invalid search filter values cause 500 with Java class name leak (#48578)
- Batch move of regular ad-hoc subprocess corrupts the process instance (#48530)
- Operate UI shows incorrect token count when moving MI instances to an outside element (#48527)
- Process Instance with
tagdoes not complete (#48502) - duplicate WHERE clause in MessageSubscriptionMapper getProcessDefinitionStatistics query (#48387)
- Tooltip not displaying correctly when hover over on the 3 dots for batch operation details page (#48386)
- Admin Operations Log. Filters are using different styles and some filters can't be reset (#48279)
- Client Entity Incorrectly Labeled as "User" in Admin Operations Log (#48256)
- Swagger UI again only works using the authenticated tab (#48243)
- Task History tab content is not updated after some operation was perform (#48240)
- Excessive v2/element-instances/search requests and Instance History flickering on navigation (#48198)
- NullPointerException in MCP gateway for null incident key parameter (#48195)
- Optimize-client: Make maven build resilient to 'yarn install' failures (#48153)
- Raft bootstrap can block broker shutdown (#48136)
- Persistent web sessions broken on H2 - CAST(? AS BLOB) type mismatch (#48092)
- Resource access check failing when retrieving specific Global Task Listeners via API (#48056)
- Unauthenticated OIDC API requests return an invalid OAuth 2.0 Protected Resource Metadata link (#47773)
- [CPT] Process coverage report doesn't show completed ad-hoc sub-process elements (#47653)
- Optimize FE crashes with invalid dashboard filters ([#47595](https://github.com/camunda...
8.9.2
version:8.9.2
Bug Fixes
Java Client
- [Java client] Topology response doesn't return the property
lastCompletedChangeId(#51559)
Misc
- Regression in 8.9.1 leads to variables local to an ad-hoc sub-process inner instance scope to leak into the parent scope (#51939)
- Tests for Swagger consistently fail for Legacy Operate E2E CI (#51702)
- Navigating to deleted process from Batch Operation view leads to blank screen (#51530)
- Process instance statistics API does not return incident counts for multi-instance bodies correctly (#51251)
- Partition blocked by endless RocksDB retry loop
Caught recoverable exception(#50958) - GET Decision Instance API doesn't return Bad Request (#43425)
- Some endpoints are falsely disabled when secondary storage is disabled (#40199)
Maintenance
- Spring Client stream warning (#25535)
Task
- Bump
thymeleafversion (#51487) - load-tests: remove backward compatibility for single-zone scheduling (#50568)
- Add CVE scanning to frontend runtime deps (#50406)
- Add comprehensive e2e ITs for the full archiver pipeline (#49826)
- Prevent NPE when permissions configuration has null/empty value (#42323)
- [Improvement] Automate creating the upgrade plan for Optimize release (#40258)
- Reduce log level of client timeouts warning for job stream (#31577)
Merged Pull Requests
- feat: add streamInactivityTimeout watchdog to JobStreamer (#51616)
- feat: opt-in OIDC userinfo augmentation for bearer tokens (#51537)
- fix: upload GCS backup files via
InputStreamto avoid CRC32C mismatch (#45646) - fix: several user endpoints do not require secondary storage (#40200)
- fix: schedule jobs stream recreation (#35892)
- deps: Update spring boot to v3.3.0 (main) (#18776)
8.8.23
version:8.8.23
Bug Fixes
Broker
- Fail to throw/catch error if the job is based by a message throw event (#8662)
Misc
- Uncaught error incidents not visible in Operate process diagram view (#51400)
- Process instance migration falsely rejects mapped catch events on multi-instance subprocesses (#51295)
- Millions of logs in load tests that subscription can't be found (#50655)
- Incidents do not get handled correctly on job worker to Camunda user task migration (#49714)
- 'Assign to me' spinner blocks assignment when switching tasks quickly (#49133)
- Unassign User Task with wrong error description on 404 (#38880)
- All values in a nested variable are merged to parent scope when one value from the variable is listed as an output mapping (#35251)
Task
- Bump
thymeleafversion (#51487) - Ensure all release load tests run on single AZ with stable VMs (#50877)
- Improve event applier golden files experience (#36434)
- Investigate better default bulk delay for Camunda Exporter (#33165)
Merged Pull Requests
8.9.1
version:8.9.1
Enhancements
Java Client
- Missing Exponential Backoff for OIDC Token Requests in Camunda Java Client (#44815)
Bug Fixes
Broker
- Fail to throw/catch error if the job is based by a message throw event (#8662)
Java Client
- [CPT] Slow test execution and test failures if the client prefers REST (#45667)
Misc
- Uncaught error incidents not visible in Operate process diagram view (#51400)
- Process instance migration falsely rejects mapped catch events on multi-instance subprocesses (#51295)
- Partition blocked by endless RocksDB retry loop
Caught recoverable exception(#50958) - fix: MCP tool schemas emit Swagger sentinel ##default as default value (#50934)
- Millions of logs in load tests that subscription can't be found (#50655)
- Actor Icon Same for User and Client in Admin Operations Log (#50598)
- ZeebeDbInconsistentException on
GLOBAL_LISTENER_PINNED_CONFIG(#50518) - Tasklist pod OOM crash when opening advanced filter modal with 1000+ process definitions (#50396)
- SUSPEND audit log entityKey does not match batchOperationKey (#50311)
- Operate Operations Log filters show Identity-related entities (#50305)
- Optimize user task import spams logs for missing due date (#50145)
- Evaluate an expression API response schema expects result to be unknown, not null (#50091)
- io.camunda.zeebe.engine.processing.processinstance.ProcessInstanceMigrationMigrateProcessor$SafetyCheckFailedException: Expected to migrate a job for user task but could not find job with key '0' (#50023)
- Usage metrics don't track RPIs started via message (#50010)
- Incident panel remains visible (shows 0 incidents) when navigating to a task without incidents (#50002)
- Failure to deserialise DbCheckpointState (#49812)
- Standalone Decision Instance Archiver job fails constantly (#49761)
- Incidents do not get handled correctly on job worker to Camunda user task migration (#49714)
- Task is not highlighted after navigating to History tab (#49707)
- Audit Log API: Sentinel Values Returned Instead of null (#49564)
- Bug: Operate Listeners tab shows all jobs instead of only execution/task listeners (#49525)
- RESUME audit log entityKey does not match batchOperationKey (#49513)
- Inconsistent display: Identity name shows as 'Identity' in dashboard/app switcher but as 'Admin' in cluster details (Helm Chart, 8.9 snapshot) (#49512)
- Batch Operation Lifecycle Audit Log Entries Are Not Deduplicated (#49428)
- Missing Navigation to Root Decision Instance in DMN Incidents (#49425)
- Batch Operation Details page cannot be scrolled (#49410)
- Operations Log table. 'Version' filter resumes other filters (#49391)
- Make incidents tab incident counter respond to current user selection (#49161)
- 'Assign to me' spinner blocks assignment when switching tasks quickly (#49133)
- Failed to start with Spring AOT cache on (#49131)
- Assigning roles to groups during initialization doesn't work (#48856)
- UI: No margin in Input/Output Mappings panel list (#48801)
- Schema Manager can fail reads and deletes with long requests (#47023)
- [8.9.0-alpha4+] Legacy Operate OpensearchConnector ignores awsEnabled — crashes on IRSA deployments (#45761)
- Optimize cannot output JSON logs with Stackdriver (#45223)
- Cannot assign user/group/tenant/etc. with slashes in the name (#45215)
- [CPT] Allow setting
preferRestOverGrpc=trueinCamundaSpringCamundaProcessTest(#45177) - Leftover service worker rewrites URLs of new Identity UI (#44867)
- Operate V1 decision instance search fails for standalone evaluated decisions (#44592)
- Scrolling gets stuck in Tasklist v1 with large process list and search returns 500 error (#44583)
- Tasklist filter resets after selecting completed task (#43889)
- Elasticsearch unreachable during Zeebe startup and shutdown: exporter retries, timeouts, and thread interruption errors (#43266)
- Call hierarchy is not correct on modified process instance (#42729)
- Stop the OC when port 26502 is already in use (#42581)
- Batch Operations show 'Completed' state even when operationsCompletedCount !== operationsTotalCount (#42478)
- Bug: Tenant cluster variable creation responds 200 OK for invalid tenant instead of 404/400 (#42049)
- Handle WebSessionRepository exception when failing to save session (#39705)
- Make archiver bypass delayBetweenRuns when backlog exists; reschedule next run immediately (#39196)
- No error message is returned in UI when a user without Batch Operation Authorization try to migrate process instance on SM env (#39075)
- Unassign User Task with wrong error description on 404 (#38880)
- Sort by Version fails after applying Process Instance filter (#38103)
- When user has no access to update userTask no message is displayed in the UI (#37230)
- All values in a nested variable are merged to parent scope when one value from the variable is listed as an output mapping (#35251)
- Release: Maven Release Plugin commits fail spotless check due to XML formatting inconsistency (#35247)
- Incident metrics are greater than the actual number of incidents (#34328)
- java.lang.IllegalStateException: Expected to find element instance for given key, but didn't exist. (#26755)
- Scheduled commands cache uses the wrong intent for caching message expiry (#15574)
- Error on ProcessInstanceCreation with large variable size (#13016)
- When submitting a payload lower than the configured
maxMessageSize, the request fails withEXCEEDED_BATCH_RECORD_SIZE(#12873) - Create process instance with start instructions exceeding record batch size leads to errors (#10336)
Maintenance
- CI: move all repository secrets to Vault (#18211)
Task
- Optimize load test Docker image builds (#50881)
- Ensure all release load tests run on single AZ with stable VMs (#50877)
- Fix Camunda Exporter nightly tests on AWS (#50755)
- Fix flaky ElasticsearchPayloadSizeIT.shouldAcceptOrRejectBasedOnPayloadSize (#50739)
- [CPT] Flaky test
io.camunda.ConnectorProcessTest.shouldInvokeConnectors(#50530) - Passing correct tags for components in release load test (#50323)
- Schedule load tests in a single availability zone (#50028)
- Add missing unit test for flush timer (#50003)
- Better handle nested incidents on the new incidents tab ([#49165]...
8.7.28
version:8.7.28
Bug Fixes
Misc
- Process instance migration falsely rejects mapped catch events on multi-instance subprocesses (#51295)
- Partition blocked by endless RocksDB retry loop
Caught recoverable exception(#50958) - Millions of logs in load tests that subscription can't be found (#50655)
- 'Assign to me' spinner blocks assignment when switching tasks quickly (#49133)
- All values in a nested variable are merged to parent scope when one value from the variable is listed as an output mapping (#35251)
- java.lang.IllegalStateException: Expected to find element instance for given key, but didn't exist. (#26755)
Task
- Optimize load test Docker image builds (#50881)
- Ensure all release load tests run on single AZ with stable VMs (#50877)
Merged Pull Requests
- fix: reset AssignButton state when switching tasks to prevent spinner blocking assignment (#50988)
8.8.22
version:8.8.22
Bug Fixes
Misc
- Partition blocked by endless RocksDB retry loop
Caught recoverable exception(#50958) - Scroll contexts leaked in ElasticsearchUtil.scrollWith on error paths (#50892)
- Tasklist pod OOM crash when opening advanced filter modal with 1000+ process definitions (#50396)
- Date picker inputs are not populated correctly with existing dates (#50378)
- Optimize user task import spams logs for missing due date (#50145)
- io.camunda.zeebe.engine.processing.processinstance.ProcessInstanceMigrationMigrateProcessor$SafetyCheckFailedException: Expected to migrate a job for user task but could not find job with key '0' (#50023)
- Usage metrics don't track RPIs started via message (#50010)
- Post exporter queue reads from beginning after upgrade to 8.8 (#49374)
- Failed to start with Spring AOT cache on (#49131)
- Assigning roles to groups during initialization doesn't work (#48856)
- Optimize-client: Make maven build resilient to 'yarn install' failures (#48153)
- Schema Manager can fail reads and deletes with long requests (#47023)
- Cannot assign user/group/tenant/etc. with slashes in the name (#45215)
- Scrolling gets stuck in Tasklist v1 with large process list and search returns 500 error (#44583)
- Call hierarchy is not correct on modified process instance (#42729)
- Stop the OC when port 26502 is already in use (#42581)
- Batch Operations show 'Completed' state even when operationsCompletedCount !== operationsTotalCount (#42478)
- Handle WebSessionRepository exception when failing to save session (#39705)
- Make archiver bypass delayBetweenRuns when backlog exists; reschedule next run immediately (#39196)
- No error message is returned in UI when a user without Batch Operation Authorization try to migrate process instance on SM env (#39075)
- Progress bar remain appear after retry in operate (#38518)
QueryBatchOperationTestis flaky (#37289)- Operate process instance modification only cancels 10 tokens in a multi instance (#37282)
- When user has no access to update userTask no message is displayed in the UI (#37230)
- java.lang.IllegalStateException: Expected to find element instance for given key, but didn't exist. (#26755)
- Scheduled commands cache uses the wrong intent for caching message expiry (#15574)
Maintenance
- CI: move all repository secrets to Vault (#18211)
Task
- Optimize load test Docker image builds (#50881)
- Fix flaky ElasticsearchPayloadSizeIT.shouldAcceptOrRejectBasedOnPayloadSize (#50739)
- [CPT] Flaky test
io.camunda.ConnectorProcessTest.shouldInvokeConnectors(#50530) - Passing correct tags for components in release load test (#50323)
- Schedule load tests in a single availability zone (#50028)
- In daily stress tests use both REST and gRPC for comparison (#48977)
- Run with REST API by default in long-running load tests (#48976)
- Change default load test setup to include full coverage (main) (#48742)
- Add
camunda-process-test-spring-boot-3to 8.8 (#48283) - Process instance archiving reindexes already archived process instances (#48200)
- Rename
camunda-process-test-spring-4tocamunda-process-test-spring-boot-4(#47483) OAuth2AuthenticationExceptionare logged atERRORin gateway (#46234)- Refactor archive date tracking logic in Elasticsearch and Opensearch archiver repositories (#43931)
- (P1) Re-enable and validate accessibility color-contrast checks (#40261)
- Handle WebSessionRepository exception when failing to save session (#39705)
Merged Pull Requests
- test: fix failing ProcessZeebeImportIT (#50914)
- fix: always clear ES scroll context on exception (#50896)
- test: Make
io.camunda.ConnectorProcessTest.shouldInvokeConnectorsreliable (#50548) - fix: resolve flaky UsageMetricRpiTest by waiting for state commit before assertions (#50467)
- fix: align OpenSearch load test config with Elasticsearch settings (#50463)
- fix: gracefully handle ES/OS failures in health indicators (#50432)
- refactor: replace use-official-docker-images with orchestration-tag and add per-component image tags (#50417)
- ci: show load tests inputs in the job summary (#50393)
- fix: preserve call hierarchy when modifying child process instances (#50366)
- feat: migrate SLACK_WEBHOOK_URL to Vault in Zeebe CI workflows (#50358)
- fix: rework message batch expiry to avoid scheduled command cache (#50346)
- fix: replace load test secret placeholder on redeploy (#50338)
- feat: replace BACKPORT_ACTION_PAT with Monorepo DevOps Automation GitHub App (#50333)
- When port is not available complete exceptionally, and log error. (#50280)
- feat: migrate AUTOMERGE_TOKEN to Monorepo Release GitHub App via Vault (#50266)
- feat: migrate SLACK_CAMUNDA_EX_CI_WEBHOOK from repo secret to Vault (#50257)
- feat: Update job runner (#50217)
- fix: use --reset-then-reuse-values in install-load-test Makefile targets (#50205)
- test: reenable contrast tests (#50171)
- fix: validate official docker images require explicit reuse-tag (#50162)
- fix: remove pretty-print JSON serialization in UserTaskCompletionVariableHandler (#50161)
- fix: silence log spam for user tasks without due date (#50153)
- Use same ratio for cache to total memory as in 8.7. (#50141)
- perf: batch RocksDB transactions in ExportersState.setExporterState (#50138)
- fix: add grace period to OAuth token validity and synchronize retry refresh (#50124)
- feat: add disabledQueries config to filter out read benchmark queries (#50111)
- feat: configure minimumReleaseAge for renovate (#50101)
- test: remove axios dependency (#50100)
- fix: use conservative memory tracking for exporter flush (#50054)
- fix: handle non-numeric formKey in FlowNodeInstanceMetadataBuilder (#50017)
- fix: track RPI usage metrics for process instances started via message, timer, and signal (#50012)
- feat: add trace logging for entity size in ES bulk request payloads (#49964)
- fix: handle assignment/unassignment/completion notification for lack of permissions (#49872)
- ci: split GH release into 2 parts + create changelog file + fisrt update assests (#49768)
- fix: remove all registered meters when ...
8.7.27
version:8.7.27
Bug Fixes
Misc
- Scroll contexts leaked in ElasticsearchUtil.scrollWith on error paths (#50892)
- Scrolling gets stuck in Tasklist v1 with large process list and search returns 500 error (#44583)
- Stop the OC when port 26502 is already in use (#42581)
- Operate (SM OpenSearch) does not show link to executed decision instance (#41929)
- The C8Run Docker distribution can't be shut down using './shutdown.sh --docker' command (#37323)
- Scheduled commands cache uses the wrong intent for caching message expiry (#15574)
Maintenance
- CI: move all repository secrets to Vault (#18211)
Task
- Passing correct tags for components in release load test (#50323)
- Schedule load tests in a single availability zone (#50028)
- Job throw error and cancel processors use TypedRecordProcessor (#40924)
Merged Pull Requests
- refactor: replace use-official-docker-images with orchestration-tag and add per-component image tags (#50417)
- ci: show load tests inputs in the job summary (#50393)
- feat: migrate SLACK_WEBHOOK_URL to Vault in Zeebe CI workflows (#50358)
- fix: rework message batch expiry to avoid scheduled command cache (#50346)
- fix: replace load test secret placeholder on redeploy (#50338)
- feat: replace BACKPORT_ACTION_PAT with Monorepo DevOps Automation GitHub App (#50333)
- When port is not available complete exceptionally, and log error. (#50280)
- feat: migrate AUTOMERGE_TOKEN to Monorepo Release GitHub App via Vault (#50266)
- feat: Update job runner (#50217)
- fix: use --reset-then-reuse-values in install-load-test Makefile targets (#50205)
- fix: validate official docker images require explicit reuse-tag (#50162)
- perf: batch RocksDB transactions in ExportersState.setExporterState (#50138)
- deps: Downgrade surefire plugin version from 3.5.5 to 3.5.2 (#50098)
- test: assert global state restore in backup-restore test (#49837)
- fix: Loadtest Container Names (#49568)
- ci: pin load tests to a single availability zone (#49541)
- feat: Add message sending to C8 cluster (#47164)
- fix: C8Run Docker shutdown docker fix (#41403)
- refactor: replace usages of
CommandProcessorwithTypedRecordProcessor(#41220) - Refactor CommandProcessor-implementing Job processors (#34970)
8.7.20-optimize
What's Changed
- [Backport stable/optimize-8.7] fix: bootstrap full reactor to resolve unpublished SNAPSHOTs by @backport-action in #50277
- [backport 8.7] build: remove obsolete workflow for publishing C4 bundle to npm by @OmranAbazid in #50564
- deps(optimize): bump httpcore5 5.3.4 → 5.3.6 and netty 4.1.130 → 4.1.132 by @mustafadagher in #50777
- build: mergeback 8.7.19 to stable by @konstantinos-mylosis in #50503
Full Changelog: 8.7.19-optimize...8.7.20-optimize
8.9.0
version:8.9.0
Caution
This release contains a bug that can lead to dead partition. We recommend skipping this release and waiting for 8.9.1, which will include a fix.
Enhancements
Java Client
- API: Allow filtering and sorting by BusinessId in process instances search queries (#47246)
- Support handling
GETrequests with empty responses in the java client (#37243) - Use
OffsetDateTimefor date-time fields in java client (#33678)
Misc
- feat: Add tests for multi-JWKS support (#47217)
- feat: Support multiple JWKS endpoints per OIDC issuer (#47213)
- Use the
businessIdUniquenessconfig to toggle validation logic in the engine (#45715) - Expose configuration property for business Id uniqueness validation (#45714)
- Engine: Propagate Business Id to child process instances (Call Activity: inherit-only for MVP) (#44980)
- Gateway: Stable partition routing for Business Id uniqueness (#44979)
- API: Support Business Id on process instance start (REST + gRPC) (#44977)
- Optimize: support extraConfiguration via SPRING_CONFIG_IMPORT (parity with orchestration) (#44820)
- [Spring SDK] Workflow for compatibility tests (#41948)
- [Spring SDK] Add integration tests (#41947)
- [Spring SDK] Configure revapi (#41941)
- [CPT] Compatibility tests workflow (#41917)
- [Camunda Client] Workflow for compatibility tests (#41916)
- [Camunda Client] Adjust acceptance test pom with new testing profile and client versioning (#41914)
- [Camunda Client] Create new annotation
@CompatibilityTestfor testing (#41913) - [CPT: DSL] Assert process instance (#41298)
- [CPT: DSL] Throw BPMN error (#41267)
- [CPT: DSL] Create process instance (#41230)
- Improve backup/restore usability: always ensure missing index templates are created (>=8.8) (#40675)
- Restore to match RDBMS (#40233)
- [EPIC]: As a engineer I want to run a load test for a specific supported version (#38829)
- Mark batchOperations as
FAILEDif all partitions have failed (#37821) - Introduce a write latency metric for the meta store (#36348)
- Allow users to always open variable value editor in a completed process instance on Operate (#32516)
- Handle user experience for "no permission to operation" (#29895)
- [CPT] I can use a test environment globally (#29131)
- Use element instances search C8 API endpoint for instance history in Operate UI (#27330)
- [CPT] Assert that a message was correlated to a process instance (#23291)
- [CPT] I can add a custom containers to the runtime (#23158)
- [CPT] Generate a process coverage diagram (#23153)
- I can download the diagram as bpmn xml file (#22005)
- Cluster health endpoint (#20921)
- [CPT] I can deploy resources via test annotation (#19178)
Bug Fixes
Broker
- Deploying too many versions of a large process can lead to startup problems (#11253)
- RoleChangeListener is not called after becoming Leader (#4409)
Gateway
- NullPointerException in MCP gateway for null userTaskKey in getUserTask (#48201)
- NullPointerException in MCP gateway for null userTaskKey in searchUserTaskVariables (#48197)
- NullPointerException in MCP gateway for null incidentKey in resolveIncident (#48196)
- Partition retry inconsistency between gRPC and REST gateways for process instance creation (#46756)
- Gateway can easily overwhelm broker with handling blocking jobs (long polling) (#7659)
Java Client
- [CPT] Slow test execution and test failures if the client prefers REST (#45667)
- Client failure handling ends in Stackoverflow (#34597)
Misc
- SUSPEND audit log entityKey does not match batchOperationKey (#50311)
- Evaluate an expression API response schema expects result to be unknown, not null (#50091)
- Scheduled flush timer in CamundaExporter get starved under sustained load (#49820)
- Failure to deserialise DbCheckpointState (#49812)
- NullPointerException for OperationType when handling BatchOperationChunkRecordValue (#49765)
- Task is not highlighted after navigating to History tab (#49707)
- Audit Log API: Sentinel Values Returned Instead of null (#49564)
- RESUME audit log entityKey does not match batchOperationKey (#49513)
- Inconsistent display: Identity name shows as 'Identity' in dashboard/app switcher but as 'Admin' in cluster details (Helm Chart, 8.9 snapshot) (#49512)
- Missing Navigation to Root Decision Instance in DMN Incidents (#49425)
- Batch Operation Details page cannot be scrolled (#49410)
- Delete decision instance returns 404 instead of 403 (#49280)
- Incident tab context remains visible after incident resolution in Operate details view (#49220)
- fix: POST /groups/search 500 response uses bare $ref to schema instead of proper Response Object (#49197)
- OpenAPI spec: DecisionEvaluationById.variables has incorrect description ("message variables") (#49190)
- Swagger UI POST requests results in a 401 with CSRF validation error (#48902)
- Delete decision instance API cannot use key returned by Get decision instance (#48867)
- Authorization search endpoint does not return
page.startCursorandpage.endCursor(#48857) - USER_TASK authorization cannot be re-created (#48847)
- Fullscreen toggle does not work in Operate diagram controls (Chrome) (#48823)
- Operate: Navigating to parent process from Call Activity link causes page to continuously jump (#48807)
- UI: No margin in Input/Output Mappings panel list (#48801)
- Process instance details page doesn't handle permission errors on process instance history (#48728)
- MCP gateway: invalid search filter values cause 500 with Java class name leak (#48578)
- Recoverable exceptions in a
ZeebeTransactionare not logged (#48538) - Batch move of regular ad-hoc subprocess corrupts the process instance (#48530)
- Operate UI shows incorrect token count when moving MI instances to an outside element (#48527)
- Process Instance with
tagdoes not complete (#48502) - duplicate WHERE clause in MessageSubscriptionMapper getProcessDefinitionStatistics query (#48387)
- Tooltip not displaying correctly when hover over on the 3 dots for batch operation details page (#48386)
- [CPT] An assertion error in CamundaProcess...