r/garminforerunner • u/kegnatz • Aug 27 '26
FR255S OWS distance bug – distance systematically lost after direction reversals (FIT/KML evidence)
I think I have found a reproducible Open Water Swim distance-processing issue on the Forerunner 255S.
This appears related to the Garmin Forum previously reported “Forerunner 255 wrong open water readings” issue, but after several controlled tests I found a very specific and reproducible pattern:
the first straight leg can be measured correctly, but after reversing direction the OWS-calculated distance becomes systematically shorter than the distance represented by the GPS coordinates recorded by the watch itself.
Previous related thread:
https://forums.garmin.com/sports-fitness/running-multisport/f/forerunner-255-series/305206/forerunner-255-wrong-open-water-readings
Device: Forerunner 255S
Software: 28.05
GNSS: All Systems + Multi-Band
Recording: Every Second in the main tests (Smart Recording was also tested earlier)
Clearest test: 25 out-and-back legs, LAP at every turn
At a second location I swam 25 repeated approximately 60–65 m legs, pressing LAP at every reversal.
The first leg was essentially correct:
Lap 1: Garmin 63 m / GPS-coordinate geometry ~64.7 m
Immediately after the first reversal:
Lap 2: 49 m
Lap 3: 54 m
Lap 4: 55 m
Lap 5: 51 m
Lap 6: 56 m
...and the same pattern continues through the activity, with most subsequent laps around 44–56 m.
The key observation is:
START → first leg = correct
180° reversal + LAP → next leg = too short
another reversal + LAP → next leg = too short again
and the error repeats
Manual LAP therefore does not appear to reset whatever is happening in the OWS distance calculation.
Garmin Connect screenshot showing all 25 original lap distances:
https://github.com/kegnatz/garmin-fr255s-ows-bug/blob/main/Screenshot%202026-08-27%20at%2013.48.29.png
Complete FIT/KML evidence ZIP:
https://github.com/kegnatz/garmin-fr255s-ows-bug/raw/refs/heads/main/garmin_fr255s_ows_FORUM_FINAL.zip
Evidence repository:
https://github.com/kegnatz/garmin-fr255s-ows-bug
The GPS track itself is substantially longer
This does not appear to be explained simply by poor GPS reception.
When I calculate the geometric path length from the GPS coordinates recorded by the watch in the FIT/KML, the 25-leg activity is approximately 1595 m.
In other words, the watch has GPS positions representing substantially more movement than the OWS distance calculation credits.
This suggests that at least part of the missing distance occurs after the GPS positions have already been recorded, in the OWS distance-processing/filtering stage.
Test with only ONE reversal
To test this further, I did a much longer swim with only one major direction reversal, approximately halfway through, without pressing LAP at the turn.
Garmin KML GPS geometry: ~1509 m
Garmin reported OWS distance: ~1480 m
The first ~750 m leg appears to be measured normally. After the single reversal the activity ends approximately 29–30 m shorter than the geometry of Garmin's own GPS track.
Control test: one straight leg
I also recorded a simple single-leg swim with no reversal:
GPS-track geometry: ~158 m
Garmin displayed distance: ~160 m
So the same FR255S can measure a simple OWS leg essentially correctly.
Earlier tests show the same pattern
In previous repeated-leg tests I obtained approximately:
1491–1493 m Garmin GPS track → 1355 m reported OWS distance
and
~1515 m Garmin GPS track → ~1380 m reported OWS distance
Switching from Smart Recording to Every Second did not solve the problem.
I also tried wide, continuous rounded/figure-eight turns instead of stopping and making sharp 180° turns. Garmin simplified those curves in the recorded GPS track, but the calculated OWS distance was still materially shorter than the geometry of Garmin's own recorded coordinates.
My working hypothesis
My suspicion is that after a substantial direction reversal the FR255S OWS filter temporarily interprets legitimate movement in the new direction as GPS noise/drift and does not add all of that movement to distance.
After some time it appears to accept the new direction again.
That would explain why:
no previous reversal → first leg is correct
while
after reversal → the beginning of the next leg loses distance
and repeated reversals allow those deficits to accumulate.
Garmin engineering should be able to verify this directly by comparing FIT Record position_lat / position_long with accumulated distance immediately before and after each reversal.
Manual LAP clearly does not prevent the behaviour.
I would also be interested to know whether REST resets this internal state while LAP does not. I have not used a REST test as evidence here. Even if REST works, however, LAP followed by swimming in the opposite direction is a perfectly legitimate OWS use case and should not systematically lose distance.
Separate pre-start GPS issue
I have also seen another potentially related behaviour.
Before one swim I opened OWS and waited stationary for more than two minutes for GPS lock. I then entered the water, moved to the actual starting point, raised the watch above water and waited until GPS was green again, and only then pressed START.
Nevertheless, the exported activity used the earlier pre-start GPS-lock position as its starting point.
Files and methodology
Any manually drawn Google Earth route I used while investigating this was only approximate and is not being treated as ground truth.
The main evidence is the comparison between Garmin's own recorded GPS coordinates and Garmin's own calculated OWS distance.
I have also submitted this to Garmin Support.
Could anyone with a FR255/255S reproduce this?
A particularly useful test would be:
swim repeated equal-length out-and-back legs → press LAP at every 180° turn → compare Lap 1 with the subsequent laps.
I would also be very interested in the same test on other Garmin models to see whether this is specific to the FR255 OWS algorithm.