# Will ElasticSearch high-level rest java client be always forward compatible?

**URL:** <https://discuss.elastic.co/t/will-elasticsearch-high-level-rest-java-client-be-always-forward-compatible/220038>\
**Category:** Elasticsearch\
**Created:** [February 19, 2020, 5:38pm UTC](https://discuss.elastic.co/t/will-elasticsearch-high-level-rest-java-client-be-always-forward-compatible/220038 "2020-02-19T17:38:55Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jerry\_Peng](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jerry_peng/32/62892_2.png) [@Jerry\_Peng](https://discuss.elastic.co/u/Jerry_Peng)\
**Post date:** [February 19, 2020, 5:38pm UTC](https://discuss.elastic.co/t/will-elasticsearch-high-level-rest-java-client-be-always-forward-compatible/220038/1 "2020-02-19T17:38:55Z")

</div>

Just came across the following post:

> [@Ccs\_minimize\_roundtrips error when using 7.X high level REST API to access 6.x index](https://discuss.elastic.co/t/ccs-minimize-roundtrips-error-when-using-7-x-high-level-rest-api-to-access-6-x-index/194095):
>
> I am using Elastic Search High Level REST API 7.x and try to access ES 6.7 index and go the following error: ElasticsearchStatusException[Elasticsearch exception [type=illegal\_argument\_exception, reason=request [xxxxxxxx] contains unrecognized parameter: [ccs\_minimize\_roundtrips]]] If I downgrade the API to 6.x, then the error disappears. The problem is that I have to access both 7.x and 6.x index using the REST API. So, ideally, using 7.x API should be backward compatible with 6.x. But this…

It mentions that 6.x high level rest java client will work with cluster running 7.x, as forward compatibility is guaranteed. However, I want to double confirm that if, for future release, will 7.x high level rest java client work for cluster running 8.x?

We are doing upgrade from 6.x to 7.x, and will need to do a shadow testing on the cluster running 7.x, while keeping 6.x client. We confirmed that 6.x client works for 7.x cluster, but not sure about future releases.

Thanks for the reply!

---

<div class="post-metadata">

**Author:** ![DavidTurner](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/davidturner/32/22453_2.png) [@DavidTurner](https://discuss.elastic.co/u/DavidTurner)\
**Post date:** [February 19, 2020, 6:19pm UTC](https://discuss.elastic.co/t/will-elasticsearch-high-level-rest-java-client-be-always-forward-compatible/220038/2 "2020-02-19T18:19:46Z")

</div>

Broadly, yes, a 6.x REST client will work against a 7.x cluster as long as you are not using any deprecated features. The simplest way to tell this is to run your 6.x client against the **latest** 6.x release, since this will have the most up-to-date [deprecation logging](https://www.elastic.co/guide/en/elasticsearch/reference/current/logging.html#deprecation-logging) to warn you about any deprecated features you're using. If your usage is deprecation-clean according to the latest 6.x release then it should continue to work against a 7.x cluster. The same will be true of a 7.x client running against an 8.x cluster.

This is (sort of) [documented here](https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-high-compatibility.html#java-rest-high-compatibility):

> The client should always be updated last, once all of the nodes in the cluster have been upgraded to the new major version.

There are [plans afoot](https://github.com/elastic/elasticsearch/issues/51816) to make it even easier to upgrade to 8.x.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [March 18, 2020, 6:19pm UTC](https://discuss.elastic.co/t/will-elasticsearch-high-level-rest-java-client-be-always-forward-compatible/220038/3 "2020-03-18T18:19:57Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
