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

Opster Team

August-23, Version: 7.1-8.9

Before you dig into reading this guide, have you tried asking OpsGPT what this log means? You’ll receive a customized analysis of your log.

Try OpsGPT now for step-by-step guidance and tailored insights into your Elasticsearch operation.

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.

For a complete solution to your to your search operation, try for free AutoOps for Elasticsearch & OpenSearch . With AutoOps and Opster’s proactive support, you don’t have to worry about your search operation – we take charge of it. Get improved performance & stability with less hardware.

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) {


How helpful was this guide?

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?