uber / rides-java-sdk

Uber Rides Java SDK (beta)
https://developer.uber.com/docs
MIT License
104 stars 57 forks source link

/v1.2/requests/current returns curly braces for driver number #47

Open hijklmno opened 4 years ago

hijklmno commented 4 years ago

Hello team,

We recently ran into an issue when making the API call to /v1.2/requests/current via RidesService.getCurrentRide(). It seems the driver number sometimes return curly braces {} instead of String or null. Below is a scrubbed payload we received:

{
  "status": "in_progress",
  "product_id": "productId",
  "destination": {
    "latitude": 51.5405,
    "alias": "Home",
    "eta": 1,
    "longitude": -0.1336
  },
  "driver": {
    "phone_number": {},
    "rating": 4.92,
    "picture_url": "driverPhotoUrl",
    "name": "DriverName",
    "sms_number": null
  },
  "pickup": {
    "latitude": 51.5374,
    "region": {
      "latitude": 51.5126,
      "country_name": "United Kingdom",
      "country_code": "GB",
      "name": "London",
      "longitude": -0.1304
    },
    "longitude": -0.1414
  },
  "request_id": "requestId",
  "location": null,
  "vehicle": {
    "make": "vehicleMake",
    "picture_url": "vehicleUrl",
    "model": "vehicleModel",
    "license_plate": "licensePlate"
  },
  "shared": false
}

Here is the exception:

PlatformExceptionMapper:handleRuntimeException Unexpected runtime exception:
com.squareup.moshi.JsonDataException: Expected a string but was BEGIN_OBJECT at path $.driver.phone_number
    at com.squareup.moshi.BufferedSourceJsonReader.nextString(BufferedSourceJsonReader.java:592) ~[moshi-1.2.0.jar!/:?]
    at com.squareup.moshi.StandardJsonAdapters$10.fromJson(StandardJsonAdapters.java:203) ~[moshi-1.2.0.jar!/:?]
    at com.squareup.moshi.StandardJsonAdapters$10.fromJson(StandardJsonAdapters.java:201) ~[moshi-1.2.0.jar!/:?]
    at com.squareup.moshi.JsonAdapter$1.fromJson(JsonAdapter.java:68) ~[moshi-1.2.0.jar!/:?]
    at com.squareup.moshi.ClassJsonAdapter$FieldBinding.read(ClassJsonAdapter.java:197) ~[moshi-1.2.0.jar!/:?]
    at com.squareup.moshi.ClassJsonAdapter.fromJson(ClassJsonAdapter.java:159) ~[moshi-1.2.0.jar!/:?]
    at com.squareup.moshi.JsonAdapter$1.fromJson(JsonAdapter.java:68) ~[moshi-1.2.0.jar!/:?]
    at com.squareup.moshi.ClassJsonAdapter$FieldBinding.read(ClassJsonAdapter.java:197) ~[moshi-1.2.0.jar!/:?]
    at com.squareup.moshi.ClassJsonAdapter.fromJson(ClassJsonAdapter.java:159) ~[moshi-1.2.0.jar!/:?]
    at com.squareup.moshi.JsonAdapter$1.fromJson(JsonAdapter.java:68) ~[moshi-1.2.0.jar!/:?]
    at com.squareup.moshi.JsonAdapter.fromJson(JsonAdapter.java:33) ~[moshi-1.2.0.jar!/:?]
    at retrofit2.converter.moshi.MoshiResponseBodyConverter.convert(MoshiResponseBodyConverter.java:32) ~[converter-moshi-2.0.2.jar!/:?]
    at retrofit2.converter.moshi.MoshiResponseBodyConverter.convert(MoshiResponseBodyConverter.java:23) ~[converter-moshi-2.0.2.jar!/:?]
    at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:223) ~[retrofit-2.5.0.jar!/:?]
    at retrofit2.OkHttpCall.execute(OkHttpCall.java:186) ~[retrofit-2.5.0.jar!/:?]
...

We are using Spring Boot 5.1.8, SDK v0.8.0.