SDK Not Initializing — 'App ID is required'
SDK Not Initializing — 'App ID is required'
- Console shows
"App ID is required"on page load - No events appear in the Tappd dashboard
appId field is missing, empty, or undefined in your config object.- Copy your App ID from the Tappd dashboard — Settings → App ID.
- Confirm the environment variable is defined in your
.envfile and your build tool exposes it to the client. - Verify the SDK script or npm package loads fully before your initialization code runs.
Events Not Tracking — No Events in Dashboard
Events Not Tracking — No Events in Dashboard
track()resolves without errors- The Tappd dashboard shows no events
- Open DevTools → Network.
- Filter by
trackorapi. - Confirm requests are sent and check their HTTP status codes.
- A
4xxresponse points to a config problem; a5xxindicates a server issue.
- Check the browser console for
"Access-Control-Allow-Origin"messages. - See the CORS Errors accordion below for fixes.
Anonymous Data Not Merging After identify()
Anonymous Data Not Merging After identify()
- Events tracked before
identify()don’t appear on the user’s profile in the dashboard - User journeys look incomplete — the pre-login funnel is missing
identify() was never called, was called without a valid identifier, or was called after the session that contained the anonymous events had expired.- Passing
null,undefined, or an empty string asexternal_id— the SDK throws"external_id is required in attributes". - Calling
identify()in a later session without the sameexternal_id— the SDK creates a new profile instead of merging. - Calling
reset()beforeidentify()— this clears the anonymous ID and breaks the merge chain.
Session Issues — No Session ID or Sessions Restarting
Session Issues — No Session ID or Sessions Restarting
getSessionId()returnsnull- Sessions restart far too frequently
SPA Navigation Not Tracking — Only First Page View Captured
SPA Navigation Not Tracking — Only First Page View Captured
localStorage Issues — New Anonymous ID on Every Page Load
localStorage Issues — New Anonymous ID on Every Page Load
- Each page load produces a different anonymous ID
- Users appear as new visitors on every visit
localStorage. If storage is unavailable, blocked, or cleared between visits, a new ID is generated every time.Check 1 — Verify localStorage is available:- Private/incognito mode limits or blocks
localStoragein some browsers — this is expected. - Check for browser extensions (ad blockers, privacy tools) that clear or block storage.
- Confirm no other script in your app calls
localStorage.clear()on page load.
CORS Errors — 'Access-Control-Allow-Origin' Failures
CORS Errors — 'Access-Control-Allow-Origin' Failures
- Browser console shows
"CORS policy"or"Access-Control-Allow-Origin"errors - All network requests to the Tappd API fail
https://sdk.gotappd.com to confirm there is no network-level block (firewall, VPN, or DNS issue).Fix 2 — Check your custom domain setup:If you’re using a custom apiUrl, your domain must be allowlisted on the Tappd side. Contact Tappd support and provide:- Your production domain(s)
- The custom
apiUrlyou are using
TypeScript Errors — Type Mismatches or Missing Types
TypeScript Errors — Type Mismatches or Missing Types
- TypeScript compiler reports errors when importing from
@tappd/web-sdk - IntelliSense does not recognize SDK types
Build Tool Issues — Webpack or Vite Not Resolving the SDK
Build Tool Issues — Webpack or Vite Not Resolving the SDK
- Build fails with a module resolution error
- SDK import throws at runtime in the browser
Getting Help
If you’ve worked through the accordions above and still can’t resolve the issue, follow these steps before reaching out to support:Check the browser console
Enable debug mode
debug: true in your TappdSDK config and reproduce the issue. The SDK logs every action to the console — capture the full output.Inspect network requests
api or tappd, and check the status codes and response bodies of failed requests.Confirm your SDK version
npm list @tappd/web-sdk and verify you’re on the latest release. Update if needed: npm install @tappd/web-sdk@latest.Common Error Messages
| Error Message | Cause | Fix |
|---|---|---|
"App ID is required" | appId is missing or empty in the config | Provide a valid appId from the Tappd dashboard |
"User must be identified first" | A method that requires identification was called before identify() | Call identify() with at least one valid identifier first |
"external_id is required in attributes" | external_id passed as null, undefined, or "" | Pass a non-empty string for external_id |
"Request failed: ..." | Network failure or API-level error | Check your apiUrl, internet connection, and CORS configuration |
"Push notifications not supported" | Browser does not support the Push API | Only prompt for push in supported browsers (check 'PushManager' in window) |
"Notification permission denied" | User has blocked notifications at the browser level | Prompt users before they deny, or guide them to reset permissions in browser settings |