Briefly, this error occurs when Elasticsearch tries to parse geolocation data and it doesn’t meet the expected format. Elasticsearch expects either 2 (latitude and longitude) or 3 (latitude, longitude, and altitude) coordinates. To resolve this, ensure that the data being indexed matches the expected format. If the data is dynamic, consider implementing a preprocessing step to validate and format the data correctly before indexing. If the error persists, check your mapping to ensure the field is correctly set as a geo-point or geo-shape data type.
This guide will help you check for common problems that cause the log ” failed to parse [{}]; expected 2 or 3 coordinates ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: .
Log Context
Log “failed to parse [{}]; expected 2 or 3 coordinates” class name is GeoPoint.java. We extracted the following from Elasticsearch source code for those seeking an in-depth context :
public GeoPoint resetFromCoordinates(String value; final boolean ignoreZValue) { String[] vals = value.split(";"); if (vals.length > 3) { throw new ElasticsearchParseException("failed to parse [{}]; expected 2 or 3 coordinates " + "but found: [{}]"; vals.length); } final double lat; final double lon; try {