
The Problem: Waypoints That Quietly Disappear
A PitStopper user, Jon, told us about a frustrating experience. He had used PitStopper to plan a route, carefully marking various POIs just off the road. He exported the file, imported it into Garmin Connect to push to his bike computer - and some of those points were simply gone.
This is not a PitStopper bug, and it is not a Garmin bug either. It is an undocumented quirk in how Garmin Connect handles route waypoints, and once you know about it, it explains a lot of "where did my POI go?" mysteries.
The short version: Garmin Connect discards any waypoint that sits more than roughly 40 metres from the track line. The ones that survive get snapped onto the track, moving them away from where you actually placed them.
For a tool like PitStopper, where the whole point is marking useful things near your route, that is a real problem. A cafe is rarely sitting in the middle of the road.
Jon Found the Cause
This is where Jon deserves the credit. He did not just report the symptom and leave us to guess - he did his own testing and worked out what was going on. He came back to us with a clear conclusion: Garmin appeared to be discarding any waypoint more than about 40 metres from the track. That is the hard part of any bug report - turning "my points disappeared" into "here is the rule that explains it."
We Pinned It Down
With Jon's 40-metre lead in hand, we ran a controlled experiment to confirm the exact cut-off. We built a GPX file with eleven waypoints along a straight section of track, placed at known perpendicular distances from the line: 30m, 32m, 34m, 36m, 38m, 40m, and so on up to 50m. We named each waypoint after its exact distance (WPT_30m, WPT_32m...) so it would be obvious which ones survived the trip into Garmin Connect.
Here is that test file in PitStopper. All eleven waypoints are present, fanned out from the track:

We then imported the same file into Garmin Connect and opened the map. Instead of eleven points, there was just one marker - and it had been moved directly onto the track:

The map only renders the markers that overlap at that spot, so to see the full picture we opened the Course Points list - and that is where the exact threshold revealed itself:

The list tells the whole story. The surviving course points are exactly:
- WPT_30m
- WPT_32m
- WPT_34m
- WPT_36m
- WPT_38m
Everything from WPT_40m upwards was thrown away. The five that remained were all relocated to the same point on the track (0.56 km along the route). So Garmin's cut-off sits right around 38-40 metres: keep what is close, snap it to the line, and silently delete the rest.
Jon's hunch was spot on. His 40-metre figure pointed us straight at the problem, and our test pinned it down to that 38-40 metre band.
Then We Went Finer
Knowing the cut-off lived somewhere between 38m and 40m, we ran one more round of tests to find the exact edge. This time we built a GPX file with waypoints spaced just 0.02 metres apart, stepping across the suspect zone from 38.8m all the way to 39.9m, each one named after its precise distance:
<?xml version="1.0" encoding="UTF-8"?>
<gpx version="1.1" creator="PitStopper.net" xmlns="http://www.topografix.com/GPX/1/1">
<trk>
<name>Garmin Connect Waypoint Threshold Fine Test</name>
<trkseg>
<trkpt lat="51.445000" lon="-1.000000"/>
<trkpt lat="51.455000" lon="-1.000000"/>
</trkseg>
</trk>
<wpt lat="51.450000" lon="-0.99942569"><name>39.80m</name></wpt>
<wpt lat="51.450000" lon="-0.99942540"><name>39.82m</name></wpt>
<wpt lat="51.450000" lon="-0.99942511"><name>39.84m</name></wpt>
<wpt lat="51.450000" lon="-0.99942482"><name>39.86m</name></wpt>
<wpt lat="51.450000" lon="-0.99942453"><name>39.88m</name></wpt>
<wpt lat="51.450000" lon="-0.99942424"><name>39.90m</name></wpt>
<wpt lat="51.450000" lon="-0.99942395"><name>39.92m</name></wpt>
<wpt lat="51.450000" lon="-0.99942366"><name>39.94m</name></wpt>
<wpt lat="51.450000" lon="-0.99942337"><name>39.96m</name></wpt>
<wpt lat="51.450000" lon="-0.99942308"><name>39.98m</name></wpt>
</gpx>
The result was remarkably crisp: Garmin Connect kept every waypoint up to 39.67 metres and discarded everything beyond it. So the real cut-off is not a vague "about 40m" - on our tests it sat right on 39.67m.
That said, we would not treat 39.67m as gospel. It is the figure we measured, but the exact number can vary in practice between devices, firmware versions and how Garmin rounds its distance maths. It is best read as "just under 40 metres," not a precise universal constant.
With the rule confirmed, building a fix was straightforward.
Our Fix: A Warning Before You Lose Anything
Armed with Jon's findings, we got to work. We did not want to move your waypoints behind your back - those positions are yours, carefully chosen. So instead, PitStopper now checks every waypoint when you export a GPX or FIT file, and warns you about any that Garmin is likely to drop.
If any waypoints sit further than the threshold (35m by default) from your track, you will see a warning listing each one and how far off the track it is. You then choose what happens:
- Move them onto the track - PitStopper snaps each distant waypoint to the nearest point on the route, so Garmin keeps every one. This is non-destructive: it only changes the exported file, never your saved project.
- Export anyway - leave the waypoints exactly where they are, accepting that Garmin may discard the far ones. Useful if you are exporting for a tool that does not have this limitation.
If you choose to move them, you can also add a "^" prefix to the moved waypoints' names. That gives you a clear visual flag on the device that the marker was nudged onto the road and the real thing (a cafe, a viewpoint, a water tap) is a little way off to one side.
Because the check runs on the actual export, it works the same whether you are sending a GPX or a Garmin FIT course to your device.
Seeing It in Action
Here is the warning on our test file. The six waypoints from 40m to 50m - exactly the ones Garmin would have deleted - are listed with their distances, ready to be moved onto the track:

We chose "Move them onto the track" with the "^" prefix, exported, and re-imported into Garmin Connect. This time every waypoint made it across. The Course Points list now shows the full set, with the moved ones flagged by their "^" prefix (^WPT_42m, ^WPT_44m, ^WPT_46m and so on):

You will notice the map still shows just a single marker. That is not a bug - it is a quirk of our test file. We deliberately placed all of the test waypoints perpendicular to the same point on the course, so once they are snapped onto the track they land on top of one another at the same spot (0.56 km along the route). On a real route, your cafe, water tap and resupply points are spread along the way, so they appear as separate markers exactly where you would expect.
Tune the Threshold to Your Device
Garmin's cut-off landed at around 39.67m in our tests, and we default the warning to 35m to leave a comfortable safety margin below it. But different devices and platforms behave slightly differently, so the threshold is configurable in Settings. If you find your particular head unit is fussier or more forgiving, set the distance that works for you and PitStopper will warn accordingly.
The Takeaway
If you have ever planned a thoughtful route, sent it to your Garmin, and arrived at a junction expecting a prompt that never came - this is very likely why. Waypoints near the track survive; waypoints a field away vanish.
PitStopper now catches that before it costs you a stop. Plan your POIs wherever they really are, and let the export step make sure they actually reach your bike computer.
Happy riding, and may your cafe stops always make it onto the screen.
A big thank you to Jon for figuring out this problem for us!


