-
Notifications
You must be signed in to change notification settings - Fork 117
Closed
Labels
Description
While testing #948 I run into the following issue:
W/MapboxMapMatching: Failed to complete your request.
com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $
at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1568)
at com.google.gson.stream.JsonReader.checkLenient(JsonReader.java:1409)
at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:593)
at com.google.gson.stream.JsonReader.peek(JsonReader.java:425)
at com.mapbox.api.matching.v5.models.AutoValue_MapMatchingError$GsonTypeAdapter.read(AutoValue_MapMatchingError.java:63)
at com.mapbox.api.matching.v5.models.AutoValue_MapMatchingError$GsonTypeAdapter.read(AutoValue_MapMatchingError.java:24)
at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:39)
at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:27)
at com.mapbox.api.matching.v5.MapboxMapMatching.errorDidOccur(MapboxMapMatching.java:194)
at com.mapbox.api.matching.v5.MapboxMapMatching.access$000(MapboxMapMatching.java:56)
at com.mapbox.api.matching.v5.MapboxMapMatching$1.onResponse(MapboxMapMatching.java:146)
at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:70)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
It's happening here https://github.com/mapbox/mapbox-java/blob/master/services-matching/src/main/java/com/mapbox/api/matching/v5/MapboxMapMatching.java#L194 when making requests too large in bytes (e.g. adding hundreds of coordinates) - we receive a response without errorBody 👉 code=413, message=Request Entity Too Large while when making smaller requests we receive a response with errorBody (message=Too many coordinates; maximum number of coordinates is 100.) 👉 code=422, message=Unknown which is parsed correctly.