Apple Health Workout Import Path Irregularity (custom workout)

Since iOS 18 I have noticed that importing completed structured workouts from Apple Health has been odd. Sometimes it gets the entire route, while others it is a mixed bag. I say mixed because I might attempt to load the run once and it shows me a partial segment at which point I back out of importing. Later in the day I revisit the same run and it shows me an entirely different segment along the same workout.

As a workaround I have been using HealthFit to export the run as a .gpx file and import it into Arc. I know iOS 18 brought about changes to structured workouts so perhaps something needs to be done in order to read the entire workout rather than just a segment of the workout.

For transparency, pre iOS 18 I was using another running app (Stryd) for my structured workouts so it probably wrote a more straightforward path to Apple Health. For iOS 18/watchOS 11 I switched over to the Apple Workouts app with structured workouts so it’s possible the issue existed before, but I never encountered it.

Here are some screen shots for reference. The first two are the partial segments I could import directly from health. One was a look in the morning and the other was a look at the same run later in the evening. The third is the complete GPX gathered and imported from HealthFit.



Hm. That’s confusing!

I’m not sure if that’s something to do with iOS 18 or custom workouts or workout segments, or whether it’s… an old Arc bug.

There is an old workouts import bug that I’ve noticed since the early days of the feature, which causes only some of the imported samples to properly appear, if the UI updates too quickly. I’m not sure though whether that bug is permanent or a temporary UI / map display glitch. My experience has been that it’s only the latter - the UI / map updates with only partial information, even though the full correct information has been added to the database/timeline.

So this sounds slightly different - this looks like it’s not temporary.

I haven’t been importing any workouts myself recently. I mostly use that feature for importing my surfing recordings, and I’m not back in Bali until next month. But I’ll do a few experiments now with importing some random walking workouts, to see if I can spot anything different happening. I’m on iOS 18.1, so if there’s an iOS 18 effect I should see it.

If it is the weird temporary glitch that I’ve been seeing for a while, then you can avert it by just waiting a few seconds after tapping the import button, until you see the map update with the correct information. I’ve found that I can trigger that display bug by doing the import then quickly tapping back to timeline view, which causes the map to update with only partial information, and then stays that way until the UI caching eventually clears.

But yeah, this sounds more permanent, so… perhaps something new going on. I’ll see what I can find!

After some testing with the Workouts app I can say an open run where I manually mark segments (not laps) import into Arc via Health without issue.

If a planned workout is completed, Arc will generally only see the final segment, though sometimes it may see a different segment slightly earlier in the run. Whatever it sees from a planned workout is always a complete singular segment.

Hmm. That’s really weird. Ooh, I see there’s a whole new framework for it:

Don’t think I’d ever seen that before. Must’ve skipped over that detail in the WWDC when it came out. Oops.

K, I’ve added a task to the todos for exploring the new API and figuring out where it clashes with the old APIs. My guess is they’re doing something like storing multiple old style HKWorkouts inside a new kind of Composite Workout, and Arc isn’t aware that it needs to match up and associate multiple old style HKWorkouts in the import UI.

If that hunch is right, I suspect it’ll be relatively easy to allow for importing of only one part of a custom workout, ie one of the old style HKWorkouts contained within the custom Composite Workout. Which would probably be quite useful - the ability to only import the portions of a Composite / Custom Workout that you actually care about adding to the timeline.

But will have to see what shakes out once I get to reading the docs properly…