A workout shown twice in Fitness or another app is a reason to investigate, not proof of two HealthKit workouts. Open the Health app and go to Search → Activity → Workouts → Show All Data. Compare the visible records by start time, duration, activity type, and source.
Treat the case as a confirmed duplicate only when two separate workouts appear there. Find the extra write, export, or import path, use the contents to decide which record to keep, and delete only the record you have identified.
Four states that can look like a duplicate
The right fix depends on where the doubling begins. Compare the records you can see instead of inferring two HealthKit objects from two app cards.
One workout, several displays
- What you see
- Fitness and another app both show the activity.
- What to check
- Open the workout data in Health and see whether it contains one record or two.
- What to do next
- If Health contains one record, delete nothing. Several apps may read the same workout.
Two stored workout records
- What you see
- Show All Data contains two workouts with nearly matching start times and durations.
- What to check
- Compare the source, activity type, start, duration, and other details for both.
- What to do next
- Stop the extra write path, then delete only the record you identified as the duplicate.
A workout plus overlapping samples
- What you see
- There is one workout, but energy, steps, or heart rate look doubled.
- What to check
- Open the specific category and inspect its data sources.
- What to do next
- Treat each category separately; the workout list is not enough.
A duplicate only in the destination app
- What you see
- Health shows one record, while the destination app shows two.
- What to check
- Inspect that app's import history, cache, and documented refresh path.
- What to do next
- Do not change Health data unless Health also contains two records.
Compare two records across five fields
These fields help you match two visible workouts. No single field proves which record is original or correct.
Write down each value once for Workout A and once for Workout B.
- Source Shows which app or device supplied the record. Different sources point to two possible write paths, but do not prove the cause on their own.
- Activity type Different labels can indicate an import or conversion.
- Start time Nearly matching start times help link both records to the same real session.
- Duration Similar or slightly different values support the comparison but do not confirm a duplicate.
- Distance, energy, or route The details help you decide which record to keep. The more detailed record is not automatically the original or correct one.
One writer, many readers
One write path is easier to audit for a real session. Other apps can read the existing record without sending it back to Apple Health.
-
Choose the recording source
Decide which watch or app records the workout and writes it to Apple Health.
-
Check each transfer
Look for separate controls for import, automatic upload, export, or “Send to Health” in connected apps.
-
Keep useful read access
Read access can stay on when an app only needs to display or analyze the existing workout.
-
Turn off repeat sending
Disable the extra path that sends the same session to Apple Health again.
How to fix a confirmed duplicate
Use this order so every change remains traceable and the data tells you which record to keep.
-
Capture both records
Record the source, start time, duration, and useful details. If needed, take a screenshot without unrelated health or account data.
-
Find the extra write path
Open the settings of the apps involved. Look for the path that writes workouts to Apple Health, not only a general connection switch.
-
Turn off one write path
Keep the chosen recording source writing. On the second service, disable only the extra export or repeated send when the app separates those controls.
-
Observe the next normal workout
After the next session you already planned to record, check that only one new workout appears. Do not create several throwaway workouts.
-
Delete the identified record
Remove the assigned duplicate through the Fitness path below. Then confirm that the workout you wanted to keep and its details remain.
Delete the identified record in Fitness
Delete only after you have identified the source and contents of both records and checked the extra data path. In the current iOS version:
- Open the Fitness app on your iPhone.
- Tap Summary, then Sessions.
- Swipe left on the selected workout.
- Tap Delete.
- Delete Workout Only
- This option removes the workout only. Whether it fits your case depends on which data was duplicated.
- Delete Workout & Data
- This option also removes the related health data. Choose it only when you have linked those data to the identified duplicate.
Before you delete
- Do not delete a record while the source and contents of both workouts are unclear.
- Do not use Delete All in the Health app.
- If your Health data syncs through iCloud, deleting data on one device also removes it from the other synced devices on the same Apple Account.
- Menu names and available actions can change between iOS versions.
Apple User Guide: delete a workout in Fitness, Apple Support: manage Health data, apps, and sources
What source priority does, and what it does not do
Apple Health prioritizes similar data from different sources. That order is category-specific: one source may matter for steps, another for heart rate or active energy.
Apple does not document source priority as a way to delete or merge existing workout entries. Do not use it instead of finding the second writer. A lower-priority entry can still remain a separate workout record.
Apple Support: manage Health data, apps, and sources, Apple Developer: HKWorkout, Apple Developer: unique identifier for a HealthKit object, Apple Developer: source and version of a HealthKit sample
If the duplicate comes back
A returning record means you should check export, import, cache, and refresh behavior. It does not prove which path caused the record.
A duplicate appears after every workout
- Next check
- Automatic export from both recording sources, import rules, and repeated sending from a connected service
- What it does not prove
- That Apple Health created the duplicate itself
The duplicate appears only after opening one app
- Next check
- That app's manual import, cache, refresh, or delayed export
- What it does not prove
- That the first visible source caused it
Only one destination app shows two entries
- Next check
- Its import history, cache, account links, and duplicate rules
- What it does not prove
- That two HealthKit workouts exist
Workouts are unique, but energy or steps look doubled
- Next check
- Data Sources & Access for that exact category
- What it does not prove
- That the workout object is duplicated
Deleting the duplicate also removes the original
- Next check
- The source app, iCloud Health sync, and current deletion rules
- What it does not prove
- That recovery is always possible
What to include in a useful support request
- iPhone, iOS, and app versions
- activity type, date, start time, and duration of both visible entries
- the displayed source of each entry
- which app recorded the original
- which import, upload, and export controls are enabled
- whether Apple Health itself shows one entry or two
- which action makes the second entry appear
- which write path you already disabled
How SlopeReady handles two workouts
SlopeReady reads workouts from Apple Health after they have been recorded. It does not start or stop workouts, record live GPS or live heart rate, or write data to Apple Health. It therefore cannot create or switch off the duplicate write path.
When SlopeReady reads the same Apple Health workout again, it updates the existing local record. It does not merge two separately stored workouts merely because their start times and durations look similar.
If Apple Health contains two genuine workout entries, two records can therefore reach an analysis. Clean up the source before comparing totals or trends. SlopeReady does not delete, merge, or repair original Apple Health data.
SlopeReady data sheet, SlopeReady support and product boundaries