Fixing ElasticSearch 'Unknown key for a START_ARRAY in [...].'
When you get an error message like
elasticsearch.exceptions.RequestError: RequestError(400, 'parsing_exception', 'Unknown key for a START_ARRAY in [size].')
in ElasticSearch, look for the value in the [brackets]
. In our example this is [size]
.
Your query contains an array for that key but an array is not allowed.
For example, this query is malformed:
{
"size": [10, 11]
}
because size
takes a number, not an array.
In Python, if you are programmatically building your array, you might have an extra comma at the end of your line.
For example, if you have a line like
query["size"] = 250,
this is just syntactic sugar for
query["size"] = (250,)
i.e. it will set size
to a tuple with one element. In the JSON this will result in
{
"size": [250]
}
In order to fix that issue, remove the comma from the end of the line
query["size"] = 250
which will result in the correct query JSON
{
"size": 250
}