Skip to content

Releases: camunda/camunda

8.10.0-alpha1-rc2

04 May 15:01

Choose a tag to compare

8.10.0-alpha1-rc2 Pre-release
Pre-release

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

28 Apr 04:58

Choose a tag to compare

8.10.0-alpha1-rc1 Pre-release
Pre-release

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 OffsetDateTime for 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.startCursor and page.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 tag does 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...
Read more

8.9.2

28 Apr 19:31

Choose a tag to compare

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 thymeleaf version (#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 InputStream to 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

22 Apr 08:49

Choose a tag to compare

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 thymeleaf version (#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

  • feat: opt-in OIDC userinfo augmentation for bearer tokens (#51537)
  • fix(operate): use unique process ID to fix flaky internal API permission tests (#51365)

8.9.1

21 Apr 15:28

Choose a tag to compare

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=true in CamundaSpringCamundaProcessTest (#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 with EXCEEDED_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]...
Read more

8.7.28

21 Apr 14:27

Choose a tag to compare

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

16 Apr 11:47

Choose a tag to compare

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)
  • QueryBatchOperationTest is 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-3 to 8.8 (#48283)
  • Process instance archiving reindexes already archived process instances (#48200)
  • Rename camunda-process-test-spring-4 to camunda-process-test-spring-boot-4 (#47483)
  • OAuth2AuthenticationException are logged at ERROR in 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.shouldInvokeConnectors reliable (#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 ...
Read more

8.7.27

14 Apr 11:55

Choose a tag to compare

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 CommandProcessor with TypedRecordProcessor (#41220)
  • Refactor CommandProcessor-implementing Job processors (#34970)

8.7.20-optimize

14 Apr 07:29

Choose a tag to compare

What's Changed

Full Changelog: 8.7.19-optimize...8.7.20-optimize

8.9.0

07 Apr 16:08

Choose a tag to compare

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 GET requests with empty responses in the java client (#37243)
  • Use OffsetDateTime for 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 businessIdUniqueness config 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 @CompatibilityTest for 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 FAILED if 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.startCursor and page.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 ZeebeTransaction are 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 tag does 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...
Read more