Mapper_parsing_exception on POST request to elasticsearch

Infos:

  • Used Zammad version: 4
  • Used Zammad installation type: docker-compose
  • Operating system: ubuntu
  • Browser + version: Firefox

Expected behavior:

  • new tickets are processed just fine by elasticsearch

Actual behavior:

  • new tickets are not processed by elasticsearch and don’t appear in the search

Steps to reproduce the behavior:

Everything is fine, except as mentioned above, new articles don’t appear in the search index.

in the logs of zammad-scheduler i find these suspicious lines for every new ticket:

 INFO -- : 2021-04-30T11:20:51+0000: [Worker(host:08f0247d8c6d pid:1)] Job SearchIndexJob [60309bf6-1dea-4ab5-971d-fa36317c3488] from DelayedJob(default) with arguments: ["Ticket", 492] (id=101757) (queue=default) RUNNING
 INFO -- : Performing SearchIndexJob (Job ID: 60309bf6-1dea-4ab5-971d-fa36317c3488) from DelayedJob(default) with arguments: "Ticket", 492
 INFO -- : # curl -X post "http://zammad-elasticsearch:9200/zammad_production_ticket/_doc/492?pipeline=zammad36755735191"
 INFO -- : # 400
ERROR -- : Unable to process post request to elasticsearch URL 'http://zammad-elasticsearch:9200/zammad_production_ticket/_doc/492?pipeline=zammad36755735191'. Check the response and payload for detailed information:

Response:
 #<UserAgent::Result:0x00007fd8cd3c0f20 @success=false, @body="{\"error\":{\"root_cause\":[{\"type\":\"mapper_parsing_exception\",\"reason\":\"failed to parse field [state] of type [text] in document with id '492'. Preview of field's value: '{next_state_id=null, note=null, active=true, created_at=2020-09-29T13:34:31.245Z, default_create=true, state_type_id=1, default_follow_up=false, updated_at=2020-09-29T13:34:31.272Z, name=new, updated_by_id=1, id=1, created_by_id=1, ignore_escalation=false}'\"}],\"type\":\"mapper_parsing_exception\",\"reason\":\"failed to parse field [state] of type [text] in document with id '492'. Preview of field's value: '{next_state_id=null, note=null, active=true, created_at=2020-09-29T13:34:31.245Z, default_create=true, state_type_id=1, default_follow_up=false, updated_at=2020-09-29T13:34:31.272Z, name=new, updated_by_id=1, id=1, created_by_id=1, ignore_escalation=false}'\",\"caused_by\":{\"type\":\"illegal_state_exception\",\"reason\":\"Can't get text on a START_OBJECT at 1:240\"}},\"status\":400}", @data=nil, @code="400", @content_type=nil, @error="Client Error: #<Net::HTTPBadRequest 400 Bad Request readbody=true>!">

These lines repeat for 20 times, during which I see an issue in the Admin Area → Monitoring → Current Status but after that it’s just discarded and the Current Status says "no issues "

what did I miss?

This: After 4.0.0 upgrade - reporting no longer working
struck me as related. I thought the docker-compose up -d was enough and the index would be rebuilt automatically, but it was not so.

What fixed it was docker-compose exec zammad-railsserver rake searchindex:rebuild.

2 Likes