Bug Reports

If you identify any API bugs or errors in the data please record them here.

478 Responses to “Bug Reports”

  1. Admin says:

    Thanks to work by Miguel Bento the lap times for the Belgian and Italian Grand Prix are now available.

  2. Toby says:

    Hi Chris
    In case you’re not already aware but there seems to be an issue with the lap times data again after Singapore.

  3. Admin says:

    Hi Toby,
    Yes, there’s an ongoing problem with the import of the lap times so they’re likely to be late. Try now.

  4. Toby says:

    Hi Chris
    It seems as though the COTA lap times are available through the API but not yet updated on the disk image (which says last updated yesterday). Is this as expected?

  5. Admin says:

    Hi Toby,
    That’s odd. As it’s easier than checking, I’ve created a new dump and updated the date. Let me know if the problem remains.

  6. Bob Phillips says:

    there are results for 111 drivers that are not in the drivers table. For example drivers 800 to 816 are some of the driverIDs in the results table that are not in the drivers table. Also, team 201 is missing. Also, there are some drivers that have 2 results for a race. For example driver 624 for race 788 has two results. What is the meaning of the two results? Is this an error did he take over a team mates car after a wreck?

  7. Bob Phillips says:

    Sorry, missing drivers is error on my part. Still remains the question about why some drivers have two results for the same race. Thanks.

  8. Admin says:

    Hi Bob,
    Drivers sharing or swapping cars was an interesting feature of early races – difficult to imagine nowadays!

  9. TK says:

    Hi Awesome Ergast Admin(s),

    Just noticed Jacques’s laptimes for the 2004 Chinese GP are linked to Trulli instead.

    2004’s the season where Trulli drove for Renault for rounds 1 to 15, skipped 16 (China), and jumped over to Toyota for rounds 17 and 18. Villeneuve took over Trulli’s seat at Renault for rounds 16, 17, and 18.



    Anyway, here are the IDs and some verification queries.

    # 2004 China :: raceId = 105
    # Trulli :: driverId = 15
    # Villineuve :: driverId = 35

    # Jacques’s and Trulli’s records in drivers
    select *
    from drivers
    where driverId in (15,35); # 15 is trulli, 35 is Jacques

    # raceId for 2004 China
    select *
    from races
    where raceId = 105;

    # query showing Jacques’s laptimes for 2004 China are all associated with Trulli
    select *
    from laptimes as l
    join drivers as d on d.driverId = l.driverId
    where l.raceId = 105 AND d.driverId in (15,35); # 15 is trulli, 35 is Jacques

    AFAICT, the records in the results table are fine. Villeneuve has results for rounds 16 to 18. Trulli has results for rounds 1 to 15, 17, and 18.

    select driverRef, c.name, races.*
    from races
    join results on races.raceId = results.raceId
    join drivers d on d.driverId = results.driverId
    join constructors c on c.constructorId = results.constructorId
    where year = 2004
    AND d.driverId in (15,35)
    order by round;

    Thanks for maintaining a fantastic project!!!


    # temp fix?
    update laptimes
    set driverId = 35 # Jacques
    where raceId = 105 # China
    AND driverId = 15; # Trulli

  10. Admin says:

    Thanks TK,
    I’ve reviewed and applied your fix.

  11. TK says:

    Hi Chris,

    Found a few other items for laptimes.

    The first one appears to just require relinking the laptimes to the correct driver.

    – 2014 Brazilian GP (raceId=917)
    — Kevin Magnussen’s times (driverId=825) are linked to the “original” Magnussen (driverId=76). The laptimes and positions match up with other published records I found.

    I wasn’t able to find laptimes and positions for the next ones, but they might just be linked to the wrong driver.

    – 1997 European GP (raceId=223)
    — Fontana’s times (driverId=82) are missing and might be linked to Morbidelli (driverId=81). Morbidelli had an injury (or injuries) and retired before the season ended. Fontana subbed for Morbidelli for this race.

    – 1999 San Marino GP (raceId=177) and Spanish GP (raceId=179)
    — Salo’s times (driverId=63) are missing and might be linked to Ricardo Zonta (driverId=41). Zonta was injured during practice in Brazil (round 2) and was subbed by Salo for the next three races (these two, plus Monaco).

    – 2001 Italian GP (raceId=155)
    — Alesi’s times (driverId=55) are missing and might be linked to Trulli (driverId=15). Trulli retired in the first lap, but has laptimes linked for this race.

    The next two might be missing records and just need to have them re-ingested.

    – 1999 Monaco (raceId=178)
    — Salo (driverId=63) doesn’t have laptimes, but the results table and wiki say he completed 36 laps. However, there don’t appear to be any incorrectly linked laptime records for this race.

    – 1999 Brazilian GP (raceId=176)
    — Sarrazin (driverId=72) doesn’t have laptimes, but the results table and wiki say he completed 31 laps. However, like the instance above, there don’t appear to be any incorrectly linked laptime records for this race.

    This last one might be tricky (or maybe not).

    – 2009 Italian GP (raceId=13)
    — Alguersuari (driverId=153) completed 19 laps in this race, but doesn’t have any laptime records. Webber (driverId=17) actually retired in the first lap, but has 52 laptime records associated to him. But that’s too many records to match Alguersuari’s lap count for this race (19 vs 52). However, Buemi (raceId=67) completed 52 laps, but only has 19 records; which matches Alguersuari’s number. So, maybe Webber has Buemi’s records, while Buemi has Alguersari’s. Might be easier to just drop all the laptime records for that race and just reimport the data.



  12. Admin says:

    Thanks TK – I’ll work on these when the season closes.

  13. TK says:

    Hey Chris,

    I figured I’d make this a bit more automated and wrote some validation queries to identify potential problems like these.


    The first two are pretty quick.

    1. Is the laptime record for the driver’s 1st lap missing?
    2. Is the laptime record for the driver’s total laps missing?

    The last one’s a bit heavier.

    3. Do the number of laptime records match the driver’s results.laps value for the race?

    I don’t know if all the scenarios identified with #2 and #3 are problems. #3 identified 2014 China, the race where Hamilton was shown the chequered flag a lap early. So, the laptime records for that race are probably okay. But #3 also identified Perez’s results in 2014 Hungary. His results.laps value is 23. But, the laptime records say he completed 22 laps, which matches the FIA and Wiki’s listed completed laps.

    Anyway, there were 8 records returned for #1, 61 for #2, and 97 for #3. Given the overlap with what the queries identify, I’d guess there’s a max of 97 driver results that >might< have misplaced laptimes. So basically a small percentage, given that there are 8,497 total driver results during this period.


  14. Przemek says:

    Hi, I have been playing with your database and discovered the following discrepancies:
    https://en.wikipedia.org/wiki/1950_Italian_Grand_Prix you have listed Serafini and Ascari racing for different team, but acc to wiki they were both in ferrari
    https://en.wikipedia.org/wiki/1951_French_Grand_Prix you put Fangio and Fagioli in car number 24 (should be 4) and different teams (should be alfa romeo)
    https://en.wikipedia.org/wiki/1953_German_Grand_Prix you put Farina with car number 12 (it was 2)
    https://en.wikipedia.org/wiki/1953_Italian_Grand_Prix you put Landi in car number 2 (it was 42)

  15. Giannis says:

    Hi! I just noticed that this query


    feeds back the results twice per row.

    race 1
    race 1
    race 2
    race 2 and so on

  16. Admin says:

    Hi Giannis,
    Thanks for the heads-up – now fixed.

  17. Scott says:


    The 2018 calendar list Round 3 Chinese GP as 15 May 2018, it should be 15 April 2018.

  18. Aaron says:

    Hi, The times for the 2018 season need to be updated to match the new start times as announced here: https://www.formula1.com/en/latest/headlines/2018/2/new-race-weekend-schedule-announced-for-2018.html

    Also as mentioned before the Chinese Grand Prix is listed as the 15th of May, instead of the 15th of April.

  19. Admin says:

    Thanks Scott, Thanks Aaron – schedule updated. Does anyone know of a list somewhere with race start times in UTC?

  20. Toby says:

    Hi Chris

    I stumbled over a few errors but in reading through the recent feedback above I see TK has already noted them. Presumably still on the list to be corrected (2014/MAG in particular was my issue).

    As always, thanks for your awesome work and great work TK on the validation code.


  21. Admin says:

    Hi Toby,
    Thanks for the heads-up. I forgot about the second list. I’ve done 2014/MAG but the others need further investigation.

  22. emkael says:


    Elio De Angelis’ time in the 1980 Austrian GP (resultId=12244) is incorrect – it’s a duplicate of Piquet’s time.
    The correct values are: `time` = ‘+1:14.97’, milliseconds = 5250700.

  23. Admin says:

    Thanks Emkael – now corrected.

  24. Caleb says:


    There seems to be an issue with the FastestLap data on at least one result:



    Force India



    As you can see, the AverageSpeed field is the same as the Time field. Just wanted to make you ware. Thanks for the wonderful API!


  25. Admin says:

    Thanks Caleb – now corrected.

  26. Mike says:

    Hiya –

    Great API as always 🙂

    Just noticed the fastest lap for the Australian GP (Ricciardo) is missing (link below), but all other data is available:


  27. Admin says:

    Thanks Mike – I’ve had a lot of issues with the data at the start of the season, due to unforeseen changes in formats.

  28. Tony says:

    Hi Chris

    Lots of niggling changes to the data publication format, eh?!

    Just spotted an issue in 2018/1 quali results – red_bull – HAR and GAS have constructor_id red_bull rather than toro_rosso


  29. Admin says:

    Thanks Tony – now corrected.

  30. Jeffrey says:

    Hi Chris,

    There seems to be something wrong in the lap times for the 2018/1 race, most of them are way too low.
    The lap times for Vettel seems to be right. For Hamilton and Raikkonen only the safety car laps are off. For the other drivers almost all laps are off.


  31. Admin says:

    Hi Jeffrey.
    Thanks for warning – now corrected.

  32. Admin says:

    Hi Jeffrey,
    Check the lastest image. They should be there.

  33. Jeffrey says:

    Hi Chris,

    Amazingly fast response! I can confirm the lap times are now correct.


  34. Lukas says:


    i found mistake in laptimes from Bahrain 18 GP. Here Gasly’s lap 20 time is 1:56.448, but in FIA’s pdf this time was achieved in lap 16 after his pitstop. It looks like his laptimes are in wrong order.


  35. Admin says:

    Hi Lukas,
    Thanks for the warning. Now corrected.

  36. Evan says:

    Hey, position order looks incorrect for 2018/2 Bahrain.

    Pos 1-11 are correct, but Perez and Hartley are then listed in 12 and 13 when they were 16 and 17 according to the official results.

    This appears to be because they originally finished 12th and 13th but each had 30-second penalties added to their race time.

  37. Admin says:

    Hi Evan,
    Thanks for the heads-up. Now corrected.

  38. Max Kossatz says:


    Currently working on a uni project where we query Ergast.

    We found, that the first race in 2002 is the Australian Grand Prix (2002-03-03)

    BUT that race does not have any qualifying time.
    It’s not in the array for all QTs: http://ergast.com/api/f1/2002/qualifying.json
    It also doesnt show for a specific QT query: http://ergast.com/api/f1/2002/1/qualifying.json

    The Qualifying Time data for the Australian Grand Prix 2002 can be found on wikipedia though… so seams like Ergast is missing it in the DB.

    Exactly same problem 2001.
    We did not find the issue in any other year yet, but we will add a bug comment in case we found another year with the same issue after we completed our testing phase.

  39. Admin says:

    Hi Max,
    Qualifying results are only fully supported from 2003 (there’s a note on the documentation page). This is because I couldn’t find a source for some of the earlier data at the time the database was created. However, since you’ve found this data is now available on Wikipedia I’d be very happy to fill in the gaps! If you spot any other omissions that can be corrected please let me know.
    Many thanks – and good luck with the project.

  40. Chris says:

    Looks like Hulk has been accidentally assigned to Haas in the quali results for Monaco 2018.

    Cheers for this API, having a lot of fun with it!

  41. Admin says:

    Thanks for the heads-up – now corrected.

  42. Stergios says:

    Hi Chris,

    In the latest F1 qualifying, Leclerc and Magnussen are missing:

    In addition, http://ergast.com/api/f1/2018/last/qualifying is not up-to-date with the Canadian numbers!

    Thanks! Keep up the great work 🙂

  43. Admin says:

    Hi Stergios,
    Thanks for the heads-up – now fixed.

  44. Filipe says:

    Hi Chris, just noticed that the laptimes for the two last laps of the Canada 2018 race are missing from the lap_times.csv file.

  45. Admin says:

    Hi Filipe,
    AFAICT there are entries for lap 67 and lap 68 in the CSV file for the drivers who completed those laps. What do you think is missing?

  46. Amit Dhamu says:

    Hi, https endpoints still use http links in results. For example a call to the following:


    – MRData.xmlns: “http://ergast.com/mrd/1.4”
    – MRData.url: “http://ergast.com/api/f1/current/next.json”
    – MRData.RaceTable.Races[0].url: “http://en.wikipedia.org/wiki/2018_Hungarian_Grand_Prix”
    – MRData.RaceTable.Races[0].Circuit.url: “http://en.wikipedia.org/wiki/Hungaroring”

    Can these be fixed please.


  47. Admin says:

    Hi Amit,
    That will be tricky – many of the URLs are hard-coded in the database. I’ll investigate solutions.

  48. Bas says:

    Hi, the classification of Alonso and Stroll in the FrenchGP2018 results is not right I think: http://ergast.com/api/f1/2018/8/results

    They are both shown as R, but were classified as they had completed enough of the race distance. These should be 16 and 17. This is conform the FIA communication at https://www.fia.com/events/fia-formula-one-world-championship/season-2018/eventtiming-information-6 (bottom link).

    In the ChineseGP2018 you’ve done it as I think is right: (http://ergast.com/api/f1/2018/3/results) Brendon Hartley dropped out with collision damage at lap 51, but is classified 20.

    Thanks for the DB!

  49. Admin says:

    Hi Bas,
    Well spotted. Now corrected.

  50. Latsi says:

    Hi, can you update Italian GP results? Grosjean was disqualified… Thanks!

Add a Comment: