Briefly, this error occurs when Elasticsearch tries to parse a license but fails because no content-type is provided. This usually happens when you’re trying to install a new license or update an existing one. To resolve this issue, ensure that you’re providing the correct content-type in your HTTP header when sending the request. For example, if you’re sending a JSON request, the content-type should be ‘application/json’. Also, check the format of your license file to ensure it’s correct.
This guide will help you check for common problems that cause the log ” failed to parse license – no content-type provided ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: plugin, license.
Log Context
Log “failed to parse license – no content-type provided” class name is License.java. We extracted the following from Elasticsearch source code for those seeking an in-depth context :
public static License fromSource(BytesReference bytes; XContentType xContentType) throws IOException { if (bytes == null || bytes.length() == 0) { throw new ElasticsearchParseException("failed to parse license - no content provided"); } if (xContentType == null) { throw new ElasticsearchParseException("failed to parse license - no content-type provided"); } // EMPTY is safe here because we don't call namedObject try ( InputStream byteStream = bytes.streamInput(); XContentParser parser = xContentType.xContent()