Empty Response for Some Arrivals Endpoints

For the past month or so, my two bus stops of interest produced intermittent results for the Arrivals endpoint. As of yesterday, the endpoint has finally degraded. It simply gives empty response []. If I query a different StopPoint id, everything looks fine.

I appreciate the service has no SLA. What are my options to continue to receive non-empty feeds for my StopPoint ids of interest, please?

A semi-related observation: while Google Maps fell back to timetables (no live arrivals) for my stops of interest, the Bus Times app continue to get the real time data. Would it imply Bus Times is using a cleverer API?

Other stop (Okay):

curl https://api.tfl.gov.uk/StopPoint/490014495X/Arrivals
JSON output
[{"$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities","id":"-2025510269","operationType":1,"vehicleId":"YX13BKL","naptanId":"490014495X","stationName":"Westminster Abbey","lineId":"88","lineName":"88","platformName":"X","direction":"outbound","bearing":"188","destinationNaptanId":"","destinationName":"Clapham Common","timestamp":"2021-11-13T15:56:15.893389Z","timeToStation":900,"currentLocation":"","towards":"Vauxhall","expectedArrival":"2021-11-13T16:11:15Z","timeToLive":"2021-11-13T16:11:45Z","modeName":"bus","timing":{"$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities","countdownServerAdjustment":"00:00:14.4940386","source":"2021-11-13T15:19:33.423Z","insert":"2021-11-13T15:56:11.545Z","read":"2021-11-13T15:56:26.015Z","sent":"2021-11-13T15:56:15Z","received":"0001-01-01T00:00:00Z"}},{"$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities","id":"-1215679495","operationType":1,"vehicleId":"YX18KXE","naptanId":"490014495X","stationName":"Westminster Abbey","lineId":"88","lineName":"88","platformName":"X","direction":"outbound","bearing":"188","destinationNaptanId":"","destinationName":"Clapham Common","timestamp":"2021-11-13T15:56:15.893389Z","timeToStation":581,"currentLocation":"","towards":"Vauxhall","expectedArrival":"2021-11-13T16:05:56Z","timeToLive":"2021-11-13T16:06:26Z","modeName":"bus","timing":{"$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities","countdownServerAdjustment":"00:00:14.4866847","source":"2021-11-13T15:19:33.423Z","insert":"2021-11-13T15:55:24.372Z","read":"2021-11-13T15:55:38.88Z","sent":"2021-11-13T15:56:15Z","received":"0001-01-01T00:00:00Z"}},{"$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities","id":"-385273896","operationType":1,"vehicleId":"YX18KXZ","naptanId":"490014495X","stationName":"Westminster Abbey","lineId":"88","lineName":"88","platformName":"X","direction":"outbound","bearing":"188","destinationNaptanId":"","destinationName":"Clapham Common","timestamp":"2021-11-13T15:56:15.893389Z","timeToStation":1548,"currentLocation":"","towards":"Vauxhall","expectedArrival":"2021-11-13T16:22:03Z","timeToLive":"2021-11-13T16:22:33Z","modeName":"bus","timing":{"$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities","countdownServerAdjustment":"00:00:14.4940386","source":"2021-11-13T15:19:33.423Z","insert":"2021-11-13T15:56:11.545Z","read":"2021-11-13T15:56:26.015Z","sent":"2021-11-13T15:56:15Z","received":"0001-01-01T00:00:00Z"}}]

My stops of interest (Empty):

curl https://api.tfl.gov.uk/StopPoint/490009201E/Arrivals

[]

curl https://api.tfl.gov.uk/StopPoint/490009201W/Arrivals

[]

I think it’s probably a different problem. The E3 seems to be yet another example. of a route returning nothing (see the thread on 63 and 414.

Except it is returning something. On the excellent London Vehicle Finder app, using the five digit IDs (47714 and 57584) for the Lionel Road North stops, it is happily reporting arrivals at the E3 but with “No information” in the destination field. If I enter E3 as the route, I get no arrivals but I do get a list of buses which have operated on the route today.

The 258 is another route affected. If I type in 58080 for Bushey Heath Three Crowns I get 142 arrivals, destination Watford Junction, and 258 arrivals, destination “No Information”.

I imagine this will be looked at pronto first thing on Monday.

2 Likes

j_smith

You you using your api_key for the requests? They sometimes rate limit without!

 $strTFLurl = "https://api.tfl.gov.uk/StopPoint/$item->strNaptanCode/Arrivals?" . ApiConfig::TFLAPISUFFIX;
 const TFLAPISUFFIX1 = "app_key=17878d1fb79d123456ac14bce8c94bec";

You can find your code at Products: List - Transport for London - API

2 Likes

Affirmative. app_key is valid and is in use. For testing purposes, API worked without the key.

This is a very interesting line of investigation, thank you!

I haven’t done any reality checks during the incident. My observation was that Google Maps were showing E3 arrivals based on timetables , while Bus Times were updating E3 arrivals as if the Arrivals endpoint was giving some data. I’ve seen Bus Times stating ‘no data’ on occasion, but not during the time of the incident.

All of a sudden, the issue has resolved on its own today (Tuesday) without any action from my side, than the post on Sunday. My countdown appliance is in agreement with Bus Times as of now.

Google Maps still plays on a safe side (timetable estimates):

Information
“Live bus information for some routes is not being displayed correctly. Please check bus stop timetables…” - tfl.gov.uk Effective from 11/14/21, 10:53 PM to 11/21/21, 8:30 AM

Google seems to be taking the warning status from here, with exception for ‘effective from/to’:

https://api.tfl.gov.uk/Line/E3/Disruption

vs. empty output for route 88

https://api.tfl.gov.uk/Line/88/Disruption

“For testing purposes, API worked without the key.”

It will do this for a while, but the rate-limiting might kick in if you don’t use the 500-per-minute app_key value.

I suspect that Google Maps are using this…

https://data.bus-data.dft.gov.uk/timetable/download/

to get the whole of the UK data for timetables, and then using the TfL APIs to update them with live data: the only hard bit to match the service runs (defined by their timetabled start) with the actual running bus service.

There is also a gov.uk live bus API How to use bus open data but the " Bus location data API parameters" one uses this SIRI-VM which I can’t get to send me more than one result…

1 Like

j_smith
The working timetable set having been updated at last, I can confirm that E3 did have new schedules last weekend so the absence of predictions was part of that wider failure.

Are your stops of interest now reporting OK?

1 Like

@mjcarchive
The data for the stops of my interest have become available on last Tuesday, 16th November, thank you!

As you hinted, the culprit appears to be Line, rather than StopPoint endpoint on this occasion.

Last Thursday, 18th November, I happened to take E3 from bust stop 57685 which is equipped with the arrivals prediction timetable. The display was saying: ‘Live bus information for some routes is not being displayed correctly. Please check bus stop timetables.’ The Bus Times app gave a better prediction, and the bus has arrived very close to it.