synonymdev / bitkit

Self-custodial Bitcoin and Lightning Wallet for Android and iOS.
https://bitkit.to
MIT License
116 stars 23 forks source link

[Bug]: Unexpected Error (crash) as savings balance went to 0 #2297

Open catch-21 opened 6 days ago

catch-21 commented 6 days ago

Describe the bug

A few minutes after initiating a Manual Setup transfer and boosting the transaction (CPFP), I was sitting on the home page waiting for the transaction to confirm and for my new spending balance to be available when my savings balance went from positive value 384k to 0 (see screenshot 1). I then tapped the savings balance and the 'Unexpected Error' page displayed (see screenshot 2) with the following report:

Error: Text strings must be rendered within a <Text> component.
Component Stack:
    in RCTView
    in Unknown
    in RCTView
    in Unknown
    in StyledNativeComponent
    in Unknown
    in ActivitySavings
    in StaticContainer
    in EnsureSingleNavigator
    in SceneView
    in RCTView
    in Unknown
    in DebugContainer
    in MaybeNestedStack
    in RCTView
    in Unknown
    in RNSScreen
    in Unknown
    in Suspender
    in Suspense
    in Freeze
    in DelayedFreeze
    in InnerScreen
    in Screen
    in SceneView
    in Suspender
    in Suspense
    in Freeze
    in DelayedFreeze
    in RNSScreenStack
    in ScreenStack
    in NativeStackViewInner
    in RCTView
    in Unknown
    in SafeAreaProviderCompat
    in NativeStackView
    in PreventRemoveProvider
    in NavigationContent
    in Unknown
    in NativeStackNavigator
    in WalletsStack
    in StaticContainer
    in EnsureSingleNavigator
    in SceneView
    in RCTView
    in Unknown
    in DebugContainer
    in MaybeNestedStack
    in RCTView
    in Unknown
    in RNSScreen
    in Unknown
    in Suspender
    in Suspense
    in Freeze
    in DelayedFreeze
    in InnerScreen
    in Screen
    in SceneView
    in Suspender
    in Suspense
    in Freeze
    in DelayedFreeze
    in RNSScreenStack
    in ScreenStack
    in NativeStackViewInner
    in RCTView
    in Unknown
    in SafeAreaProviderCompat
    in NativeStackView
    in PreventRemoveProvider
    in NavigationContent
    in Unknown
    in NativeStackNavigator
    in EnsureSingleNavigator
    in BaseNavigationContainer
    in ThemeProvider
    in NavigationContainerInner
    in StyledNativeComponent
    in Unknown
    in RootNavigator
    in RCTView
    in Unknown
    in InactivityTracker
    in AppOnboarded
    in SlashtagsProvider
    in RNCSafeAreaProvider
    in SafeAreaProvider
    in StyledNativeComponent
    in Unknown
    in ThemeProvider
    in App
    in PersistGate
    in Provider
    in ErrorBoundary
    in Root
    in RNGestureHandlerRootView
    in GestureHandlerRootView
    in gestureHandlerRootHOC(Root)
    in RCTView
    in Unknown
    in AppContainer
Stack: Error: Text strings must be rendered within a <Text> component.
    at completeWork (address at index.android.bundle:1:454493)
    at completeUnitOfWork (address at index.android.bundle:1:471571)
    at performUnitOfWork (address at index.android.bundle:1:470872)
    at workLoopSync (address at index.android.bundle:1:469967)
    at renderRootSync (address at index.android.bundle:1:469799)
    at flushSyncWorkAcrossRoots_impl (address at index.android.bundle:1:423743)
    at batchedUpdatesImpl (address at index.android.bundle:1:482345)
    at batchedUpdates$1 (address at index.android.bundle:1:416457)
    at _receiveRootNodeIDEvent (address at index.android.bundle:1:416745)
    at receiveTouches (address at index.android.bundle:1:479907)
    at apply (native)
    at __callFunction (address at index.android.bundle:1:144401)
    at anonymous (address at index.android.bundle:1:142840)
    at __guard (address at index.android.bundle:1:143782)
    at callFunctionReturnFlushedQueue (address at index.android.bundle:1:142798)
Platform: android 14
Version: 1.0.5 (136)
LDK version: ldk-v0.0.123-36-g1027b935fb92b924 c_bindings-v0.0.123.1)
LDK node ID: 03c537950c6e1b62c0ce7923f4933d89999394edcac0f4aca877cd5cfcaec996c9

Reproduce

I'm unsure whether the manual setup and boost are relevant here but this is what I did

  1. Scan lightning node https://1ml.com/node/0296b2db342fcf87ea94d981757fdf4d3e545bd5cef4919f58b5d38dfdd73bf5c9 and initiate a new channel with just spending balance, no inbound liquidity.
  2. Once Transfer activity is visible, tap it and boost (CPFP)
  3. Once activity is boosted, leave the wallet open on home page to wait for confirmation
  4. After 5-10 minutes the savings balance went from 384k to 0
  5. Tapping the savings balance showed Unexpected Error (crash) page

Screenshots / Recording

Screenshot 1

Screenshot 2

Operating system

Android 14

Bitkit version

b3f9f30dd56e4a1666492c3219f352d2bcd77086

Log output

bitkit_ldk_logs_1728449292551.zip

catch-21 commented 6 days ago

I was unable to reproduce by letting a manual setup transfer confirm whilst watching the main wallet page. I tried twice, one without boost and one with. Both times behaviour was as desired.

pwltr commented 4 days ago

No idea why the balance would be wrong but the uncaught error is fixed with https://github.com/synonymdev/bitkit/pull/2307