App Information
- App name: Bold Wallet
- Package name:
com.boldwallet
- Version: Unknown
- Version code: Unknown
- Issue type: Crash
- Android version: 9.0
Expected Behavior
The app should remain stable when the user taps the central fingerprint/lock icon from com.boldwallet.MainActivity.
The wallet setup or recovery page should be opened normally, and any activity result from native modules should be handled safely without terminating the app process.
Actual Behavior
The app crashes after the user taps the central fingerprint/lock icon and enters the wallet setup/recovery flow.
The crash occurs in the React Native bridge/native callback path while handling an Activity result, and Android force-finishes com.boldwallet.MainActivity.
Reproduction Steps
- Launch the app and stay on
com.boldwallet.MainActivity.
- Tap the circular fingerprint and lock icon in the center of the page.
- Observe whether the wallet setup and recovery page is opened successfully.
- The app crashes and the process is terminated.
Crash Log
05-23 19:37:02.158 F/libc (28083): Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 28083 (com.boldwallet), pid 28083 (com.boldwallet)
05-23 19:37:02.199 F/DEBUG (30596): pid: 28083, tid: 28083, name: com.boldwallet >>> com.boldwallet <<<
05-23 19:37:02.255 F/DEBUG (30596): #01 pc 0000000000584b58 /data/app/com.boldwallet-lYCrSkDanHHSGroONaLaDg==/base.apk (offset 0x1c30000)
05-23 19:37:02.255 F/DEBUG (30596): #02 pc 0000000000583cb8 /data/app/com.boldwallet-lYCrSkDanHHSGroONaLaDg==/base.apk (offset 0x1c30000) (google::LogMessage::SendToLog()+1792)
05-23 19:37:02.255 F/DEBUG (30596): #03 pc 00000000005843c4 /data/app/com.boldwallet-lYCrSkDanHHSGroONaLaDg==/base.apk (offset 0x1c30000) (google::LogMessage::Flush()+216)
05-23 19:37:02.255 F/DEBUG (30596): #04 pc 0000000000588868 /data/app/com.boldwallet-lYCrSkDanHHSGroONaLaDg==/base.apk (offset 0x1c30000) (google::LogMessageFatal::~LogMessageFatal()+8)
05-23 19:37:02.256 F/DEBUG (30596): #05 pc 00000000003cc840 /data/app/com.boldwallet-lYCrSkDanHHSGroONaLaDg==/base.apk (offset 0x1c30000)
05-23 19:37:02.256 F/DEBUG (30596): #06 pc 000000000049d80c /data/app/com.boldwallet-lYCrSkDanHHSGroONaLaDg==/base.apk (offset 0x1c30000) (_ZN8facebook3jni6detail13MethodWrapperIMNS_5react16JCxxCallbackImplEFvPNS3_11NativeArrayEEXadL_ZNS4_6invokeES6_EES4_vJS6_EE8dispatchENS0_9alias_refIPNS1_8JTypeForINS0_11HybridClassIS4_NS3_9JCallbackEE8JavaPartESD_vE11_javaobjectEEEOS6_+120)
05-23 19:37:02.256 F/DEBUG (30596): #07 pc 000000000049d71c /data/app/com.boldwallet-lYCrSkDanHHSGroONaLaDg==/base.apk (offset 0x1c30000) (_ZN8facebook3jni6detail13MethodWrapperIMNS_5react16JCxxCallbackImplEFvPNS3_11NativeArrayEEXadL_ZNS4_6invokeES6_EES4_vJS6_EE4callEP7_JNIEnvP8_jobjectPNS1_8JTypeForINS0_11HybridClassIS5_NS1_15BaseHybridClassEE8JavaPartENS0_7JObjectEvE11_javaobjectE+76)
05-23 19:37:02.256 F/DEBUG (30596): #08 pc 0000000000034d88 /data/app/com.boldwallet-lYCrSkDanHHSGroONaLaDg==/oat/arm64/base.odex (offset 0x33000) (com.facebook.react.bridge.CatalystInstanceImpl.jniSetSourceURL [DEDUPED]+152)
05-23 19:37:02.256 F/DEBUG (30596): #15 pc 00000000002a7376 /data/app/com.boldwallet-lYCrSkDanHHSGroONaLaDg==/oat/arm64/base.vdex (com.facebook.react.bridge.CxxCallbackImpl.invoke+18)
05-23 19:37:02.256 F/DEBUG (30596): #21 pc 00000000003cca8a /data/app/com.boldwallet-lYCrSkDanHHSGroONaLaDg==/oat/arm64/base.vdex (com.reactlibrary.BarcodeZxingScanModule.onActivityResult+102)
05-23 19:37:02.256 F/DEBUG (30596): #27 pc 00000000002ad79c /data/app/com.boldwallet-lYCrSkDanHHSGroONaLaDg==/oat/arm64/base.vdex (com.facebook.react.bridge.ReactContext.onActivityResult+36)
05-23 19:37:02.256 F/DEBUG (30596): #33 pc 00000000002e5c46 /data/app/com.boldwallet-lYCrSkDanHHSGroONaLaDg==/oat/arm64/base.vdex (com.facebook.react.runtime.ReactHostImpl.onActivityResult+114)
05-23 19:37:02.256 F/DEBUG (30596): #39 pc 0000000000296b44 /data/app/com.boldwallet-lYCrSkDanHHSGroONaLaDg==/oat/arm64/base.vdex (com.facebook.react.ReactDelegate.onActivityResult+32)
05-23 19:37:02.256 F/DEBUG (30596): #45 pc 0000000000295b50 /data/app/com.boldwallet-lYCrSkDanHHSGroONaLaDg==/oat/arm64/base.vdex (com.facebook.react.ReactActivityDelegate.onActivityResult+12)
05-23 19:37:02.256 F/DEBUG (30596): #51 pc 0000000000295f06 /data/app/com.boldwallet-lYCrSkDanHHSGroONaLaDg==/oat/arm64/base.vdex (com.facebook.react.ReactActivity.onActivityResult+10)
05-23 19:37:02.256 F/DEBUG (30596): #79 pc 00000000000b44c8 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+752)
05-23 19:37:02.385 W/ActivityManager( 1613): Force finishing activity com.boldwallet/.MainActivity
05-23 19:37:02.424 W/InputDispatcher( 1613): channel 'e1a2304 com.boldwallet/com.boldwallet.MainActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9
Analysis
The crash is a native abort:
Fatal signal 6 (SIGABRT), code -6 (SI_TKILL)
The stack trace shows that the abort is triggered through a fatal native log path:
google::LogMessage::SendToLog()
google::LogMessage::Flush()
google::LogMessageFatal::~LogMessageFatal()
The relevant app-side call chain points to React Native Activity result handling:
com.reactlibrary.BarcodeZxingScanModule.onActivityResult
com.facebook.react.bridge.ReactContext.onActivityResult
com.facebook.react.runtime.ReactHostImpl.onActivityResult
com.facebook.react.ReactDelegate.onActivityResult
com.facebook.react.ReactActivityDelegate.onActivityResult
com.facebook.react.ReactActivity.onActivityResult
This indicates that the crash occurs when the app receives an Activity result and forwards it through the React Native bridge. The native module involved is:
com.reactlibrary.BarcodeZxingScanModule
The module then invokes a React Native callback through:
com.facebook.react.bridge.CxxCallbackImpl.invoke
facebook::react::JCxxCallbackImpl::invoke
Because the process aborts through google::LogMessageFatal, this is likely caused by an invalid or unsafe native/React Native bridge state, such as invoking a stale callback, invoking a callback with invalid arguments, calling into a destroyed React context, or mishandling the result from the barcode scanning activity.
Although the visible user action is tapping the fingerprint/lock icon to enter the wallet setup and recovery flow, the fatal stack trace shows that the immediate crash point is in BarcodeZxingScanModule.onActivityResult().
App Information
com.boldwalletExpected Behavior
The app should remain stable when the user taps the central fingerprint/lock icon from
com.boldwallet.MainActivity.The wallet setup or recovery page should be opened normally, and any activity result from native modules should be handled safely without terminating the app process.
Actual Behavior
The app crashes after the user taps the central fingerprint/lock icon and enters the wallet setup/recovery flow.
The crash occurs in the React Native bridge/native callback path while handling an Activity result, and Android force-finishes
com.boldwallet.MainActivity.Reproduction Steps
com.boldwallet.MainActivity.Crash Log
Analysis
The crash is a native abort:
The stack trace shows that the abort is triggered through a fatal native log path:
The relevant app-side call chain points to React Native Activity result handling:
This indicates that the crash occurs when the app receives an Activity result and forwards it through the React Native bridge. The native module involved is:
The module then invokes a React Native callback through:
Because the process aborts through
google::LogMessageFatal, this is likely caused by an invalid or unsafe native/React Native bridge state, such as invoking a stale callback, invoking a callback with invalid arguments, calling into a destroyed React context, or mishandling the result from the barcode scanning activity.Although the visible user action is tapping the fingerprint/lock icon to enter the wallet setup and recovery flow, the fatal stack trace shows that the immediate crash point is in
BarcodeZxingScanModule.onActivityResult().