Garmin died mid-century? Strava rejecting the upload? Drop the file below. Diagnosis is free and instant — and the file never leaves your device.
Devices die mid-activity. When they do, the file on the watch is left half-written: the header still claims the old length, the checksum was never finalized, or the last record was cut off mid-byte. Upload sites like Strava and Garmin Connect see a malformed file and refuse it — even though almost all of your ride is intact inside.
FitFix reads the file byte-by-byte, finds the exact point where the data breaks, removes the damaged tail, rewrites the header with the true length, and recomputes the checksums devices require. For GPX files it strips illegal characters, closes truncated XML, and removes impossible coordinates. You see the full diagnosis before paying anything.
This entire tool runs inside your browser. When you drop a file here, it is opened and repaired by JavaScript executing on your computer. There is no upload. There is no server that receives your file. We don't have a database, and we couldn't store your activity even if we wanted to — the architecture has nowhere to put it.
You don't have to take our word for that. Three ways to verify it yourself:
The one thing that does leave your browser is payment, which is handled entirely by Stripe on Stripe's own pages. We never see your card number. The receipt code Stripe gives you contains no personal information.
What can be recovered? Truncated files (battery death, crash mid-save), files with broken checksums, headers reporting the wrong size, GPX files cut off mid-write or containing junk bytes. If the diagnosis finds recoverable data, the repair will work — that's why diagnosis is free and shown first.
What can't? Files where the storage itself returned garbage from the first byte. If we can't fix it, the diagnosis says so plainly and you pay nothing.
Will Strava / Garmin Connect accept the repaired file? The repaired file is rebuilt to the FIT specification: correct header, correct length, valid CRC. That is exactly what upload validators check.
Why $4.99? Because re-riding a century is more expensive.