Compatibility of Java Low Level REST Client 8.3.0 with ES 5.x and ES 7.x

Hi,

We're upgrading the Elasticsearch Java Low Level REST Client from 6.2.4 to 8.3.0, and we need to continue accessing both ES 5.x and ES 7.x clusters (cluster upgrades are not on the table for now).

Since we're using the low-level client, we construct all requests manually and parse responses ourselves, so our main concerns are around HTTP-level behavior changes in the client itself rather than high-level API abstractions.

The endpoints we rely on are:

GET /{index}/_search_shards

GET /{index}/_count?preference=_shards:{shardId}

DELETE /_search/scroll

POST /{index}/_search?scroll={n}s

POST /_search/scroll

Questions:

1. Are there any behavioral differences in the 8.x low-level client compared to 6.x at the HTTP layer — e.g., connection handling, retry logic, header defaults, or TLS behavior — that could affect requests to older ES 5.x / 7.x clusters?

2. Has the exception hierarchy changed between 6.x and 8.x?

3. Will upgrading the client affect the response content?

Thanks!