Update from 7.23 to 7.24
This document guides you through the update from Camunda 7.23.x
to 7.24.0
and covers the following use cases:
- For administrators and developers: Database updates
- For administrators and developers: Full distribution update
- For administrators and developers: Docker Base Image Update
- For administrators and developers: JMX Prometheus Javaagent Update
- For administrators and developers: LegacyJobRetryBehaviorEnabled process engine flag
- For administrators and developers: Connect: Apache HTTP Client migration from 4 to 5
This guide covers mandatory migration steps and optional considerations for the initial configuration of new functionality included in Camunda 7.24.
Database updates
Every Camunda installation requires a database schema update. Check our database schema update guide for further instructions.
Full distribution
This section is applicable if you installed the Full Distribution with a shared process engine.
The following steps are required:
- Update the Camunda libraries and applications inside the application server.
- Migrate custom process applications.
Before starting, ensure you have downloaded the Camunda 7.24 distribution for the application server you use. This contains the SQL scripts and libraries required for the update. This guide assumes you have unpacked the distribution to a path named $DISTRIBUTION_PATH
.
Docker Base Image Update
The Docker base image has been updated from Alpine Linux 3.18 to Alpine Linux 3.22.
Migration Steps
For standard Docker image usage, no action is required beyond pulling the 7.24.0 image.
For custom Docker configurations:
- Assess Custom Code: Review any Alpine-specific customizations for version 3.22 compatibility
- Update Dependencies: Check that the additional packages you install are available in Alpine 3.22
- Rebuild Custom Images: Update Dockerfiles that extend the Camunda base image
- Test Migration: Verify functionality after updating to the new base image
For detailed information about changes across Alpine versions, refer to the following release notes:
- Alpine Linux 3.19 Release Notes
- Alpine Linux 3.20 Release Notes
- Alpine Linux 3.21 Release Notes
- Alpine Linux 3.22 Release Notes
See the Alpine Linux documentation for comprehensive change details.
JMX Prometheus Javaagent Upgrade
This minor upgrades the JMX Prometheus Javaagent used in the Camunda docker image to version 1.0.1. For a complete list of changes for this upgrade, please refer to the JMX Prometheus release notes.
LegacyJobRetryBehaviorEnabled process engine flag
Starting with versions 7.22.5, 7.23.2 and 7.24.0, the process engine introduces a new configuration flag: legacyJobRetryBehaviorEnabled
.
By default, when a job is created, its retry count is determined based on the camunda:failedJobRetryTimeCycle expression defined in the BPMN model.
However, setting legacyJobRetryBehaviorEnabled
to true
enables the legacy behavior, where the job is initially assigned a fixed number of retries (typically 3), regardless of the retry configuration.
Why enable the legacy behavior?
- Your process logic may depend on the legacy retry count behavior.
- The legacy behavior avoids loading the full BPMN model and evaluating expressions during job creation, which can improve performance.
In 7.22.5+ and in 7.23.2+ the default value is true
for legacyJobRetryBehaviorEnabled
. For 7.24.0+ the default value is false
for legacyJobRetryBehaviorEnabled
.
Connect: Apache HTTP Client migration from 4 to 5
Camunda 7.24 migrates the Connect HTTP and SOAP HTTP connectors from Apache HttpClient 4.x to 5.x.
Changes Overview
The main changes include:
- Dependency Update: Apache HttpClient dependency changed from
org.apache.httpcomponents:httpclient:4.5.14
toorg.apache.httpcomponents.client5:httpclient5:5.4.3
- Package Structure: Core classes moved from
org.apache.http.*
toorg.apache.hc.*
packages - API Changes: Several interface and method signatures have been updated
- Configuration Options: Some request configuration options have been renamed or replaced
Breaking Changes
Request Configuration Options
Several configuration options for HTTP requests have changed:
Removed Options:
decompression-enabled
- No longer available in HttpClient 5local-address
- Removed from the configuration APInormalize-uri
- No longer configurablerelative-redirects-allowed
- Merged into general redirect handlingsocket-timeout
- Replaced withresponse-timeout
stale-connection-check-enabled
- No longer needed
Updated Options:
connection-timeout
,connection-request-timeout
, andresponse-timeout
now useTimeout
objects instead of integer millisecondsredirects-enabled
replacesrelative-redirects-allowed
New Options:
connection-keep-alive
- Controls connection keep-alive timeouthard-cancellation-enabled
- Enables hard cancellation of requestsresponse-timeout
- Replacessocket-timeout
API Changes
If you have custom code that extends or uses Connect HTTP internal API directly:
- Response Interface:
CloseableHttpResponse
is nowClassicHttpResponse
- Request Classes: HTTP method classes moved to
org.apache.hc.client5.http.classic.methods.*
- Status Code Access: Use
response.getCode()
instead ofresponse.getStatusLine().getStatusCode()
- Header Access: Use
response.getHeaders()
instead ofresponse.getAllHeaders()
Migration Steps
For Standard Usage
If you only use Connect through Camunda’s standard APIs (service tasks), no changes are required.
For Custom Extensions
If you have custom code that: - Extends Connect HTTP connector classes - Directly uses Apache HttpClient APIs with Connect - Configures HTTP request options programmatically
You need to:
- Update Dependencies: Replace Apache HttpClient 4.x dependencies with 5.x versions in your project
- Update Imports: Change package imports from
org.apache.http.*
toorg.apache.hc.*
- Review Configuration: Update any custom request configuration code to use the new option names and types
- Test Thoroughly: Verify that your HTTP connections work as expected with the new client
Configuration Migration Example
Before (HttpClient 4.x):
request.configOption("socket-timeout", 30000)
.configOption("connection-timeout", 5000)
.configOption("stale-connection-check-enabled", true);
After (HttpClient 5.x):
request.configOption("response-timeout", Timeout.ofSeconds(30))
.configOption("connection-timeout", Timeout.ofSeconds(5))
// stale-connection-check-enabled no longer needed
.configOption("hard-cancellation-enabled", true);
Additional Notes
- The migration maintains backward compatibility for all standard Connect connector usage
- The
commons-codec
dependency is no longer needed and has been removed
For more details about HttpClient 5.x changes, refer to the Apache HttpClient 5.x migration guide.