Why does a Garmin activity read right after connecting come back with only a name and no data?
Garmin sends an activity's file and its details separately, and a read made between the two can return a name-only placeholder.
Garmin sends an activity's file and its details separately, and a read made between the two can return a name-only placeholder.
The placeholder has the same metadata.summary_id as the full activity, with:
metadata.namepopulated,metadata.start_timeequal tometadata.end_time,metadata.type108 (Other),no distance, heart rate, calorie or sample data.
When the activity details arrive from Garmin, they are merged into the same summary_id and the full record replaces the placeholder. JSON destinations don't receive the placeholder on its own, so webhook deliveries carry the merged activity.
This mostly shows up when an onboarding flow calls GET /v2/activity in the first seconds after a Garmin connection, while Garmin is still sending the user's history. To avoid it:
read the history a little later rather than in the first seconds after the connection,
upsert on
metadata.summary_id, so a later read or delivery replaces any placeholder you stored.
Field definitions and the activity type list are in the data models reference.
Last updated
Was this helpful?