
Files: GPX, FIT and TCX 4 MIN READ
Repair a FIT file that will not upload
A FIT file gets refused when the watch lost power, the transfer stopped early or the timestamps went wrong. Which tools repair which fault, how to check the file first, and when the original on Strava is the better route.
A FIT file that Garmin Connect or Strava refuses is not usually lost. The format is written as it goes — one record after another — so a watch that died at kilometre 40 still has kilometres 1 to 39 in the file. What is missing is the ending, or the timestamps make no sense, and the uploader gives up. Here is how to find out which, and what fixes it.
First: is it actually broken?
Drop it into the FIT file viewer. It reads the file record by record, in your browser.
- It draws the route with distance and time: the recording is fine up to wherever it ends. The uploader is refusing it for another reason — a duplicate, a bad trailer, a zip it wanted unzipped. .fit.gz files covers the zip case.
- "No GPS points": an indoor session, or a watch that never got a fix. Not a fault. Upload it as an indoor activity.
- "Invalid FIT header" or nothing at all: the file is empty or is not a FIT. Check the size; a zero-byte file is a transfer that never happened.
The faults and the tools
Corrupt time. The watch's clock was wrong, or jumped, and the timestamps run backwards or into next year. Uploaders refuse it. FIT File Tools (fitfiletools.com) has a free *Corrupt Time Fixer* that rewrites the timestamps consistently.
A broken tail. The file stops mid-record because the watch lost power. Some readers stop cleanly at the last good record; the uploaders often do not. FIT File Tools' *Section Remover* can cut the damaged end. If the viewer here draws it, the remaining data is what you will get back.
The wrong device id. Rare; some services refuse a file whose device field they do not recognise. The same site has a *Device Changer*. Use it only for a file you recorded yourself.
Garmin Connect itself does not repair files, and Strava does not either. Neither will tell you which of the above is wrong; the viewer will.
The shortcut most people miss
If the activity reached Strava before the fault — the watch synced, then the file on the device went bad — you do not need the file on the device. Export Original on the activity page returns the file Strava holds, exactly as it was received. Where that is.
Salvage as GPX
A FIT that no uploader accepts and no tool repairs can still be worth something: FIT to GPX reads as far as it can and writes a GPX of the route, elevation and time. Heart rate and power are lost; the ride is not. And for a print, the editor reads the FIT as far as it goes, which for a watch that died on the descent is the climb.
Questions people actually ask
- Why is my FIT file corrupt?
- The usual causes: the watch lost power or crashed before it closed the file, the copy to the computer stopped early, or the clock was wrong so the timestamps jump. The recording up to the fault is usually intact; the file just does not end properly.
- Is there a free FIT file repair tool?
- FIT File Tools at fitfiletools.com is free and has a corrupt-time fixer and a section remover. Garmin's own software does not repair files. Check the file in the free FIT viewer here first; if it draws, the route is intact and the problem is elsewhere.
- My FIT file has no GPS data — is it broken?
- Not necessarily. An indoor session — trainer, treadmill — records time and sensors and no positions, and that is a valid file. The viewer will say it has no GPS points. Upload it as an indoor activity.
- Can I recover a FIT file the watch lost?
- Sometimes. A file that never closed can still be read up to the break by tools that stop at the first bad record rather than refusing the whole file. If the activity synced to Strava before the fault, Export Original gives you the file Strava has.
YOURS, FROM A FILE, IN 90 SECONDS
One effort. One sheet of paper.
Bring the file and every choice is yours: paper, treatment, colour, which numbers come along. Uncoated matte in 250 or 170 gsm, made to order at the facility nearest you, rolled in a tube.
Print it. FROM 319 kr