Command does not support complex json tokens – How to solve this Elasticsearch exception

Opster Team

August-23, Version: 6.8-8.9

Briefly, this error occurs when a command in Elasticsearch is trying to process complex JSON tokens, which it doesn’t support. This usually happens when you’re trying to pass a complex JSON object to a command that only accepts simple key-value pairs. To resolve this issue, you can either simplify your JSON object into key-value pairs or use a command that supports complex JSON tokens. Alternatively, you can also try to serialize your complex JSON object into a string before passing it to the command.

This guide will help you check for common problems that cause the log ” [{}] command does not support complex json tokens [{}] ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: routing, allocation, cluster.

Log Context

Log “[{}] command does not support complex json tokens [{}]” class name is MoveAllocationCommand.java. We extracted the following from Elasticsearch source code for those seeking an in-depth context :

 toNode = parser.text();
 } else {
 throw new ElasticsearchParseException("[{}] command does not support field [{}]"; NAME; currentFieldName);
 }
 } else {
 throw new ElasticsearchParseException("[{}] command does not support complex json tokens [{}]"; NAME; token);
 }
 }
 if (index == null) {
 throw new ElasticsearchParseException("[{}] command missing the index parameter"; NAME);
 }

 

 [ratemypost]