Skip to content
Documentation

Documentation

Mobile troubleshooting

Every failure a real integration has hit, what it looks like, and which side fixes it.

The app

SymptomCauseFix
App crashes on launch: *"the native module RNCConfigModule was not found"* (React Native)The release bundle was built without react-native-config's native half -- usually a CI runner that did not run npm install after the dependency was added. A plain import Config then throws before initialize() runs.Rebuild the native app; verify the module is in the release classpath. Read the secret defensively as shown on the React Native page so this can never take the app down again.
pod install fails: *"Unable to find a specification for RoasSensor"* (Flutter, React Native)The native iOS SDK is served from git and the app's Podfile does not say where.Add the pod 'RoasSensor', :git => …, :tag => … line to ios/Podfile.
Swift build fails on a missing member initializeThe iOS entry point is Roas.configure(...); initialize is the Android name.Use configure.
Nothing arrives at all; the delivery log says the request failedbaseUrl omitted or wrong. The SDK's default is the production host, and a release build refuses cleartext http:// outright.Pass the baseUrl the panel prints, and rebuild -- it is baked in at build time.
Every beacon is rejected (401)The secret was passed as an empty string, which signs with an empty key.Read it so that missing means null / undefined / nil, never "".
Install arrives signed = falseThe secret did not reach initialize(): .env or local.properties missing at build time, --dart-define not on the build command, or R8 stripped BuildConfig in a React Native release build.Each SDK page's secret section. For React Native, the -keep class …BuildConfig ProGuard rule.

Attribution

SymptomCauseFix
Install referrer is (not set) after tapping the linkA reinstall on a device and account that had the app before, or an install started from the Play *website* rather than the Play Store app. Play issues no new referrer in either case.Test on a device that has never had the app, and make sure the link lands in the Play Store app. See Testing.
Install referrer is google-play / organicThe tester installed from the store directly, not through the link.Tap the link first; install from the page it opens.
Install referrer is emptyInstalled with adb, Android Studio, Xcode or run-android. No store, no referrer.Install from the store for the attribution test.
Deep link taps do not produce an app_openThe URL is not being forwarded to handleDeepLink, or the app has no intent filter / associated domain for it.Forward every incoming URL as shown on the SDK page. If the app handles no links, this is expected and harmless.
Sale booked but UNATTRIBUTEDobfuscatedAccountId / appAccountToken was not set on the purchase (the store returns the value on the purchase object -- check it), or the install itself carried no referrer.Set the field. On iOS, the value must be appAccountToken(), a UUID; the Android visitor id is silently dropped by StoreKit.

Revenue

SymptomCauseFix
Purchase made, nothing arrives from Google PlayThe Pub/Sub subscription is Pull (the console default) instead of Push; the topic was never saved in Play Console; or the topic lacks the Publisher grant for Google's notification account.Google Play revenue, the checklist at the end. Pub/Sub keeps undelivered messages for seven days, so fixing it delivers the backlog.
Play notifications arrive, nothing booksWe could not read the purchase. Either the Google Play Android Developer API is not enabled on the Cloud project, or the service account lacks *View financial data* on the app.Both are in the Play Console / Cloud Console; the same page lists them. A new grant can take a few minutes to propagate.
Test subscription expires after one period with no renewalPlay (or your own backend) cancelled auto-renew. Play Console → Order management shows the reason on the order.Not a tracking problem. Renewals book like purchases once they occur.
Apple: notifications never arriveThe App Store Connect URL is unset, set only for Production while you test in Sandbox, or points at a customer backend that does not forward.App Store revenue: set both URLs, or use the forwarding option.
verifyPurchase answers *could not verify* (422)No store credential on the account (In-App Purchase key / Play service account), or on iOS a local StoreKit configuration file transaction, which Apple's server has never seen.Add the credential. Test iOS with a real sandbox purchase, not a .storekit file.
Every sale counted twiceTwo revenue routes for the same purchases: store notifications and a Conversions API post from your server. Cross-source dedup matches on email, and store notifications carry none.One route per app. If you use RevenueCat, use only RevenueCat.

Still stuck? Talk to us with the app's public key and the time of the test; the rows are on our side and a real engineer reads them.