> For the complete documentation index, see [llms.txt](https://docs.tryterra.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tryterra.co/help-center/help-topics/webhook/payload-content-and-provider-quirks/garmin-two-pass-provisional-final.md).

# Why do I get multiple Garmin sleep sessions for one night, or a sleep payload that looks incomplete?

Two separate things commonly look like a problem with Garmin sleep, but both are expected.

Two separate things commonly look like a problem with Garmin sleep, but both are expected.

**1. Multiple sleep sessions from the same night**

Garmin can send more than one sleep record for a single night, including naps, which are flagged with `metadata.is_nap`. Each record is its own payload with its own `metadata.summary_id`.

Don't add overlapping non-nap sleep records together as separate sleeps. The payload doesn't mark which record is final. Field locations are in the [data models reference](https://docs.tryterra.co/reference/health-and-fitness-api/data-models).

**2. A sleep payload that arrives looking incomplete**

A sleep session can be delivered more than once with the **same `summary_id`**, where a later push fills in fields (durations, efficiency, hypnogram, score) that the first push left empty. Per the [data models reference](https://docs.tryterra.co/reference/health-and-fitness-api/data-models), when a session comes in again with the same `summary_id` you should update the previous entry with the newer data.

A night can look stuck on `null` if:

* Your dedup key includes `end_time` (it can shift between pushes), or
* You treat the first webhook for a `summary_id` as final and drop the later one.

**For re-sends of the same session, key on `summary_id` and let the later payload overwrite the earlier one.** Records with different IDs that overlap in time are covered by section 1. If a session still shows missing fields after the later push, contact support with the `summary_id`.
