Recently someone updated a Rails Model ID datatype from int to uuid. This has caused issues with ElasticSearch in my local instance:
:exception:
- Searchkick::ImportError
- '{"type"=>"mapper_parsing_exception", "reason"=>"failed to parse [id]", "caused_by"=>{"type"=>"number_format_exception",
"reason"=>"For input string: \"03b42e85-1f09-402c-8f51-89d61c128ffc\""}} on item
with id ''03b42e85-1f09-402c-8f51-89d61c128ffc'''
:exception_object: '{"type"=>"mapper_parsing_exception", "reason"=>"failed to parse
[id]", "caused_by"=>{"type"=>"number_format_exception", "reason"=>"For input string:
\"03b42e85-1f09-402c-8f51-89d61c128ffc\""}} on item with id ''03b42e85-1f09-402c-8f51-89d61c128ffc'''
After some digging I around I was able to resolve this by deleting the Indexes. Rails/SearchKick rebuilt them afterwords.
You can view the available entries with a GET to elasticsearch with “*” as the path.
curl 'localhost:9200/*'
It’s easier to read if you pipe it into jq.
brew install jq
curl 'localhost:9200/*' | jq keys
From the list, identify the object that is failing, mine was organizations_development. Delete the mapping with
curl -XDELETE 'localhost:9200/organizations_development'
From there, elasticsearch will rebuild it and index your data.