NoSuchMethodError RequestOptions$Builder.removeHeader when creating a client

edit

NoSuchMethodError RequestOptions$Builder.removeHeader when creating a clientedit

In certain contexts you may encounter an error when creating the ElasticsearchClient saying that the method RequestOptions$Builder.removeHeader does not exist:

java.lang.NoSuchMethodError: 'org.elasticsearch.client.RequestOptions$Builder org.elasticsearch.client.RequestOptions$Builder.removeHeader(java.lang.String)'

This method was introduced in elasticsearch-rest-client version 7.16.0. The error happens because your project is using an older version of this dependency.

This happens in particular when the project is using the Spring Boot Maven Plugin, as this plugin defines versions for commonly used libraries, including elasticsearch-rest-client. Depending on the version of Spring Boot used in the project, that version may be outdated.

To solve this issue, you have to add the elasticsearch-rest-client dependency explicitly in your project, with the same version as elasticsearch-java (see also Installation).

Using Gradle:

implementation 'org.elasticsearch.client:elasticsearch-rest-client:7.17.22'

Using Maven:

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-client</artifactId>
    <version>7.17.22</version>
</dependency>