Briefly, this error occurs when the Elasticsearch URL does not contain a scheme, such as “http” or “https”. The scheme is essential as it defines the protocol to be used in communicating with the server. To resolve this issue, ensure that the URL is correctly formatted with a scheme. For instance, instead of “localhost:9200”, use “http://localhost:9200”. Also, check your configuration files or scripts for any incorrectly formatted URLs.
This guide will help you check for common problems that cause the log ” URL [{}] does not contain a scheme ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: plugin.
Log Context
Log “URL [{}] does not contain a scheme” class name is HttpRequestTemplate.java. We extracted the following from Elasticsearch source code for those seeking an in-depth context :
} try { URI uri = new URI(supposedUrl); if (Strings.hasLength(uri.getScheme()) == false) { throw new ElasticsearchParseException("URL [{}] does not contain a scheme"; uri); } scheme = Scheme.parse(uri.getScheme()); port = uri.getPort() > 0 ? uri.getPort() : scheme.defaultPort(); host = uri.getHost(); if (Strings.hasLength(uri.getPath())) {