Bug Reports

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

268 Responses to “Bug Reports”

  1. Admin says:

    Hi Johannes,

    I’ve added the required header so have another try. Not sure about the JSONP problem though – what method is producing the error message?

  2. Johannes says:

    Thank you! Problem solved.

  3. David says:

    i tried to open your Database Image, but whatever collation i choose, I’m getting wrong characters. For Example:(opened with UTF-8)
    Is there a possibility that the Image `got not correctly exported? I would appreciate if you could have a look at this.
    Ciao David

  4. rob cooper says:

    I’m writing an F1 next-race app for the Pebble watch — but the json response doesn’t have time of race, but your api doc has time in the sample. Countdown to race time is a big deal for the watch face.

    “MRData”: {
    “xmlns”: “http:\/\/ergast.com\/mrd\/1.2”,
    “series”: “f1”,
    “url”: “http:\/\/ergast.com\/api\/f1\/current\/next.json”,
    “limit”: “30”,
    “offset”: “0”,
    “total”: “1”,
    “RaceTable”: {
    “season”: “2014”,
    “round”: “1”,
    “Races”: [
    “season”: “2014”,
    “round”: “1”,
    “url”: “https:\/\/en.wikipedia.org\/wiki\/2014_Australian_Grand_Prix”,
    “raceName”: “Australian Grand Prix”,
    “Circuit”: {
    “circuitId”: “albert_park”,
    “url”: “http:\/\/en.wikipedia.org\/wiki\/Melbourne_Grand_Prix_Circuit”,
    “circuitName”: “Albert Park Grand Prix Circuit”,
    “Location”: {
    “lat”: “-37.8497”,
    “long”: “144.968”,
    “locality”: “Melbourne”,
    “country”: “Australia”
    “date”: “2014-03-16”

  5. Admin says:

    Hi Rob,

    Thanks for the heads-up. All race start times should now be there for 2014.

  6. rob cooper says:

    times have dropped again. They were there this AM but aren’t now (16:13 PDT)

  7. Admin says:

    Apologies Rob – I had to roll back the database to fix the character encoding problems raised earlier. Race times are back and character encoding now fixed.

  8. Admin says:


    Thanks for the heads-up. Character encoding was utf-8 in the API but incorrect in the database image. Surprisingly, the problem was reversible so importing the database could cure it. Now fixed.

  9. Johnny Wall says:

    2014, Race 1, didn’t botas pit twice? The json feed does not have that included

  10. Admin says:

    Hi Johnny,

    I’ve re-run the import and several extra pit stops have appeared. Not sure what happened but I’ll keep an eye on it for round 2.

  11. rob cooper says:

    OH NOES! Race time(s) not accurate! Off by one hour (at least for Bahrain, not sure about the others but I assume it’s systemic).

    Here is the return from ergast.com:

    Here is the current epoch time and conversionG
    MT: Sun, 06 Apr 2014 15:52:03 GMT
    Your time zone: April 6, 2014 at 8:52:03 AM PDT GMT-7

    According to this the race will start in 6 minutes or so but it’s been on for close to an hour! Your times are off by one hour.

  12. Admin says:

    Not sure how that happened – times were all taken from official sources before the beginning of the season. I’ll check the remaining races.

  13. Rob W says:

    Love the data source. I’m using it as a learning tool. One thing I noticed is all the numbers in the JSON format are in double quotes which sends them along as strings. JSON allows for numbers to be unquoted. It’d be great to allow these numbers to be passed through as native number types.

  14. Admin says:

    Hi Rob,
    Agreed, this should be revised at some point. When the API started I took this approach because it wasn’t clear which fields should be numbers since often they can numbers or characters e.g. grid position is a number, unless the car starts from the pit lane. Some fields have since been split into numerical variants (e.g. position) and textual variants (e.g. positionText). The schema needs to be updated to take this into account but obviously this will have to be done out of season because it has the potential to break current applications.

  15. Rob W says:

    Appreciate it, and that makes sense. I also noticed this morning in the Drivers Standings results Valtteri Bottas numbers is wrong. Currently coming through as 17 and it should be 77 (though it is correct elsewhere) http://ergast.com/api/f1/current/driverStandings.json

  16. Admin says:

    Hi Rob,

    Thanks for the heads-up. Now corrected.

  17. Arto N says:

    Hey, great API. I’m trying to match constructor results to race results, but couple of inconsistencies in data are causing some problems.

    In /api/f1/2002/constructorStandings one constructor is ‘sauber’, but /api/f1/2002/1/results refer to ‘bmw_sauber’

    /api/f1/1992/6/results refer to constructor ‘moda’ but it’s missing from /api/f1/1992/constructorStandings

    Also, in /api/f1/drivers/montoya {…”givenName”:”Juan”,”familyName”:”Pablo Montoya”…} surely it should be {…”givenName”:”Juan Pablo”,”familyName”:”Montoya”…}?

  18. Arto N says:

    Constructor data seems to be incorrect in cases where team has changed engine provider in the middle of the season. In those cases WCC points are divided to separate chassis-engine combinations, but in the database those are combined to one chassis constructor.

    For example in 1984 Arrows used both Ford and BMW engines. Both Arrows-Ford and Arrows-BMW scored 3 points and were 10th and 11th in constructors’ championship. However, in http://ergast.com/api/f1/1984/constructorStandings constructor “arrows” has 6 points and is in 9th position.

  19. Admin says:

    Thanks for the heads-up. Whilst data for recent years was manually checked as it was entered, the bulk of the historical data was imported automatically and has a number of issues. Unfortunately, these will take a while to resolve. I’ll let you know when I’ve found a solution.

  20. Brieuc says:


    The driver “Franck Lagorce” has two positions in this qualifying results (20 & 25):


    This is the driver “Jean-Denis Délétraz” in 25th position.


  21. Admin says:

    Thanks Brieuc. It’s been corrected.

  22. Brieuc says:

    Thank You.

    Another problem in this results : http://ergast.com/api/f1/1960/1/results

    On the third position we should have: “Maurice Trintignant” and “Stirling Moss”.

    But “Stirling Moss” is missing.


  23. Admin says:

    Thanks Brieuc. It’s been corrected.

  24. Brieuc says:

    Hello !

    In this results : http://ergast.com/api/f1/1961/5/results

    Two drivers has been disqualified : Stirling Moss and Jack Fairman.

    But Jack Fairman is missing and Stirling Moss has two disqualifications.


  25. Admin says:

    Thanks Brieuc. This has been corrected.

  26. Pablo says:

    There is no data for position in today’s 2014 Belgian Grand Prix http://ergast.com/api/f1/current/last/laps.

  27. Admin says:

    Hi Pablo,
    Thanks. I had noticed. The Lap Chart on which this is based is not currently available.
    UPDATE: This issue has now been fixed.

  28. emkael says:


    First of all – thanks for an excellent job!

    Now, for bug report.
    While extracting data for shared drives (by grouping results table by raceId and number), I’ve noticed some incorrect car numbers in the database:

    – first part of 1997 season (from Australia, raceId=207 to Spain, raceId=212) has the entry for Jarno Trulli with #14 (already present for Olivier Panis); Trulli was driving #21 car (races from 213 are OK and in raceId=211 Trulli didn’t take part)

    – 1994 Japanese GP (raceId=271): Herbert and Letho are both listed under #6, Letho was #29

    – 1994 Australian GP (raceId=272): Herbert is listed under #12 (should be: #6), Letho under #6 (should be: #29)

    – 1993 British GP (raceId=281): Brundle and Boutsen both have #25; Boutsen’s should be #15

    – 1990 British GP (raceId=328): Gachot and Giacomelli have #31 (Giacomelli failed to pre-qualify in #39)

    – 1985 Italian GP (raceId=431): Kevin Acheson should be #10

    – 1972 Canadian GP (raceId=630): Wilson Fittipaldi should be #9

    – 1970 German GP (raceId=650): Jackie Oliver should be #18

    – 1970 Austrian GP (raceId=651): Peter Gethin should be #23

    – in 1969, Graham Hill raced with #1, he’s listed with #2 (raceId=656 to raceId=665)

    – 1967 Belgian GP (raceId=682): Pedro Rodriguez should be #30

    – 1966 British GP (raceId=693): Jack Brabham should be #5

    – 1958 Moroccan GP (raceId=775): Stirling Moss should be #8

    – 1956 Argentine GP (raceId=784): Gerino Gerini shared the #10 drive with Chico Landi

    – 1956 Italian GP (raceId=791): Eugenio Castelotti shared the #22 drive with Fangio (listed mistakenly as #822)

    – 1955 Argentine GP (raceId=792): #16 entry for Stirling Moss (retired because of fuel system) should be #6; #14 entry for Karl Kling (Accident) should be #4

    – 1955 British GP (raceId=797): Peter Collins should be #42

    – 1954 British GP (raceId=803): Onofre Marimon should be #33

  29. emkael says:

    There are some inconstencies in the “nationality” field of drivers table: Belgium/Belgian, Argentine/Argentinian.
    “American/Italian” double-nationality is separated with a slash, yet “Argentine-Italian” with a dash.
    Also, Paul di Resta is the only driver of “Scottish” nationality – all other Scottish drivers are listed as “British”.

    (I’m guessing normalization of that field as some sort of dictionary is out of the question due to backwards-compatibility issues?)

  30. Admin says:

    Hi emkael,

    Thanks for the errata! All these driver numbers and nationalities have now been fixed.


  31. Brieuc says:

    Hi !

    In addition to the @Arno previous comments:

    The qualifying of the first 1994 race contains the “bmw_sauber” constructor:


    And results of the same race have the “sauber” constructor:



  32. Admin says:

    Thanks Brieuc – now corrected over several seasons.

  33. emkael says:


    Two American Indianapolis 500 drivers from 1950, 1951 and 1960 – Lloyd Ruby (ruby) and Walt Brown (walt_brown) are labeled as British.


  34. Brieuc says:


    Thanks for your fixes.

    There is another problem in the 1994 season.

    In this race grid, the constructor is “Arrows”:


    And in this race result (same driver), the constructor is “Footwork”:



  35. Brieuc says:

    Me again,

    there is the same mistake here:

    In this race grid, the construcotr is “team_lotus”:


    And in this race result (same driver), the constructor is “lotus_racing”:



  36. Admin says:

    Thanks Brieuc and emkael – all now corrected.


  37. emkael says:


    In the result list of the 2013 British GP, Perez is listed as a retirement (non-classified finish). In fact, since he finished 46 race laps, he was above the 90% rule for that race as should be listed as classified, 20th.

    Both F1 official website and FIA official website list him as such:


  38. emkael says:

    I’ve run some integrity checks on the data and found missing (zeroed) foreign keys:

    – should be 7 for constructorResultsId 14128 (Toyota, Spain 2005)
    – should be 3 for constructorResultsId 14845 (Williams, China 2014)

    – should be 7 for constructorStandingsId 24518 (Toyota, Spain 2005)

    – should be 42 for qualifyId 4019 and 4038 (Baumgartner, Hungary-Italy 2003)
    – should be 48 for qualifyId 4025 (Gene, Italy 2003)

    – should be 17 for qualifyId 4019 and 4038 (Jordan, Hungary-Italy 2003)
    – should be 3 for qualifyId 4025, 4600 and 4602 (Williams, Italy 2003 and China 2011)
    – should be 164 for qualifyId 3420 and 3421 (HRT, China 2010)

  39. Admin says:

    Thanks emkael! All now corrected.

  40. brieuc says:


    When will the 2015 races times be available ?


  41. Admin says:

    Hi Brieuc,

    Thanks for the reminder. Times have been added (except for the provisional German Grand Prix)

  42. Rey says:


    I was using circuits table to graph a world map with all races locations and it seems latitude for circuitID 46 “Dijon-Prenois” is wrong. Based on wikipedia and googleMaps should be @47.362461,4.89913.

    Thanks a lot for your hard work in this database. keep it up.

  43. emkael says:

    While we’re at it, some other circuits that have slightly inaccurate locations:

    Autodromo Hermanos Rodriguez should be at 19.40421, -99.090714
    Long Beach street circuit: 33.765101, -118.189066
    Caesar’s Palace: 36.116168, -115.174499
    Le Mans Bugatti circuit: 47.9500161, 0.2242312
    Buddh International Circuit: 28.3486799, 77.5331232

    There’s also lack of “USA”/”United States” uniformity in the data.

    As usual, thanks for your work.

  44. Admin says:

    Thanks Rey, thanks Emkael – all now corrected.

  45. DanK says:

    I’ve spotted a fault with a piece of data.
    In the 2000 Australian Grand Prix two drivers share a grid position


    Ricardo Zonta and Nick Heidfeld both show as qualifying 16th.
    I believe Nick Heidfeld should show as qualifying 15th.

  46. emkael says:


    Jo Gartner’s (driverId = 189) date of birth is incorrect in the drivers table (it’s the date of his death). I should be 1954-01-24 instead.

    And some minor things: Ray Reed’s (driverId 415) date of birth is 0000-00-00. Maybe it should be NULLed instead?
    On a similar note, there are some ‘0’ values in the position column of results table, where the usual value for retirement is NULL.


    PS How often do you update the full DB dump (.sql.gz)?

  47. Ariel says:


    When are you going to release the driver’s list for 2015 season?

    Thanks for your fantastic work,

  48. Admin says:

    Hi Ariel,

    All the announced drivers are in the database. However, a driver list for this season is only available after the first race, due to the design of the API. This makes sense in some ways because you can never be sure which drivers and constructors will actually turn up (remember US F1?)

  49. Admin says:

    Hi Emkael,

    Thanks – Gartner now corrected. I usually publish updates immediately after each race.

  50. Ariel says:

    Thanks for your response.

    Your right, it’s true. I’m not using the DB, just JSON calls. May be in another version of my app i will download the DB, but by now im just using your API.

    Once again, thanks for your work.

Add a Comment: