Known Issues

← Back to Documentation Index

This document lists known issues, their status, and workarounds.

#IssueStatusPlatform
1Virtual environment crash on AndroidExpected behavior (by design)Android
2Emulator/simulator false security triggersWorkaround availableAll
3iOS double initializationBy designiOS
4iOS-only jailbreak detectionBy designiOS / Android
5setCommonConfig deprecatedDeprecatedAll

1. Virtual environment crash on Android

Status: Expected behavior (security feature, by design).

Description: When running in a virtual / emulated environment, the app may crash with a NullPointerException originating in ThemeConfiguration$Builder (and related repository classes). This is triggered by hook and virtual-environment detection, which intentionally cause a native crash that cannot be caught or handled by application code. Example stack traces:

java.lang.NullPointerException
    at com.incode.welcome_sdk.ThemeConfiguration$Builder.setLabelSmallStyle(SourceFile:1066)
    at com.incode.welcome_sdk.f.c(SourceFile:150)
    at com.incode.welcome_sdk.data.local.m.as(SourceFile:22)
    at com.incode.welcome_sdk.IncodeWelcome.startOnboardingSection(SourceFile:18)
java.lang.NullPointerException: Attempt to get length of null array
    at com.incode.welcome_sdk.data.IncodeWelcomeRepository.d(SourceFile:320)
    at com.incode.welcome_sdk.data.IncodeWelcomeRepository.i(SourceFile:214)

Workaround: Do not run production builds in virtual environments. For development/testing on emulators, see issue 3. Note that, as of 4.2.0, emulator and root detection no longer abort the flow — the onboarding continues normally — but hook and virtual-environment detection still trigger an unrecoverable native crash.


2. Emulator/simulator false security triggers

Status: Workaround available.

Description: Running on simulators/emulators can trigger security checks that return errors such as simulatorDetected.

Workaround: Set testMode to "true" when calling initializeSDK on simulators/emulators. Use testMode: "false" on real devices in production (otherwise you may receive a testModeEnabled error).


3. iOS double initialization

Status: By design.

Description: The iOS SDK guards against double initialization. Calling initializeSDK more than once per app lifecycle is a no-op on iOS.

Workaround: Initialize once per app lifecycle. Use isInitialized to check state before re-initializing.


4. iOS-only jailbreak detection

Status: By design.

Description: Jailbreak detection is an iOS-only feature. The disableJailbreakDetection parameter of initializeSDK has no effect on Android.

Workaround: None needed — set disableJailbreakDetection only when targeting iOS behavior.


5. setCommonConfig deprecated

Status: Deprecated since 4.6.0; scheduled for removal.

Description: setCommonConfig is deprecated. It now internally forwards to showCloseButton and logs a deprecation warning. It will be removed in a future major release.

Workaround: Use showCloseButton(successCallback, errorCallback, allowUserToCancel) instead.