# Pace targets lost in Garmin export for API-created running workouts — steps arrive on watch as "No Target" (parsed correctly in workout\_doc)

**URL:** <https://forum.intervals.icu/t/pace-targets-lost-in-garmin-export-for-api-created-running-workouts-steps-arrive-on-watch-as-no-target-parsed-correctly-in-workout-doc/130706>\
**Category:** Uncategorized\
**Created:** [17 July 2026 12:06 UTC](https://forum.intervals.icu/t/pace-targets-lost-in-garmin-export-for-api-created-running-workouts-steps-arrive-on-watch-as-no-target-parsed-correctly-in-workout-doc/130706 "2026-07-17T12:06:56Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Razvan\_Zlavog](https://forum.intervals.icu/user_avatar/forum.intervals.icu/razvan_zlavog/32/87107_2.png) [@Razvan\_Zlavog](https://forum.intervals.icu/u/Razvan_Zlavog)\
**Post date:** [17 July 2026 12:06 UTC](https://forum.intervals.icu/t/pace-targets-lost-in-garmin-export-for-api-created-running-workouts-steps-arrive-on-watch-as-no-target-parsed-correctly-in-workout-doc/130706/1 "2026-07-17T12:06:56Z")

</div>

Pace targets on running workout steps are being lost somewhere in the Intervals.icu → Garmin Connect export path. We’ve verified every link we can reach, and the data is correct on the Intervals.icu side — this looks like an export issue, not a syntax issue.

**Setup**

- Workouts created via the API: `POST /api/v1/athlete/0/events/bulk?upsert=true`, `category: WORKOUT`, `type: Run`, description in the plain-text workout format, `external_id` set
- Athlete settings: `garmin_pace_range = 2.5` (default), Garmin Connect linked with “Upload planned workouts” enabled
- Watch: Garmin Forerunner [model 165] — happy to provide exact model/firmware

**Description format used (sample):**

```auto
- 2.5km 5:57-5:23/km Pace

```

`- 1.5km 9:06-8:14/km Pace`

`- 2km 6:13-5:37/km Pace`

**What works (verified via the API):**

Reading the event back, `workout_doc.steps` is parsed perfectly — every step carries a structured pace range:

```auto
{"pace":{"start":357,"end":323,"units":"secs/km"},"distance":2500,"duration":848}

```

21/21 steps have `pace: {start, end}` on the real workout in question.

**What fails:**

The workout reaches Garmin Connect (name + description arrive; the Connect app shows the description). On the watch, the steps arrive with **correct distances** but **every step shows “No Target”** — no pace target, no alerts during the workout.

**What we’ve ruled out:**

- _Syntax_: both single-value (`5:40/km Pace`) and range (`5:45-5:35/km Pace`) formats parse into correct `workout_doc` pace objects; both arrive on the watch as “No Target”
- _Stale Garmin cache_: deleting the events and re-creating them fresh (to force a full re-export rather than an update) changes nothing
- _Connect app display quirk_ (the `[SOLVED]` thread #87358): this is on the **watch itself** , in the step list and during execution, not just the phone UI

**Possibly related:** [#130238](https://github.com/LuftAnalytics/runnersdna-app/issues/130238) (Syncing Pace & HR targets to Garmin), [#130465](https://github.com/LuftAnalytics/runnersdna-app/issues/130465) (pace range shows as note only on Fenix 7), and a Garmin-forum thread reporting that externally-generated running workouts lose pace targets while HR targets survive (garmin forums, thread 438551).

Is the pace target being dropped when building the FIT/push payload for run workouts, or is Garmin’s import discarding it? Happy to run any diagnostic — we can reproduce this on demand via the API and have a race tomorrow that would love its targets back. 🙂

---

<div class="post-metadata">

**Author:** ![Razvan\_Zlavog](https://forum.intervals.icu/user_avatar/forum.intervals.icu/razvan_zlavog/32/87107_2.png) [@Razvan\_Zlavog](https://forum.intervals.icu/u/Razvan_Zlavog)\
**Post date:** [17 July 2026 20:06 UTC](https://forum.intervals.icu/t/pace-targets-lost-in-garmin-export-for-api-created-running-workouts-steps-arrive-on-watch-as-no-target-parsed-correctly-in-workout-doc/130706/2 "2026-07-17T20:06:01Z")

</div>

Solved — and the cause was on our end, not intervals’. The athlete simply had no Run threshold pace set in their sport settings.

With threshold\_pace unset, intervals drops the per-step pace targets from the Garmin export (it falls back to HR), so every step lands as “No Target” on the watch — even though workout\_doc.steps carried correct pace ranges on the intervals side the whole time. HR-target workouts were unaffected because LTHR was set, which is why only pace workouts broke.

Fix: set a Run threshold pace — Settings → sport settings, or via API: PUT /api/v1/athlete/0/sport-settings/{runGroupId} with body { “threshold\_pace”: \<m/s\> }. intervals then auto-populates the pace zones, and after a fresh push the pace targets appear on the watch (confirmed on a Garmin Forerunner).

One gotcha for anyone re-testing: existing events need a delete + recreate to re-trigger the Garmin export — an in-place update alone doesn’t.

Big thanks to R2Tom and MedTechCD — the “Did you setup your Pace zones?” pointer in the related threads was exactly it.
