> ## Documentation Index
> Fetch the complete documentation index at: https://docs.encorekit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Troubleshooting trigger components

> Find out why a Gifts Button or Claim Reminder isn't showing, how to test trigger components while you build, and answers to common questions.

A trigger component is designed to stay empty, and take no space, whenever it has nothing good to show. That makes "it isn't showing" the most common question. Work through the list below in order.

<Info>
  **Requires SDK 2.4.0+** on every platform. See [Minimum SDK versions](/publishers/triggers/overview#minimum-sdk-versions).
</Info>

## It isn't showing

### Check your setup first

* **The SDK is configured.** A trigger component mounted before `configure()` waits and starts once the SDK is configured.
* **The trigger component is turned on for your app.** Encore turns each trigger component on per app and sets its default look. Until then the entry renders nothing. Ask your Encore contact or write to [admin@encorekit.com](mailto:admin@encorekit.com).
* **The reward sheet has offers at that placement.** A trigger component only shows when the reward sheet it opens has offers for this user at this placement. Try `show()` at the same placement: if the sheet doesn't present, the entry won't show either.
* **The SDK is 2.4.0 or later.** See [Minimum SDK versions](/publishers/triggers/overview#minimum-sdk-versions).
* **For Claim Reminder: there is a claim to show.** Claim Reminder shows only claims the user made in your app on this device. See [Claim Reminder](/publishers/triggers/claim-reminder).

### Every reason it can be empty

A trigger component renders nothing, at zero height, when:

| Situation | Logged once? |
| - | - |
| The trigger ID isn't one this SDK knows | Yes |
| `useCase` is the churn use case, which isn't supported yet | Yes |
| The reward sheet has no offers for this user at this placement | No |
| Encore serves no reward sheet to this user at this placement | No |
| The user is in a Gifts Button experiment's holdout group that sees nothing | No |
| Encore served a look this SDK version can't draw | Yes |
| Managed, and Encore has set no default look and runs no experiment | No |
| It's still loading, or the request failed (for example, offline) | No |
| React Native without the native module linked: Expo Go, or React Native for web | Yes |
| Flutter on the web or desktop | No |
| iOS below 17 | No |
| Claim Reminder: no open claim inside the reminder window, the sheet doesn't list the claimed offer, or the user dismissed it | No |

A failed request is asked again the next time your app returns to the foreground, so a trigger component that was empty while offline can appear later without any code from you.

### It was showing, then disappeared

That's expected in these cases:

* **The offers ran out.** After the sheet closes, the entry checks again and hides when no offers are left.
* **The user claimed the offer.** Claim Reminder hides when the brand confirms the user finished, and Gifts Button checks the offers afresh after a claim.
* **The reminder window ended.** Claim Reminder hides when its countdown reaches zero. The claim itself stays open.
* **The user changed.** After `identify()` or `reset()`, it reloads for the new user, who may have nothing to show.
* **The user dismissed it.** A dismissed Claim Reminder stays hidden for that claim on that device.

## Testing while you build

* **Use your test API key** in debug builds, as for the rest of Encore. Ask your Encore contact to turn trigger components on for your test app, so the entries have a look to show.
* **Make sure the reward sheet has offers** for your test user at the placement you're testing. Calling `show()` at the same placement is the quickest check.
* **Test both states of every screen.** Each screen with a trigger component should look right with and without it, because some users never see it: those with no offers, and those in a holdout group.
* **Watch your console.** The cases marked "Logged once?" in the preceding table each log one warning per run of your app: in the Xcode console on iOS, the Android Studio log on Android, Metro or the native console on React Native, the debug console on Flutter, and the browser console on the web. On the web the SDK logs nothing by default: pass `logLevel: 'warn'` (or `'debug'`) to `configure()` to see these.

## Common questions

### Why does the Gifts Button sometimes have a different height?

Its height comes from the look Encore serves, and looks in one experiment can differ (the card is 76, the banner 88, the pulse 112). Leave the height flexible. See [Heights](/publishers/triggers/overview#heights).

### Can the copy or colors change?

Pass `appearance` to set the trigger component's own colors and light or dark mode; your colors win over your app's portal theme and the look's colors. It never styles the sheet the trigger component opens. See [Colors](/publishers/triggers/overview#colors). Pass `icon` to choose the icon; see [Icon](/publishers/triggers/overview#icon). The copy comes with the look, in the user's language. To use your own words, pass `headline`, `subheadline` and `cta`; see [Your text](/publishers/triggers/overview#your-text). Encore can also change the look's own copy without an app update.

### Can the app keep its own `show()` call next to a Gifts Button?

Use the Gifts Button **in place of** your own `show()` call at that moment, not as well as it. Both would open the sheet.

### Does the app need to send any events?

No. Every trigger component reports its own impressions, taps, and dismissals to Encore's analytics.

### Can a trigger component crash the app?

No. Whatever goes wrong (a network error, an unknown ID, a look the SDK can't draw) ends the same way: the entry renders nothing.

## Related

* [Trigger components](/publishers/triggers/overview)
* [Quickstart](/publishers/triggers/quickstart)
* [Experiments and looks](/publishers/triggers/experiments)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.