Siddhant
Siddhant

Reputation: 825

Elasticsearch::UnsupportedProductError (The client noticed that the server is not a supported distribution of Elasticsearch

Getting this error when using searchkick with elasticsearch on mac.

Searchkick version: searchkick (4.5.2)

$ elasticsearch --version
warning: no-jdk distributions that do not bundle a JDK are deprecated and will be removed in a future release
Version: 7.10.2-SNAPSHOT, Build: oss/tar/unknown/2021-01-16T01:41:27.115673Z, JVM: 16.0.2

To reproduce

Product.reindex

Upvotes: 19

Views: 35500

Answers (4)

Aaron Breckenridge
Aaron Breckenridge

Reputation: 1819

Bypass the check with a monkeypatch. For example in Rails:

# in config/initializers/elasticsearch.rb

module Elasticsearch
  class Client
    alias original_verify_with_version_or_header verify_with_version_or_header

    def verify_with_version_or_header(...)
      original_verify_with_version_or_header(...)
    rescue Elasticsearch::UnsupportedProductError => exception
      warn("Ignoring elasticsearch complaint: #{exception.message}")
    end
  end
end

Upvotes: 0

Buoy Rina
Buoy Rina

Reputation: 568

If you are using Python elasticsearch client, you need to downgrade or install version before 7.14.0.

pip install elasticsearch<7.14.0

Upvotes: 38

equivalent8
equivalent8

Reputation: 14237

Elasticsearch::UnsupportedProductError is raised when your Elasticsearch server version don't match with Ruby's Elasticsearch client (gem elasticsearch). In order to fix this properly you need a server that is up to date with latest Elasticsearch (ES) releases

that means if you are on ES provider like https://cloud.elastic.co/ where you work with latest versions of cluster it's easy peasy => server gets upgraded => this is not an issue

if you however work with provider that is slow to catch up with latest ES releases (like AWS Elasticsearch / AWS Opensearch where last version is 7.10 and will not get upgraded anytime soon) your only option is to use gem elasticsearch, "< 7.14" (Siddhant's answer in this discussion ...and yes this means no potential security updates

other solution may be to silence the verification by overriding method verify_with_version_or_header as proposed in https://github.com/elastic/elasticsearch-ruby/issues/1429#issuecomment-958162468

but reality is both of this solutions are just "not recommended" workarounds. The real fix is a server upgrade

Upvotes: 1

Siddhant
Siddhant

Reputation: 825

It worked fine after degrading to elastic search < 7.14. So basically added a gem to restrict the version upgrade

gem  elasticsearch, "< 7.14"

Upvotes: 20

Related Questions