Each activity has two entries--since Jan 5th 🤦

:link: My profile link : wilberfan - CityStrides

Just noticed I have two entries for each activity since early January, 2025. In cases where streets were completed, one entry will generally show the completed streets, the 2nd will have NO completed streets.

For example, here are the two entries for Jan 5th:

I don’t recall changing anything in terms of trackers, etc, at the time. (I use my Garmin watch to track the activity, but I also sync to Runkeeper. I’ve turned off the latter this. morning to see if that makes a difference.)

In addition to figuring out how to ā€˜fix’ the double entries, will I have to manually delete each duplicate activity (the one with no ā€˜progress’ logged)?

I just did a short test walk after having turned off Citystrides syncing to both Garmin and Runkeeper–the latter of which was syncing from Garmin, too–if that makes sense. I’ve only got one entry as a result. Maybe that was the issue?

Can I safely go back and manually delete duplicate non-productive entries?

When you look at those two activities in CS, you can see that the first comes from MapMyFitness, the second from RunKeeper

Exactly how do you track your activity? Explain any/all services, devices, apps that you use and the workflow/process you go through. The underlying point I’m trying to figure out here is whether you e.g. start tracking on your Garmin watch and then a moment later start tracking in an app.

The system finds duplicates based on the exact same start time. This should be the case for activities where you e.g. track in Garmin, which they send off to Runkeeper, when then gets pulled into CityStrides … the start time would be set by Garmin and not recreated by Runkeeper.

I notice the two activities you linked have very different times - 12:15 & 8:15 - so I’m wondering if there’s something going on with these Runkeeper timestamps…


The first activity to come through and get processed is the one that progresses/completes the streets. The second activity that comes through doesn’t get any stats because it hasn’t made any progress (that first activity did all the work). Think about this in the span of days - run a route on Monday and then run the exact same route on Wednesday - the Monday run will be the one that did the work & the Wednesday run was for funsies because it’s ok for us to run the same route more than once :smiley:

You could go back and delete the duplicates or :person_shrugging: leave 'em they’re not harming anyone. Either way.


Edit: CityStrides has lost access to your MapMyFitness account, so I can’t look into the two example activities. You’d have to log out of CityStrides, and log back in via MapMyFitness to renew that connection. If you’re no longer sending activities to MapMyFitness, then that’s not something you need to do.
For the Garmin/Runkeeper pairs, it’s looking like it’s the Runkeeper syncing code that should have spotted these duplicates. Your April 3 activity came in from Garmin first and then from Runkeeper several hours later.


Edit: There’s also some interesting timing here, because I released an updated version of how the various syncs check for existing activities in CityStrides. Which. :thinking: I’m noticing my updated code for Runkeeper syncing seems to be missing dupes. :person_facepalming:
This doesn’t fit your experience, since you’re noticing the issue from January and my update didn’t go out until like yesterday or something. Either way, after the next release (I’ll update here when it’s out) I would be interested in seeing if the duplication issue is fixed.
Edit: OK, that date check fix is out now :sweat_smile: … if you un-paused Runkeeper syncing, I would expect no new duplicates to sync in.
I’d only advise doing this if you’d like to help me debug the situation. If you just want to get back to your life, you definitely don’t need to keep multiple services live. I’d recommend just leaving the one main service live and pausing the others.

Yeah, my tracking happens ONLY via my Garmin Epix Pro–using either of the Walk, Hike, or Run apps on the watch itself.

There are no other apps involved when actually live-tracking the activity as it happens.

Runkeeper grabs the data from the completed activity from Garmin–as does Citystrides, of course.

The duplicated entries likely was because I had both Garmin AND Runkeeper set to Sync to Citystrides. (Did I maybe accidently delete an activity on Garmin and want to ā€˜recover’ it from the Runkeeper site back in January? And then maybe forget to pause the sync on the Runkeeper? Can’t remember now… ).

I just completed an 8-mi CicLAvia, and having paused the Runkeeper Sync this morning, I now correctly see just the one entry from the Garmin data.

Glad the dup entries don’t ā€˜hurt’ anything–except my slight OCDishness… Guess I’ll go thru and manually delete the ones I don’t need. :smiling_face_with_sunglasses:

Let me know if you need any further clarification… :+1:

[edit] I notice that it isn’t always the ā€œfirstā€ entry that has the progress data. I’ll need to be careful when deleting duplicates. Maybe I’ll hold off for now in case you’d like to poke around in some of the data…

Thanks for the extra details around how you track your activities.

There’s code in place that’s supposed to block duplicate activities based on the exact same start time. When the activity was saved from Garmin, that should have blocked any future activity syncing in for that exact same timestamp & that activity from Runkeeper should have been skipped.

Yeah, with Runkeeper paused it will definitely skip all activities from Runkeeper.
Additionally, with my reworked code, they should also be skipped even if Runkeeper not paused.

It’s definitely odd to hear that an activity made it into CityStrides via Runkeeper before Garmin, because there is no live announcement from Runkeeper.
You can definitely pick either activity to delete, that’s totally safe. When the activity is deleted, data is reprocessed - so that other activity should get updated with any of that progress.

Additionally, with my reworked code, they should also be skipped even if Runkeeper not paused.

So I can turn Runkeeper Sync back on (although I can’t think of a reason to at this point…) and it shouldn’t generate a 2nd activity entry.

It’s possible I actually left the house for one activity without having my watch on. That’s beginning to sound familiar/plausible. I would have likely used Runkeeper on my phone so as to not miss having the activity recorded… :person_facepalming:

[edit] Oof. It goes back farther than early February… Oy.

Yeah. Honestly, the only reason there would be to turn it back on would be to help me debug this issue – to turn it back on, track an activity, and see if it still comes in twice. Aside from that, it’s not worth having two services enabled at the same time.

I can probably collect your activities where there’s multiple at the same time with the same distance, and delete the Runkeeper version. I’m a bit busy right now, so my timeline for that would be ā€œlate this week or sometime next weekā€ :grimacing:

I went back into late December, and was seeing single events again… I’ll snoop around in last year’s data after my nap… Your services might not be needed on this one… We’ll see… :crossed_fingers:

(Don’t leave town.). :smirking_face: