Using discovery type and host providers – How to solve related issues

Opster Team

Feb-21, Version: 1.7-8.0

Before you begin reading about how to correct this error, we recommend you run the Elasticsearch Error Check-Up which can help you resolve it and prevent future errors from occurring.

This guide will help you check for common problems that cause the log “using discovery type and host providers” to appear. It’s important to understand the issues related to it, so to get started, read the general overview on common issues and tips related to discovery in Elasticsearch.


Discovery and cluster formation is affected by several settings. discovery.type is one such setting. This setting is used to specify if Elasticsearch should form a multi-node cluster or not. If you intend to run Elasticsearch on a single-node, then you need to specify this setting in elasticsearch.yml. 

By default, Elasticsearch allows the nodes to join the cluster (if other nodes are discovered while forming the cluster), hence, forming a multi-node cluster.

How to reproduce this log

Add the below config in elasticsearch.yml.

http.port: 9200
discovery.type: single-node

Then start Elasticsearch from the command line as follows:


The following logs are generated:

[INFO ][o.e.d.DiscoveryModule    ] using discovery type [single-node] and seed hosts providers [settings]
[INFO ][o.e.n.Node               ] initialized

What this error means

This log message is an INFO message that a single-node Elasticsearch cluster has been started for development or testing. This is enabled by using discovery.type: single-node in elasticsearch.yml. 

The seed host providers provide a list of the addresses of the master-eligible nodes in the cluster. Both these settings affect the cluster and discovery formation. 

Based on your discovery type settings you will see the log lines.To know more about these settings, refer to this official documentation.

Log Context

Log “Using discovery type [{}] and host providers {}” classname is
We extracted the following from Elasticsearch source code for those seeking an in-depth context :

         String discoveryType = DISCOVERY_TYPE_SETTING.get(settings);
        Supplier discoverySupplier = discoveryTypes.get(discoveryType);
        if (discoverySupplier == null) {
            throw new IllegalArgumentException("Unknown discovery type [" + discoveryType + "]");
        }"using discovery type [{}] and host providers {}"; discoveryType; hostsProviderNames);
        discovery = Objects.requireNonNull(discoverySupplier.get());

    public Discovery getDiscovery() {
        return discovery;


Watch product tour

Watch how AutoOps finds & fixes Elasticsearch problems

Analyze Your Cluster
Skip to content