[Update – March 15th, Strava has reversed course and re-enabled Apple Health sync. Full details here.]
It’s been a few years since Strava has managed to irk the Internet, but over the last few days, they’ve unleashed a torrent of upset Apple users. If you’re an Android user, then this post probably won’t mean much to you. Instead, you can go look at old travel posts here for entertainment. But for Apple users who have (for years) used Strava’s ability to take 3rd party workouts (e.g. Zwift, Garmin, TrainerRoad, etc…) synced to Strava, and insert them into Apple Health – that capability was abruptly killed off late last week. And with that, killing off many people’s ability to ‘complete their rings’ on Apple Health, especially Apple Watch users that primarily used other devices for sport/fitness for their workouts. This has also broken health insurance fitness points programs that utilize Apple Health as a repository for data, by which users often use Strava to populate that data.
Note that this does not impact those that record a workout directly within the Strava app, or from their Apple Watch itself. Those remain functional and update Apple Health. Further, Strava’s change was made by a backend server toggle, as such, it wasn’t tied to any specific Strava app update on your phone. So it impacted everyone, instantly.
But this change broke more than just ring-counting diehards, but also many other 3rd party apps that leverage Apple Health as a repository and exchange point for health/fitness data (which, was kinda the goal of Apple Health).
To back up slightly, and explain what people are upset about, you need to start with the realization and premise that Strava stopped being about ‘Segments’ years ago. Sure, those are important to a group of people (as are other features like routes and analysis). But for the vast majority of people (including myself), Strava actually represents two things at its core these days:
A) Social sharing platform for fitness people/activities
B) The singular platform that *every* health/fitness company integrates with
There’s not a single sport/fitness device I’m aware of that doesn’t integrate with Strava. Thus, it’s become the defacto interchange for sport/fitness data over the last few years. And while Strava undoubtedly touts that often, I don’t think they’ve fully grasped the downstream ramifications of that. Either in policy or technically. Sure, they have a 3rd party API that’s used by “tens of thousands” of developers, but that API has rate-throttling limits that make it challenging (and outright impossible) for many developers to grow. Strava often seems to treat their incredible adoption achievement with an air of disdain for the undercurrent of the very data sources and platforms that have made it successful.
And Thursday’s move is a good example of that. Without warning, they broke a lot of people. My inbox (of all types) has been flooded with messages. As have numerous Reddit threads, and Zwift forums, as well as threads across countless partner app/device company’s own websites/forums.
So let’s talk about what broke, by first explaining the simple path that some people use Strava for these days. Like many people on Strava, they’re actually recording their workout on another device (e.g. Garmin, Polar, Wahoo, COROS, etc…). So the workflow is as follows:
1) Record on a Garmin/Zwift/etc, syncs workout to Strava
2) Strava then pushes a copy of that workout to Apple Health
3) Other apps can use Apple Health data, including Apple’s own daily activity ‘Rings’
In the case of Thursday, Strava decided without notice to simply kill off ‘Step 2’ above. This meant that immediately, people’s workouts weren’t getting pushed to Apple Health. And because Strava has 100 million users, even just 1% of people impacted is a million people.
But it’s more than just rings. There are actually a lot of other apps/platforms that depend on data in Apple Health (or utilize it). For example, I recently published how Whoop has started leveraging it to improve accuracy, and other platforms that do training load use it too, as a means of tracking workout status. Further, in my specific case, I use this functionality in cases where a platform (like Casio or Samsung) doesn’t allow proper export of workout files (but they do correctly update Strava).
When Strava broke this, they simply updated a support page indicating that people should use their devices/app own direct connection:
But that gets to a clear lack of understanding on Strava’s part about how this technology actually works. See, the reason people aren’t using those direct connections is because they suck. See, let’s take Garmin. In their case, sure, they push an activity/workout to Apple Health. But they don’t do it properly. Instead, they nullify all the workout heart rate data and don’t correctly write ‘Active Calories’, which means users don’t get credit for rings or some health insurance programs. Yes, this is dumb of Garmin (and at one point Garmin actually did send full HR data, at least a year ago, as I’ve got screenshots showing heart rate data from January 2021). But these inconsistencies are also kinda par for the course for many companies. Wahoo, and Suunto? They actually do it correctly. Woot!
And then you get apps like Zwift, which Strava again said “just enable the direct connection from Zwift”. Except again, that shows a lack of technical understanding of how this works. Yes, you can have Zwift push your workout to Apple Health – but *ONLY* if you actually execute the workout on your iPhone. No, not an iPad, or Apple TV, or PC, or anything else – as it won’t push both calories and heart rate (which are needed). It needs to be on your specific iPhone. That’s because Apple Health (and thus Health Kit), *ONLY* exists on an iPhone, and is only on your iPhone. Sure, there are people that Zwift with their iPhones, but I’m guessing most of them are doing it in a pinch. The companion app doesn’t count here. Which again, Zwift should fix and have the companion app properly push it to our phones, as they removed that feature for non-grandfathered users a few months ago – and even then that still required Apple Watch usage during Zwift.
And ultimately, I could do this for almost every app in Strava’s list. Over and over and over again. But the internet and Twitter has already done that for me.
So, why does Strava say they did it? I asked, and after some back and forth, here’s their official statement on it:
“This update prevents duplicates of your activities being sent to your Strava account from both Garmin and HealthKit. Now, all of your friends can give you kudos on your single activity upload without being split between two duplicate uploads.
Because your Garmin writes directly to Apple HealthKit (just like it syncs your activities to Strava), the best way to get your data into HealthKit is straight from your Garmin.”
So from their perspective, they were trying to reduce people getting duplicate activities. This would occur when someone toggled the enablement in Strava, not realizing the implications. Or, perhaps they enabled this option in Strava years ago, and then also got around to more recently also-enabling it in a 3rd party app, not understanding why duplicates occurred. And yes, I agree, that’s definitely a valid problem for some users.
But Strava has made it a “throw out the baby with the bathwater” problem. The company has taken their pre-2020 stance that says “Nah, we won’t do any actual development or UI work to fix this”. That’s the same “it’s hard” stance they took when they killed off sensor support 2.5 years ago.
The thing – it’s just not that hard.
When a user toggles that option in Strava, in a matter of a trivial lookup in Apple Health, Strava can see if popular apps like Garmin Connect, Zwift, and others, are writing to Apple Health. It’s a simple HealthKit enumeration call. They can even see if there are recent workout data from those data sources. At which point they could pop-up a message that says “Yo, you might be about to create duplicates, are you sure?”.
And that’s it. They’re done. That’s all they had to do.
And if they wanted to spend more than three seconds on the effort, they could even use some of that developer magic to go a step further and proactively look in Apple Health prior to writing activity each time for duplicates of the exact same time/duration/source (since they know that too). After all, they already have de-dup logic on Strava’s platform. They know how to de-dup if that’s a concern. Will it fix every single instance of de-dup? Of course not. But will it address the vast majority? Absolutely.
Undoubtedly, Strava feels this isn’t their problem. In their answer, they see the solution as every other company fixing their integration with Apple Health. And sure, that’s a valid technical stance to take. But it’s not a valid consumer stance to take. First off, what company breaks a feature that’s been around for years with 0 minutes’ notice? And second, Strava’s solution is for you to spend less time with their platform.
I mean, that’s literally what they’re saying. The only response/solution is for you to set up sync to Apple Health that negates the need for Strava in the middle. I can’t imagine any company saying “Look, how about you don’t use our services?”. Instead, people are going to other 3rd party platforms like RunGap for sync, or to direct Apple Health analytics/sync apps like HealthFit. But this simply gives those entrenched in the Apple rings system fewer reasons to utilize Strava. It’s not likely anyone’s final straw, but it’s unnecessary straws.
And maybe Strava has done the business napkin math here. Though, I kinda doubt it. My conversations with them seem to clearly imply they don’t understand the technical ramifications of why their workarounds don’t actually work. Never mind that’s not a consumer-friendly practice anyways. And given Strava’s stated goal/shift over the last two years of being “for the athlete”, this move certainly doesn’t support that. And while the company has made tremendous strides over that time period in adding new features, it’s thoughtless changes like this that burn those bridges down.
Hopefully, Strava reverses course here. They demonstrated that disabling this feature was a simple backend toggle (and not an app update). So enabling it is equally a simple backend toggle. And then they could take proper next steps for a different de-duplicate solution if that’s truly causing them the support hardship they imply. Otherwise, Strava has simply taken their own internal problem and made it their customers’ problem. And that’s never a good business plan.
With that, thanks for reading.