See this thread. It's really an elasticsearch indexing error. To fix it you need to change the structure of your data.
Typically you will see a message like object mapping for [a.b] tried to parse field [b] as object, but found a concrete value”. That is telling you that ES expects an object that looks like { "a": { "b": "foo" } }
but it got something like { "a": "bar" }
The value if [a] is an object in the former, but a string in the latter. That is not supported.
I have seen a variant with [null] in the error message for a data structure like
"data": [
{ "a": { "b": "X" } },
{ "a": { "b": "Y" } },
{ "a": [ "Z" ] }
]
I would suggest configuring a DLQ, then process those failing message to a file using a rubydebug codec, then sit down with a failed message and the mapping of the index and figure out where the mismatch is. Once you know what needs to change in the failing events add code to your logstash pipeline to make those changes.
And yes, sometimes getting dataset into elasticsearch is a lot of work.