When something is wrong
Why your export didn’t run
iOS controls timing; Hozz preserves correctness.
A cadence is a request, not a schedule. iOS decides when Hozz runs. Hozz reports the actual state instead of claiming an on-time delivery.
The three constraints#
Health cannot be read while the phone is locked#
Health may be unreadable while locked. Hozz then shows:
Health data is locked. Unlock this iPhone and Hozz will continue.
Its cursor does not advance, so the next pass retries the same records.
Most Health types are capped at hourly#
Hozz requests .immediate; HealthKit lowers most types to hourly. “When new data arrives” therefore does not mean within seconds.
Force-quitting the app stops background launches#
Swiping Hozz out of the app switcher stops background launches until you reopen it.
What the cadences actually mean#
A cadence sets the shortest gap between deliveries. iOS sets no deadline.
| Cadence | What it means | Floor |
|---|---|---|
| When new data arrives | Deliver when iOS next wakes Hozz and this much time has passed. | at most one delivery every 5 minutes |
| About every hour | Deliver when iOS next wakes Hozz and this much time has passed. | at most one delivery every 55 minutes |
| About once a day | Deliver when iOS next wakes Hozz and this much time has passed. | at most one delivery every 23 hours |
| Only when I ask | Only when you tap Sync now, or a Shortcut runs. | never on its own |
Hozz requests another refresh 15 minutes after each run. That is an earliest acceptable time, not an iOS promise.
How long a first backfill takes#
A pass reads at most 5,000 records, or 4 MB, whichever comes first. Every type gets a share; iOS decides how many passes run.
Large archives take days or weeks. Records arrive throughout.
How to make it run right now#
Open Hozz and tap Sync now. Hozz also provides two Shortcuts: Sync Health Data and Check Health Sync Status — so a personal automation can trigger one.
Reading the dashboard#
The dashboard shows one of seven states per destination. Five of them are healthy; only two mean something is wrong.
| State | Healthy | Meaning |
|---|---|---|
| idle | Yes | Nothing has been attempted yet. |
| waitingForSystem | Yes | There is data to send and Hozz is waiting for iOS to run it. |
| delivering | Yes | A delivery is in flight. |
| delivered | Yes | Everything staged has been accepted by the destination. |
| waitingForUnlock | Yes | The device was locked, so Health could not be read. Resolves itself. |
| retrying | No | The destination rejected the data or could not be reached. Will retry. |
| needsAttention | No | Something you have to fix, such as a folder that was moved. |
waitingForSystem and waitingForUnlock resolve themselves. retrying keeps trying; needsAttention stops for you.
What Hozz guarantees regardless#
Each Health type advances only after durable staging. Each destination advances only after acceptance, so failures cannot skip data or block another destination.
An interruption can repeat work, but it cannot skip records. Content-derived Idempotency-Key values make repeats identifiable.
Troubleshooting covers what to do when a state is genuinely stuck.