[[breaking-changes-5.0]] == Breaking changes in 5.0 This section discusses the changes that you need to be aware of when migrating your application to Elasticsearch 5.0. [IMPORTANT] .Known networking bug in 5.0.0-alpha5 ====================================================== There is a bug in the new Netty4 implementation in this release which affects any REST request with a body that is sent in two requests, the first with an `Expect: 100-continue` header. This bug will manifest with an exception similar to the following: [source,txt] ---- [WARN ][http.netty4] [wtOV9Vb] caught exception while handling client http traffic, closing connection [id: 0x1320b717, L:/0:0:0:0:0:0:0:1:9200 - R:/0:0:0:0:0:0:0:1:54732] java.lang.UnsupportedOperationException: unsupported message type: DefaultFullHttpResponse (expected: ByteBuf, FileRegion) ---- This is due to incorrect handling of the `Expect` HTTP header, and it can be worked around in one of three ways: * Use a client which does not add `Expect` headers (including the official clients). * Pass a blank `Except` header, e.g. + [source,sh] ---- curl -H 'Expect:' ... ---- * Use Netty3 for the HTTP layer by passing the following setting at startup: + [source,sh] ---- ./bin/elasticsearch -Ehttp.type=netty3 ---- ====================================================== [float] [[migration-plugin]] === Migration Plugin The https://github.com/elastic/elasticsearch-migration/blob/2.x/README.asciidoc[`elasticsearch-migration` plugin] (compatible with Elasticsearch 2.3.0 and above) will help you to find issues that need to be addressed when upgrading to Elasticsearch 5.0. [float] === Indices created before 5.0 Elasticsearch 5.0 can read indices created in version 2.0 or above. An Elasticsearch 5.0 node will not start in the presence of indices created in a version of Elasticsearch before 2.0. [IMPORTANT] .Reindex indices from Elasticseach 1.x or before ========================================= Indices created in Elasticsearch 1.x or before will need to be reindexed with Elasticsearch 2.x in order to be readable by Elasticsearch 5.x. It is not sufficient to use the <> API. The easiest way to reindex old indices is to upgrade to Elasticsearch 2.3 or later and to use the `reindex` API, or the reindex UI provided by the <>. ========================================= The first time Elasticsearch 5.0 starts, it will automatically rename index folders to use the index UUID instead of the index name. If you are using <> with shared data folders, first start a single node with access to all data folders, and let it rename all index folders before starting other nodes in the cluster. [float] === Also see: * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> include::migrate_5_0/search.asciidoc[] include::migrate_5_0/mapping.asciidoc[] include::migrate_5_0/percolator.asciidoc[] include::migrate_5_0/suggest.asciidoc[] include::migrate_5_0/index-apis.asciidoc[] include::migrate_5_0/docs.asciidoc[] include::migrate_5_0/settings.asciidoc[] include::migrate_5_0/allocation.asciidoc[] include::migrate_5_0/http.asciidoc[] include::migrate_5_0/rest.asciidoc[] include::migrate_5_0/cat.asciidoc[] include::migrate_5_0/java.asciidoc[] include::migrate_5_0/packaging.asciidoc[] include::migrate_5_0/plugins.asciidoc[] include::migrate_5_0/fs.asciidoc[] include::migrate_5_0/aggregations.asciidoc[] include::migrate_5_0/scripting.asciidoc[]