# TransportClient Error while upgrading from Elasticsearch 1.7.3 to 2.0.0

**URL:** <https://discuss.elastic.co/t/transportclient-error-while-upgrading-from-elasticsearch-1-7-3-to-2-0-0/43843>\
**Category:** Elasticsearch\
**Created:** [March 9, 2016, 1:22am UTC](https://discuss.elastic.co/t/transportclient-error-while-upgrading-from-elasticsearch-1-7-3-to-2-0-0/43843 "2016-03-09T01:22:42Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![anupamamann](https://avatars.discourse-cdn.com/v4/letter/a/8edcca/32.png) [@anupamamann](https://discuss.elastic.co/u/anupamamann)\
**Post date:** [March 9, 2016, 1:22am UTC](https://discuss.elastic.co/t/transportclient-error-while-upgrading-from-elasticsearch-1-7-3-to-2-0-0/43843/1 "2016-03-09T01:22:42Z")

</div>

Hi,

I'm trying to upgrade Elasticsearch cluster from 1.7.3 to 2.0.0. I was able to upgrade the nodes in the cluster with a rolling restart. The head plugin runs successfully, index was read properly by the cluster and I can verify that the documents are migrated too.

I'm now trying to connect to the cluster with the existing Java client code version 1.7.3. During this I'm receiving the same errors as mentioned here -

> [@ElasticSearch in Java (TransportClient): NoNodeAvailableException\[None of the configured nodesare available: \[\]\]](https://discuss.elastic.co/t/elasticsearch-in-java-transportclient-nonodeavailableexception-none-of-the-configured-nodesare-available/34452/5):
>
> New code, which does exactly the same thing, but separates out the problem stuff better: import org.elasticsearch.action.get.GetResponse; import org.elasticsearch.client.Client; import org.elasticsearch.client.transport.NoNodeAvailableException; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.InetSocketTransportAddress; import java.net.InetAddress; import java.net.InetSocketAddress; import j…

I do believe that these errors can easily be taken care of if I upgrade my client to 2.0.0 or if I downgrade my server to 1.7.3. Neither of those are a good option for us

1. We do want to get the performance boosters from the ES 2.0 at server side, so cannot revert back to 1.7.3.
2. We can't take a downtime while doing the upgrade and so we would go with a rolling restart of the nodes in the cluster. That means that the server will be in the mixed version state for a while and hence the client needs to be compatible with both the version for sometime.

From what I know, java client version 1.7.3 is incompatible with ES 2.0 and client version2.0 is incompatible with ES 1.7.3. I need to find a middle ground for the client code.

I'm happy to try any other option that can upgrade the cluster to version 2.0 without any downtime.  
Appreciate any help on this.

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [March 9, 2016, 6:23am UTC](https://discuss.elastic.co/t/transportclient-error-while-upgrading-from-elasticsearch-1-7-3-to-2-0-0/43843/2 "2016-03-09T06:23:31Z")

</div>

You can't do rolling upgrades from 1.x to 2.x.  
You must upgrade the client as well.

---

<div class="post-metadata">

**Author:** ![anupamamann](https://avatars.discourse-cdn.com/v4/letter/a/8edcca/32.png) [@anupamamann](https://discuss.elastic.co/u/anupamamann)\
**Post date:** [March 10, 2016, 1:35am UTC](https://discuss.elastic.co/t/transportclient-error-while-upgrading-from-elasticsearch-1-7-3-to-2-0-0/43843/3 "2016-03-10T01:35:57Z")

</div>

Thanks for replying. We can't take a downtime with the service, are there any other options that you know of which the ElasticSearch community might have adopted to overcome the service downtime problem?

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [March 10, 2016, 6:26am UTC](https://discuss.elastic.co/t/transportclient-error-while-upgrading-from-elasticsearch-1-7-3-to-2-0-0/43843/4 "2016-03-10T06:26:52Z")

</div>

The only way I can see is to build a completely new cluster / application, have a Proxy on top of your application and when the migration is done, switch the proxy to the new cluster, then replay all operations that have been done on old cluster on the new, then kill the old cluster / app.

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [March 10, 2016, 6:27am UTC](https://discuss.elastic.co/t/transportclient-error-while-upgrading-from-elasticsearch-1-7-3-to-2-0-0/43843/5 "2016-03-10T06:27:56Z")

</div>

BTW did you run the migration plugin on your existing cluster?

---

<div class="post-metadata">

**Author:** ![anupamamann](https://avatars.discourse-cdn.com/v4/letter/a/8edcca/32.png) [@anupamamann](https://discuss.elastic.co/u/anupamamann)\
**Post date:** [March 10, 2016, 3:34pm UTC](https://discuss.elastic.co/t/transportclient-error-while-upgrading-from-elasticsearch-1-7-3-to-2-0-0/43843/6 "2016-03-10T15:34:15Z")

</div>

Yes, I did run the migration plugin. Found some incompatible dot fields in existing index and also warning for the bool fields.  
I believe the provided "de dot plugin" works only with logstash and not with the core ES. That leaves me to reindex to get rid of dot fields?

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [March 10, 2016, 4:21pm UTC](https://discuss.elastic.co/t/transportclient-error-while-upgrading-from-elasticsearch-1-7-3-to-2-0-0/43843/7 "2016-03-10T16:21:57Z")

</div>

Yes. So you will probably have a downtime or you will need to create a new cluster as I mentioned before.

---

<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:** [July 5, 2017, 11:09pm UTC](https://discuss.elastic.co/t/transportclient-error-while-upgrading-from-elasticsearch-1-7-3-to-2-0-0/43843/8 "2017-07-05T23:09:24Z")

</div>


