Common Issues
SDK Not Initializing — 'App ID is required'
SDK Not Initializing — 'App ID is required'
"App ID is required" on startup and no events reach the dashboard.The most common cause is instantiating TappdSDK with an empty or missing appId.- Copy your App ID from the Tappd dashboard — do not type it manually.
- Confirm the value is not
undefinedor an empty string at runtime (log it to verify). - Confirm you are importing the SDK correctly:
import TappdSDK from '@tappd/mobile-sdk'.
Events Not Tracking — Events Not Appearing in Dashboard
Events Not Tracking — Events Not Appearing in Dashboard
track() resolves without throwing, but no events appear in the Tappd dashboard.Work through these fixes in order:1. Enable debug mode to see SDK activity in your console:2xx status codes.3. Verify the API URL matches Tappd’s hosted endpoint:track() call. Dropping the await means errors are silently swallowed.Anonymous Data Not Merging After Identification
Anonymous Data Not Merging After Identification
identify() are not linked to the identified user profile.The merge only happens when identify() is called with at least external_id. Check both points below.Ensure you pass external_id to identify():Session Issues — Sessions Not Starting or Expiring Incorrectly
Session Issues — Sessions Not Starting or Expiring Incorrectly
sessionTimeout if sessions are expiring too soon (value is in minutes):null:getSessionId() returns null, the SDK failed to initialize. Go back to the SDK Not Initializing section.Screen Tracking Not Working — Screen Views Missing
Screen Tracking Not Working — Screen Views Missing
trackScreen() is called.Use useFocusEffect instead of useEffect. With useEffect, the screen view fires only on mount. With useFocusEffect, it fires every time the screen comes into focus — which is what you want in a tab or stack navigator.NavigationContaineris configured at the root of your app.- Screen names are consistent across all calls (casing matters).
Push Token Registration Fails — 'User must be identified first'
Push Token Registration Fails — 'User must be identified first'
registerPushToken() throws "User must be identified first".registerPushToken() requires an identified user. Always call identify() before you register the token.- iOS: Confirm APNs push certificates are uploaded to Firebase.
- Android: Confirm
google-services.jsonis inandroid/app/. - Both: Log the token to confirm it is not null or empty:
AsyncStorage Issues — New Anonymous ID on Every Launch
AsyncStorage Issues — New Anonymous ID on Every Launch
@react-native-async-storage/async-storage to persist the anonymous ID. If it is missing or misconfigured, a new ID is generated on every launch.Install the package:false, AsyncStorage is not functioning — check for linking errors and re-run pod install.Build Errors — iOS and Android
Build Errors — iOS and Android
pod install after adding or updating the SDK:@tappd/mobile-sdk and other packages in your package.json.TypeScript Errors — Type Errors in TypeScript Projects
TypeScript Errors — Type Errors in TypeScript Projects
@types install is needed:Debug Mode
Enabledebug: true when you initialize the SDK to stream detailed logs to your React Native console. These logs are the fastest way to confirm the SDK is working as expected.
debug: true before releasing to production to avoid leaking internal SDK logs to end users.Getting Help
If you’ve worked through the relevant section above and the problem persists, contact Tappd support. To get a fast resolution, gather the following before reaching out:Verify network requests
Common Error Messages
| Error | Cause | Fix |
|---|---|---|
"App ID is required" | appId is missing or empty in TappdConfig | Copy your App ID from the Tappd dashboard |
"User must be identified first" | Called registerPushToken(), setUserAttributes(), or similar before identify() | Call identify() before any method that requires an identified user |
"Request failed: ..." | Network failure or API error | Check your apiUrl, verify internet connectivity, and inspect the response in Flipper |
"AsyncStorage error" | @react-native-async-storage/async-storage not installed or linked | Install the package and run pod install on iOS |