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

**URL:** <https://forum.intervals.icu/t/repeated-gps-and-sensor-blocks-nearly-double-activity-timelines-and-calculated-work-despite-correct-summary-duration/133320>\
**Category:** Bug Reports\
**Created:** [29 October 2026 08:56 UTC](https://forum.intervals.icu/t/repeated-gps-and-sensor-blocks-nearly-double-activity-timelines-and-calculated-work-despite-correct-summary-duration/133320 "2026-10-29T08:56:03Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![83n\_70](https://forum.intervals.icu/letter_avatar_proxy/v4/letter/8/e9c0ed/32.png) [@83n\_70](https://forum.intervals.icu/u/83n_70)\
**Post date:** [29 October 2026 08:56 UTC](https://forum.intervals.icu/t/repeated-gps-and-sensor-blocks-nearly-double-activity-timelines-and-calculated-work-despite-correct-summary-duration/133320/1 "2026-10-29T08:56:03Z")

</div>

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.
