Type: mapper_parsing_exception Reason: "object mapping for [data.tags] tried to parse field [tags] as object, but found a concrete value


(Thomas Doman) #1

ES: 6.1.1
.Net NEST: 6.1.0

I have several environments in which I have the exact same "dynamic": "false" mapping. In one, I'm unable to index new documents into this index due to the titular exception I receive: mapper_parsing_exception. I have checked everything I can think of in comparison of the environments. They have the same templates (none), the same cluster settings (none), the same elasticsearch.yml using the same exact version of ES and the Windows OS VM they're running upon.

My mappings do include a few things I use to track my raw data, but the rest of my data is raw and is stuffed in an "object" field called "data". I do expect that anything under "data" may vary but "data" is not part of my mapping. Also, as I said above, this strategy works exactly as I would expect on every other environment.

Can someone give me some insight on what the error means? From my understanding, it should only apply if my mappings were "dynamic": "true" and the fields conflicted in their detected type and structure. I have done some "direct" tests where I send in an indexing request w/ the query DSL in kibana and it works just fine. A clue? Perhaps but I also ran a programmatic test (which leverages the NEST library) and it also works. It's just our main process that is receiving this error inexplicably.


(Thomas Doman) #2

Turns out this was a matter of getting a connection string to the wrong cluster combined w/ the fact that ES will automatically create an index if it's not there. Our code uses aliases but when the wrong cluster was referenced, indexes by those names were created where we expect "dynamic": "false" and different shapes of data coming in then resulted in the exception reported.