Expected START OBJECT as the token but was – How to solve this Elasticsearch exception

Opster Team

August-23, Version: 7.1-8.9

Briefly, this error occurs when Elasticsearch expects a JSON object to start (denoted by ‘{‘) but encounters a different token. This usually happens when the JSON input is malformed or incorrect. To resolve this issue, you can: 1) Check the JSON input for syntax errors, ensuring it starts with ‘{‘ and ends with ‘}’. 2) Validate the JSON input using a JSON validator tool. 3) Ensure the correct content type is set in the header of the request. 4) If you’re using a file as input, ensure it’s properly formatted and correctly referenced.

This guide will help you check for common problems that cause the log ” expected START_OBJECT as the token but was ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: .

Log Context

Log “expected START_OBJECT as the token but was” class name is IndicesOptions.java. We extracted the following from Elasticsearch source code for those seeking an in-depth context :

 Boolean ignoreUnavailable = defaults == null ? null : defaults.ignoreUnavailable();
 boolean ignoreThrottled = defaults == null ? false : defaults.ignoreThrottled();
 Token token = parser.currentToken() == Token.START_OBJECT ? parser.currentToken() : parser.nextToken();
 String currentFieldName = null;
 if (token != Token.START_OBJECT) {
 throw new ElasticsearchParseException("expected START_OBJECT as the token but was " + token);
 while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) {
 if (token == XContentParser.Token.FIELD_NAME) {
 currentFieldName = parser.currentName();
 } else if (token == Token.START_ARRAY) {