Duplicate ids in arrival data


#1

I fetch updated arrival data every two minutes. About once per day I am getting arrival data where more than one row has the same id and vehicleId.

Here is an example that I captured from my application from the endpoint https://api.tfl.gov.uk/stoppoint/940GZZLUCWR/arrivals - The id “255910376” appears twice.

[
   {
      "$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities",
      "id":"2138942798",
      "operationType":1,
      "vehicleId":"301",
      "naptanId":"940GZZLUCWR",
      "stationName":"Canada Water Underground Station",
      "lineId":"jubilee",
      "lineName":"Jubilee",
      "platformName":"Eastbound - Platform 2",
      "direction":"outbound",
      "bearing":"",
      "destinationNaptanId":"940GZZLUSTD",
      "destinationName":"Stratford Underground Station",
      "timestamp":"2018-10-23T21:13:23.5056424Z",
      "timeToStation":828,
      "currentLocation":"Between Bond Street and Green Park",
      "towards":"Stratford",
      "expectedArrival":"2018-10-23T21:27:11Z",
      "timeToLive":"2018-10-23T21:27:11Z",
      "modeName":"tube",
      "timing":{
         "$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities",
         "countdownServerAdjustment":"00:00:00",
         "source":"0001-01-01T00:00:00",
         "insert":"0001-01-01T00:00:00",
         "read":"2018-10-23T21:13:00.581Z",
         "sent":"2018-10-23T21:13:23Z",
         "received":"0001-01-01T00:00:00"
      }
   },
   {
      "$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities",
      "id":"-637196591",
      "operationType":1,
      "vehicleId":"302",
      "naptanId":"940GZZLUCWR",
      "stationName":"Canada Water Underground Station",
      "lineId":"jubilee",
      "lineName":"Jubilee",
      "platformName":"Eastbound - Platform 2",
      "direction":"outbound",
      "bearing":"",
      "destinationNaptanId":"940GZZLUSTD",
      "destinationName":"Stratford Underground Station",
      "timestamp":"2018-10-23T21:13:23.5056424Z",
      "timeToStation":887,
      "currentLocation":"At Bond Street Platform 4",
      "towards":"Stratford",
      "expectedArrival":"2018-10-23T21:28:10Z",
      "timeToLive":"2018-10-23T21:28:10Z",
      "modeName":"tube",
      "timing":{
         "$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities",
         "countdownServerAdjustment":"00:00:00",
         "source":"0001-01-01T00:00:00",
         "insert":"0001-01-01T00:00:00",
         "read":"2018-10-23T21:13:00.581Z",
         "sent":"2018-10-23T21:13:23Z",
         "received":"0001-01-01T00:00:00"
      }
   },
   {
      "$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities",
      "id":"1735806751",
      "operationType":1,
      "vehicleId":"304",
      "naptanId":"940GZZLUCWR",
      "stationName":"Canada Water Underground Station",
      "lineId":"jubilee",
      "lineName":"Jubilee",
      "platformName":"Westbound - Platform 1",
      "direction":"inbound",
      "bearing":"",
      "destinationNaptanId":"940GZZLUSTM",
      "destinationName":"Stanmore Underground Station",
      "timestamp":"2018-10-23T21:13:23.5056424Z",
      "timeToStation":108,
      "currentLocation":"Between Canary Wharf and Canada Water",
      "towards":"Stanmore",
      "expectedArrival":"2018-10-23T21:15:11Z",
      "timeToLive":"2018-10-23T21:15:11Z",
      "modeName":"tube",
      "timing":{
         "$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities",
         "countdownServerAdjustment":"00:00:00",
         "source":"0001-01-01T00:00:00",
         "insert":"0001-01-01T00:00:00",
         "read":"2018-10-23T21:13:00.581Z",
         "sent":"2018-10-23T21:13:23Z",
         "received":"0001-01-01T00:00:00"
      }
   },
   {
      "$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities",
      "id":"255910376",
      "operationType":1,
      "vehicleId":"307",
      "naptanId":"940GZZLUCWR",
      "stationName":"Canada Water Underground Station",
      "lineId":"jubilee",
      "lineName":"Jubilee",
      "platformName":"Westbound - Platform 1",
      "direction":"inbound",
      "bearing":"",
      "destinationNaptanId":"940GZZLUSTM",
      "destinationName":"Stanmore Underground Station",
      "timestamp":"2018-10-23T21:13:23.5056424Z",
      "timeToStation":828,
      "currentLocation":"Between Stratford and West Ham",
      "towards":"Stanmore",
      "expectedArrival":"2018-10-23T21:27:11Z",
      "timeToLive":"2018-10-23T21:27:11Z",
      "modeName":"tube",
      "timing":{
         "$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities",
         "countdownServerAdjustment":"00:00:00",
         "source":"0001-01-01T00:00:00",
         "insert":"0001-01-01T00:00:00",
         "read":"2018-10-23T21:13:00.581Z",
         "sent":"2018-10-23T21:13:23Z",
         "received":"0001-01-01T00:00:00"
      }
   },
   {
      "$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities",
      "id":"255910376",
      "operationType":1,
      "vehicleId":"307",
      "naptanId":"940GZZLUCWR",
      "stationName":"Canada Water Underground Station",
      "lineId":"jubilee",
      "lineName":"Jubilee",
      "platformName":"Westbound - Platform 1",
      "direction":"inbound",
      "bearing":"",
      "destinationNaptanId":"940GZZLUSTM",
      "destinationName":"Stanmore Underground Station",
      "timestamp":"2018-10-23T21:13:23.5056424Z",
      "timeToStation":708,
      "currentLocation":"Between West Ham and Canning Town",
      "towards":"Stanmore",
      "expectedArrival":"2018-10-23T21:25:11Z",
      "timeToLive":"2018-10-23T21:25:11Z",
      "modeName":"tube",
      "timing":{
         "$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities",
         "countdownServerAdjustment":"00:00:00",
         "source":"0001-01-01T00:00:00",
         "insert":"0001-01-01T00:00:00",
         "read":"2018-10-23T21:13:00.581Z",
         "sent":"2018-10-23T21:13:23Z",
         "received":"0001-01-01T00:00:00"
      }
   },
   {
      "$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities",
      "id":"-1848299093",
      "operationType":1,
      "vehicleId":"310",
      "naptanId":"940GZZLUCWR",
      "stationName":"Canada Water Underground Station",
      "lineId":"jubilee",
      "lineName":"Jubilee",
      "platformName":"Eastbound - Platform 2",
      "direction":"outbound",
      "bearing":"",
      "destinationNaptanId":"940GZZLUSTD",
      "destinationName":"Stratford Underground Station",
      "timestamp":"2018-10-23T21:13:23.5056424Z",
      "timeToStation":588,
      "currentLocation":"Left Westminster",
      "towards":"Stratford",
      "expectedArrival":"2018-10-23T21:23:11Z",
      "timeToLive":"2018-10-23T21:23:11Z",
      "modeName":"tube",
      "timing":{
         "$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities",
         "countdownServerAdjustment":"00:00:00",
         "source":"0001-01-01T00:00:00",
         "insert":"0001-01-01T00:00:00",
         "read":"2018-10-23T21:13:00.581Z",
         "sent":"2018-10-23T21:13:23Z",
         "received":"0001-01-01T00:00:00"
      }
   },
   {
      "$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities",
      "id":"2139073870",
      "operationType":1,
      "vehicleId":"321",
      "naptanId":"940GZZLUCWR",
      "stationName":"Canada Water Underground Station",
      "lineId":"jubilee",
      "lineName":"Jubilee",
      "platformName":"Eastbound - Platform 2",
      "direction":"outbound",
      "bearing":"",
      "destinationNaptanId":"940GZZLUSTD",
      "destinationName":"Stratford Underground Station",
      "timestamp":"2018-10-23T21:13:23.5056424Z",
      "timeToStation":1007,
      "currentLocation":"At Baker Street Platform 7",
      "towards":"Stratford",
      "expectedArrival":"2018-10-23T21:30:10Z",
      "timeToLive":"2018-10-23T21:30:10Z",
      "modeName":"tube",
      "timing":{
         "$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities",
         "countdownServerAdjustment":"00:00:00",
         "source":"0001-01-01T00:00:00",
         "insert":"0001-01-01T00:00:00",
         "read":"2018-10-23T21:13:00.581Z",
         "sent":"2018-10-23T21:13:23Z",
         "received":"0001-01-01T00:00:00"
      }
   },
   {
      "$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities",
      "id":"-637065519",
      "operationType":1,
      "vehicleId":"322",
      "naptanId":"940GZZLUCWR",
      "stationName":"Canada Water Underground Station",
      "lineId":"jubilee",
      "lineName":"Jubilee",
      "platformName":"Eastbound - Platform 2",
      "direction":"outbound",
      "bearing":"",
      "destinationNaptanId":"940GZZLUSTD",
      "destinationName":"Stratford Underground Station",
      "timestamp":"2018-10-23T21:13:23.5056424Z",
      "timeToStation":1787,
      "currentLocation":"Between Willesden Green and Kilburn",
      "towards":"Stratford",
      "expectedArrival":"2018-10-23T21:43:10Z",
      "timeToLive":"2018-10-23T21:43:10Z",
      "modeName":"tube",
      "timing":{
         "$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities",
         "countdownServerAdjustment":"00:00:00",
         "source":"0001-01-01T00:00:00",
         "insert":"0001-01-01T00:00:00",
         "read":"2018-10-23T21:13:00.581Z",
         "sent":"2018-10-23T21:13:23Z",
         "received":"0001-01-01T00:00:00"
      }
   },
   {
      "$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities",
      "id":"-1581681595",
      "operationType":1,
      "vehicleId":"326",
      "naptanId":"940GZZLUCWR",
      "stationName":"Canada Water Underground Station",
      "lineId":"jubilee",
      "lineName":"Jubilee",
      "platformName":"Eastbound - Platform 2",
      "direction":"outbound",
      "bearing":"",
      "destinationNaptanId":"940GZZLUSTD",
      "destinationName":"Stratford Underground Station",
      "timestamp":"2018-10-23T21:13:23.5056424Z",
      "timeToStation":468,
      "currentLocation":"At Waterloo Platform 6",
      "towards":"Stratford",
      "expectedArrival":"2018-10-23T21:21:11Z",
      "timeToLive":"2018-10-23T21:21:11Z",
      "modeName":"tube",
      "timing":{
         "$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities",
         "countdownServerAdjustment":"00:00:00",
         "source":"0001-01-01T00:00:00",
         "insert":"0001-01-01T00:00:00",
         "read":"2018-10-23T21:13:00.581Z",
         "sent":"2018-10-23T21:13:23Z",
         "received":"0001-01-01T00:00:00"
      }
   },
   {
      "$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities",
      "id":"256106984",
      "operationType":1,
      "vehicleId":"337",
      "naptanId":"940GZZLUCWR",
      "stationName":"Canada Water Underground Station",
      "lineId":"jubilee",
      "lineName":"Jubilee",
      "platformName":"Eastbound - Platform 2",
      "direction":"outbound",
      "bearing":"",
      "destinationNaptanId":"940GZZLUSTD",
      "destinationName":"Stratford Underground Station",
      "timestamp":"2018-10-23T21:13:23.5056424Z",
      "timeToStation":1247,
      "currentLocation":"At St. John's Wood Platform 2",
      "towards":"Stratford",
      "expectedArrival":"2018-10-23T21:34:10Z",
      "timeToLive":"2018-10-23T21:34:10Z",
      "modeName":"tube",
      "timing":{
         "$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities",
         "countdownServerAdjustment":"00:00:00",
         "source":"0001-01-01T00:00:00",
         "insert":"0001-01-01T00:00:00",
         "read":"2018-10-23T21:13:00.581Z",
         "sent":"2018-10-23T21:13:23Z",
         "received":"0001-01-01T00:00:00"
      }
   },
   {
      "$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities",
      "id":"-1038878558",
      "operationType":1,
      "vehicleId":"345",
      "naptanId":"940GZZLUCWR",
      "stationName":"Canada Water Underground Station",
      "lineId":"jubilee",
      "lineName":"Jubilee",
      "platformName":"Eastbound - Platform 2",
      "direction":"outbound",
      "bearing":"",
      "destinationNaptanId":"940GZZLUSTD",
      "destinationName":"Stratford Underground Station",
      "timestamp":"2018-10-23T21:13:23.5056424Z",
      "timeToStation":198,
      "currentLocation":"Approaching Bermondsey",
      "towards":"Stratford",
      "expectedArrival":"2018-10-23T21:16:41Z",
      "timeToLive":"2018-10-23T21:16:41Z",
      "modeName":"tube",
      "timing":{
         "$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities",
         "countdownServerAdjustment":"00:00:00",
         "source":"0001-01-01T00:00:00",
         "insert":"0001-01-01T00:00:00",
         "read":"2018-10-23T21:13:00.581Z",
         "sent":"2018-10-23T21:13:23Z",
         "received":"0001-01-01T00:00:00"
      }
   },
   {
      "$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities",
      "id":"2138221902",
      "operationType":1,
      "vehicleId":"351",
      "naptanId":"940GZZLUCWR",
      "stationName":"Canada Water Underground Station",
      "lineId":"jubilee",
      "lineName":"Jubilee",
      "platformName":"Eastbound - Platform 2",
      "direction":"outbound",
      "bearing":"",
      "destinationNaptanId":"940GZZLUSTD",
      "destinationName":"Stratford Underground Station",
      "timestamp":"2018-10-23T21:13:23.5056424Z",
      "timeToStation":1547,
      "currentLocation":"Approaching West Hampstead",
      "towards":"Stratford",
      "expectedArrival":"2018-10-23T21:39:10Z",
      "timeToLive":"2018-10-23T21:39:10Z",
      "modeName":"tube",
      "timing":{
         "$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities",
         "countdownServerAdjustment":"00:00:00",
         "source":"0001-01-01T00:00:00",
         "insert":"0001-01-01T00:00:00",
         "read":"2018-10-23T21:13:00.581Z",
         "sent":"2018-10-23T21:13:23Z",
         "received":"0001-01-01T00:00:00"
      }
   },
   {
      "$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities",
      "id":"1732988703",
      "operationType":1,
      "vehicleId":"354",
      "naptanId":"940GZZLUCWR",
      "stationName":"Canada Water Underground Station",
      "lineId":"jubilee",
      "lineName":"Jubilee",
      "platformName":"Westbound - Platform 1",
      "direction":"inbound",
      "bearing":"",
      "destinationNaptanId":"940GZZLUSTM",
      "destinationName":"Stanmore Underground Station",
      "timestamp":"2018-10-23T21:13:23.5056424Z",
      "timeToStation":468,
      "currentLocation":"At North Greenwich Platform 1",
      "towards":"Stanmore",
      "expectedArrival":"2018-10-23T21:21:11Z",
      "timeToLive":"2018-10-23T21:21:11Z",
      "modeName":"tube",
      "timing":{
         "$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities",
         "countdownServerAdjustment":"00:00:00",
         "source":"0001-01-01T00:00:00",
         "insert":"0001-01-01T00:00:00",
         "read":"2018-10-23T21:13:00.581Z",
         "sent":"2018-10-23T21:13:23Z",
         "received":"0001-01-01T00:00:00"
      }
   },
   {
      "$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities",
      "id":"-1038813022",
      "operationType":1,
      "vehicleId":"355",
      "naptanId":"940GZZLUCWR",
      "stationName":"Canada Water Underground Station",
      "lineId":"jubilee",
      "lineName":"Jubilee",
      "platformName":"Eastbound - Platform 2",
      "direction":"outbound",
      "bearing":"",
      "destinationNaptanId":"940GZZLUSTD",
      "destinationName":"Stratford Underground Station",
      "timestamp":"2018-10-23T21:13:23.5056424Z",
      "timeToStation":1487,
      "currentLocation":"At Finchley Road Platform 3",
      "towards":"Stratford",
      "expectedArrival":"2018-10-23T21:38:10Z",
      "timeToLive":"2018-10-23T21:38:10Z",
      "modeName":"tube",
      "timing":{
         "$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities",
         "countdownServerAdjustment":"00:00:00",
         "source":"0001-01-01T00:00:00",
         "insert":"0001-01-01T00:00:00",
         "read":"2018-10-23T21:13:00.581Z",
         "sent":"2018-10-23T21:13:23Z",
         "received":"0001-01-01T00:00:00"
      }
   },
   {
      "$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities",
      "id":"256303592",
      "operationType":1,
      "vehicleId":"367",
      "naptanId":"940GZZLUCWR",
      "stationName":"Canada Water Underground Station",
      "lineId":"jubilee",
      "lineName":"Jubilee",
      "platformName":"Westbound - Platform 1",
      "direction":"inbound",
      "bearing":"",
      "destinationNaptanId":"940GZZLUWYP",
      "destinationName":"Wembley Park Underground Station",
      "timestamp":"2018-10-23T21:13:23.5056424Z",
      "timeToStation":168,
      "currentLocation":"At Canary Wharf Platform 1",
      "towards":"Wembley Park",
      "expectedArrival":"2018-10-23T21:16:11Z",
      "timeToLive":"2018-10-23T21:16:11Z",
      "modeName":"tube",
      "timing":{
         "$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities",
         "countdownServerAdjustment":"00:00:00",
         "source":"0001-01-01T00:00:00",
         "insert":"0001-01-01T00:00:00",
         "read":"2018-10-23T21:13:00.581Z",
         "sent":"2018-10-23T21:13:23Z",
         "received":"0001-01-01T00:00:00"
      }
   }
]