This change has been delayed until further notice.
Therefore, the deadline of March 1, 2025, as mentioned in this announcement, is no longer applicable. However, we still recommend that you update your Apache HTTP client.
In March 2025, Google plans to implement changes to the Google Cloud service that are incompatible with older Apache HTTP client versions.
Check your Apache HTTP client if you meet the following criteria:
- Your commercetools Composable Commerce projects are hosted on GCP (Google Cloud).
- You are using an Apache HTTP client to communicate with the Composable Commerce APIs.
- Your Apache HTTP client is older than version
5.4.1
. - Your Apache HTTP core component is older than version
5.3.1
.
Actions required by 01 March 2025
If you are affected, take the following steps:
-
Update to the latest SDKs.
If you're using the Java SDK, updating to version 17.21 or later (or versions 9.4.2, 16.2.2, 17.3.2, 17.15.2, or 17.16.2) also updates the Apache HTTP client. Nevertheless, you must still check your Apache HTTP client to ensure compatibility.
-
Check your Apache HTTP client and do one of the following:
-
Update your Apache HTTP client to version
5.4.1
and update your Apache HTTP core H2 to5.3.1
or higher.OR
-
Enforce HTTP/1.1 protocol when calling the Composable Commerce APIs via the Apache HTTP client.
-
Why is this necessary?
Google Cloud updated its load balancers to support HTTP/2 and plans to introduce further enhancements to optimize Google's HTTP/2 implementation. The Apache HTTP client does not support the optimized HTTP/2 implementation of Google's load balancer layer in versions prior to 5.4.1
, where the issue was resolved.
If you do not update the Apache HTTP client or change to the HTTP/1.1 protocol, you will receive errors such as: http2.H2StreamResetException: Connection terminated by the peer
when trying to establish a connection with the Composable Commerce APIs.
How to check your Apache HTTP client version
If you use Gradle, you can check ./gradlew :your-project:dependencies
for mentions of the following:
org.apache.httpcomponents.client5:httpclient5:{strictly [5.4.1,6.0[; prefer 5.4.1} -> 5.4.1
org.apache.httpcomponents.core5:httpcore5:5.3.1
org.apache.httpcomponents.core5:httpcore5-h2:5.3.1
org.apache.httpcomponents.core5:httpcore5:5.3.1
If you use Maven, you can check mvn dependency:tree
for mentions of the following:
org.apache.httpcomponents.client5:httpclient5:jar:5.4.1:compile
org.apache.httpcomponents.core5:httpcore5:jar:5.3.1:compile
org.apache.httpcomponents.core5:httpcore5-h2:jar:5.3.1:compile