Apple Health export missing data? Troubleshoot Health.md
If an Apple Health or Health Connect export is missing data, first separate a read problem from a file write problem. Missing data is not a measured zero.
Start with one day you can verify
Section titled “Start with one day you can verify”- Confirm a recorded value and its date in Apple Health or Health Connect. Let the watch or source app finish syncing first.
- In Health.md, check the active profile, selected metric, date range, format, and destination. Start with one supported metric on one completed day.
- Unlock the phone, open Health.md, and run Preview where available. Then export and inspect the actual result and destination. Preview does not prove that a file was saved.
For the first setup, follow your first iPhone export or Android setup.
The source has data, but the export is empty
Section titled “The source has data, but the export is empty”On iPhone, review Health.md’s allowed categories in Apple Health. HealthKit does not reveal whether read permission was denied, so an empty result alone cannot distinguish withheld access from no matching records. A successful permission request is not proof that every read category was allowed. See Apple’s authorization documentation.
On Android, confirm that the source app actually wrote the record into Health Connect and that Health.md can read that supported type. Data visible only inside another app may not be available to export. See Google’s sync and permission checklist.
Recheck the metric and date after changing permissions or syncing. Do not substitute zero for an absent value.
If a structured result reports complete_empty, keep it distinct from unsupported, partial, skipped, or failed output. It does not prove a measured zero or reveal a read-permission decision.
Last night’s sleep is missing from Today
Section titled “Last night’s sleep is missing from Today”Night begins (default): Health.md uses a local noon-to-noon sleep journal window on Apple and Android. On Tuesday morning, export Yesterday (Monday), including sleep that began after midnight on Tuesday, or export Monday and Tuesday for both sleep and activity. If the source syncs late, repeat the sleep journal day. See sleep-date examples. Morning ends: export the wake-up date instead: Tuesday for Monday night’s sleep. Both modes use the export’s time zone.
Preview shows data, but the folder is empty
Section titled “Preview shows data, but the folder is empty”On iPhone, check whether the active profile writes to a local folder, Connected Mac, or API Endpoint. For folder exports, inspect the selected folder and subfolder, filename, and written, skipped, or failed result. A skipped file may reflect the chosen write behavior. Reselect an unavailable folder and verify its file provider before retrying. See folders and vaults and export profiles.
The CSV has totals, but not the readings I expected
Section titled “The CSV has totals, but not the readings I expected”On iPhone, Summary and Detailed Time-Series contain different detail. Check the selected Data Detail and metrics before expanding the date range. Metadata rows are not health measurements; preserve units and distinguish daily totals from source records. Lossless Health Records has a separate capture status, and a summary alone does not prove complete source capture. See the format and coverage reference.
A scheduled export did not arrive
Section titled “A scheduled export did not arrive”iOS background work and Android WorkManager use target times, not guaranteed delivery times. Unlock the device, open Health.md, and inspect history and pending recovery before starting another run. A notification is not proof of a successful write. Use iPhone scheduling and recovery or Android automation.
CLI timeout
Section titled “CLI timeout”A timeout does not cancel an accepted job:
healthmd status --job JOB_UUIDhealthmd resume JOB_UUID --timeout 300Before claiming completeness, inspect status, missing dates, coverage, next_cursor, version, and limitations. --allow-partial changes exit policy only.
Ask for help without sharing health records
Section titled “Ask for help without sharing health records”Report the app and OS version, platform, selected format, and whether the problem is empty data, skipped output, or a failed write. Redact screenshots or logs before sharing. Do not publish health values, routes, clinical documents, tokens, pairing codes, or private paths.