> 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/connecting/apple-health-health-connect-and-mobile-sdk/apple-healthkit-permission-sheet-once.md).

# Why does the HealthKit permission sheet only show once?

Apple shows the HealthKit permission sheet only once per app, per device install.

Apple shows the HealthKit permission sheet **only once per app, per device install**. After that first prompt, iOS will not re-show it, even if scopes were denied. This is an Apple platform constraint, and there is no API workaround.

The only way for a user to change their grants is:

* **Settings > Privacy > Health > \[your app]**

To confirm whether data is actually flowing, check [Payload History](https://github.com/tryterra/api-faqs/blob/main/dashboard/README.md) rather than relying on your in-app sync, view, or scan screens.

## Why does a blank Health sheet flash every time my app starts?

On React Native before terra-react 1.9.9, `initTerra` always asked for HealthKit permissions. For users who had already granted access, iOS briefly shows an empty sheet on every launch. **Upgrade to terra-react 1.9.9 or later and pass `false` as the `requestPermissions` argument of `initTerra`**, then call `requestHealthKitPermissions` from your own connect flow when you want the prompt. When you add data types, pass the new permissions to `requestHealthKitPermissions`.

On native iOS, the same `requestPermissions` option is on `Terra.instance` from iOS SDK 1.7.1. See [controlling when the HealthKit popup appears](https://docs.tryterra.co/unified-api/mobile-only-sources/ios-swift). The Flutter package doesn't have this option.
