Failed to parse expected 2 or 3 coordinates but found – How to solve this Elasticsearch exception

Opster Team

August-23, Version: 7.16-8.9

Briefly, this error occurs when Elasticsearch tries to parse geolocation data and the provided coordinates are not in the expected format. Elasticsearch expects either 2 (latitude, longitude) or 3 (latitude, longitude, altitude) coordinates. To resolve this issue, ensure that the data being indexed is in the correct format. If the data is dynamic, consider adding a preprocessing step to validate and format the data before indexing. If the data is static, manually correct the format. Also, check your mapping to ensure the field is correctly set as a geo-point or geo-shape type.

This guide will help you check for common problems that cause the log ” failed to parse [{}]; expected 2 or 3 coordinates ” + “but found: [{}] ” 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 ” + “but found: [{}]” 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 {
 lat = Double.parseDouble(vals[0].trim());

 

How helpful was this guide?

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?