> 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/data-api-sdk/mobile-sdk-setup-permissions-and-crashes/connection-success-does-not-mean-permissions-granted.md).

# Why does the SDK report success when user denies permissions?

This is intended behaviour.

**This is intended behaviour.** Once the permission screen has been raised, the connection is treated as a success regardless of which permissions the user granted, on both Android and iOS/Apple Health. There's no reliable way to know what a user approved, and failing would leak that information.

**Don't rely on the connection result.** Instead, **request data and check what actually arrives** to determine which permissions were granted.

See [permissions mapping](https://docs.tryterra.co/reference/health-and-fitness-api/sdk-references/permissions-mapping) for what each permission covers.

## Flutter on Android before 0.10.0

Before `terra_flutter_bridge` 0.10.0, `initTerra`, `initConnection` and `getUserId` on Android always returned `success: true`, even when the call failed, for example when Samsung Health refused the connection. The reason was still returned in the `error` field. **Upgrade to 0.10.0 or later**, where these methods return the real success value. On an older version, check `error` rather than `success`.
