Repeated GPS and sensor blocks nearly double activity timelines and calculated work despite correct summary duration

I am seeing repeated sections within imported cycling activities in Intervals.icu. The summary shows the correct duration and distance, but the timeline contains duplicated blocks of GPS and sensor data, making the activity approximately twice as long.

The corresponding activities display correctly in Apple Fitness/Health and independently in Strava. Direct examination of FIT files exported from Strava and Intervals.icu for the same ride confirms that the repeated route blocks are present in the Intervals.icu export and absent from the Strava export.

I have observed the problem on all of my outdoor rides. The detailed findings below concern one affected activity.

Recording setup and connections

My outdoor and indoor workouts use separate recording setups:

Outdoor cycling Indoor Zwift
Recording device/app Apple Watch Ultra 2, recording an Apple Health workout Zwift running on a computer with a Zwift bike
Power source Quarq spider power meter connected directly to the watch over Bluetooth Zwift bike (Wahoo Kickr Core)
Watch use Records the workout and receives power-meter data Used only as a Bluetooth heart-rate monitor through Zwift Companion
Separate Apple Health workout recording Yes No

I use current public Apple software releases, not beta releases. Exact iOS and watchOS version numbers can be supplied if needed.

My linked workout sources are Apple Health and Zwift. Strava is independent of the affected import setup and is not linked as an import source.

I use the free version of Strava. The Strava FIT examined here contains GPS, elevation, speed, and heart rate, but no power or cadence samples. The direct comparison therefore verifies route and timing, rather than power or cadence.

The affected example is an outdoor Apple Watch recording with Quarq power data. My one Zwift activity does not have this issue.

Visible symptoms

When hovering over the activity timeline with the map open, the GPS marker suddenly jumps backward and follows a previous section of the route again. Power, heart rate, cadence, and elevation patterns also repeat.

For the analyzed activity:

  • The summary duration is 15:16.

  • The expanded timeline displays approximately 30:21.

  • Cumulative distance jumps backward at the start of each replayed section.

  • Apple Fitness/Health and Strava display the ride without these repetitions.

Direct comparison of the two FIT exports

Both files decode successfully and pass CRC validation.

Check Strava export Intervals.icu export
session.total_elapsed_time 916.335 seconds 916 seconds
session.total_timer_time 916.335 seconds 1,819 seconds
Number of record messages 919 1,821
Span between first and last record timestamps 917 seconds 1,820 seconds
Backward jumps in cumulative distance 0 8
Replayed route samples None identified 910 confirmed
Power and cadence samples Absent Present

After excluding the eight identified replayed blocks from the Intervals.icu stream, the remaining GPS points follow the Strava route in the same order. Every remaining point is within approximately 0.4 metres of a corresponding Strava GPS point.

This strongly corroborates the identification of the repeated sections. The two exports are not otherwise identical sample streams.

Duplicated blocks in the Intervals.icu export

The Intervals.icu file contains 1,821 unique record timestamps, increasing by exactly one second throughout.

The duplicated sections have fresh, increasing timestamps. There are no duplicate or backward record timestamps, even though GPS position and cumulative distance jump backward. Filtering by duplicate timestamps would therefore miss the problem.

Eight matching pairs of adjacent chunks were identified:

Original chunk starts Replayed chunk starts Matching samples at 1 Hz
0:00 2:20 140
4:40 5:48 68
6:56 7:25 29
7:54 10:47 173
13:40 16:09 149
18:38 21:14 156
23:50 24:19 29
24:48 27:34 166

All times above are relative to the beginning of the incorrect expanded timeline.

Across these pairs, 910 replayed samples exactly match their earlier counterparts in GPS coordinates, cumulative distance, and elevation. Most corresponding power, heart-rate, and cadence values also match exactly.

Additional inconsistencies include:

  • The first seven replayed chunks report zero speed throughout, despite their GPS positions following the copied route.

  • The final replayed chunk reports a constant speed of approximately 1.86 m/s.

  • Some sensor values differ near missing-data boundaries and at the end of the final replay, so not every field is copied identically.

  • The session timer duration exceeds the session elapsed duration.

Effect on calculated statistics

The Intervals.icu export reports approximately 273.3 kJ of work, matching the sum of power across all one-second records, including the repeated sections.

Keeping only the first copy of each identified chunk gives approximately 134.6 kJ. This is a diagnostic comparison demonstrating roughly doubled energy accounting, not a validated repair or a comparison with Strava power data.

The expanded timeline also makes longer-duration power calculations suspect because it contains substantially more sensor data than the actual ride duration. The effect on other metrics, including training load, has not been established.

How to observe the issue

On an affected activity:

  1. Open the timeline and enable the map.

  2. Hover through the timeline and watch for the GPS marker jumping backward while sensor patterns repeat.

  3. Compare the summary duration with the timeline duration.

  4. Export the activity as FIT and inspect the record stream and session duration fields.

  5. Compare with an independent export of the same ride, where available.

These steps demonstrate the issue in an affected activity. I have not yet isolated a reliable procedure that triggers it in a newly recorded workout outside of it naturally occuring in all non-zwift workouts I have done so far.

Expected behavior

Each recorded section should appear once, preserving the original chronology. Duration, distance, speed, work, and interval calculations should use a consistent sample stream.