SignalFox Docs

Debugging

Check that SignalFox is installed and sending events correctly.

Use this page when events are not showing up, look incomplete, or appear in the wrong environment.

First check: Development events

Run your app with the debug API key. Then open the Development section in the SignalFox dashboard.

Trigger a few simple actions:

  • open the app
  • navigate to another screen
  • press an important Pressable or Touchable
  • open and close a modal
  • trigger one in-screen funnel step if your app has one

You should see events arrive there. If nothing appears, work through the checklist below.

Installation checklist

Confirm that:

  • SignalFox.init runs successfully with your apiKey and integrations
  • the apiKey value is present
  • development builds use the debug key
  • release builds use the production key
  • applyModalPatch() and applyTouchablePatch() run before the app renders
  • your navigation integration receives a valid root navigation ref

API key issues

SignalFox uses separate client keys for debug and production data.

Use the debug key while developing. Debug keys start with ak_dev__, and they are designed for checking installation quickly in the dashboard.

Use the production key for release builds. If a build uses the wrong key, events can show up in the wrong place or look like they are missing.

If screen views are missing, check that you configured exactly one navigation integration:

  • reactNavigationIntegration({ navigationRef }) for React Navigation
  • expoRouterIntegration({ navigationRef }) for Expo Router

Make sure the ref you pass is the root navigation ref. Route parameter changes are not treated as new screen views by themselves, so test with a real screen change.

If modal or press events are missing:

  • confirm the startup patches run before your app renders
  • add signalFoxNodeId to the relevant Modal, Pressable, or Touchable
  • make sure the ID is unique for that component and context

If the same modal can open from different parts of the app, give each context its own compact, descriptive signalFoxNodeId.

Funnel tracking issues

Use trackFunnelStep for funnels that happen inside the same screen. Do not add trackFunnelStep for a journey that already moves through separate screens, because navigation tracking already covers that path.

If a funnel step does not show up, confirm funnelName and signalFoxNodeId are both non-empty strings, and that the code runs after SignalFox.init has completed (or rely on the SDK’s queueing before init finishes).

Duplicate events

Avoid calling SignalFox.init with conflicting configurations in the same app process. For purchases, do not mix automatic RevenueCat or react-native-iap tracking with manual purchase notifiers for the same purchase path unless you intentionally handle duplication.