Describe the bug
When switching to a remote node, and back to embedded LND, the app crashes with SIGABRT:
JavaTurboModule.cpp:125] Callback arg cannot be called more than once
Sequence:
stopLnd() is called during wallet switch -> succeeds
startLnd() is called -> throws LND_ALREADY_RUNNING (Go/Java state mismatch)
- The error handler in
startLndWithRetry calls stopLnd(..., forceStop=true) again
- The native
stopLnd callback fires a second time
- TurboModules (New Architecture) enforces single-invocation on callbacks -> fatal abort
On the old Bridge architecture this was silently ignored. TurboModules treats it as a fatal error.
Reproduce
start embedded LND, switch to remote node, switch back to embedded LND
ZEUS version
v0.13.0
Node interface
Multiple (specified in comments)
Network
Clearnet
Device
Samsung Galaxy S20+
Device operating system
Android 13
Log output
Describe the bug
When switching to a remote node, and back to embedded LND, the app crashes with SIGABRT:
JavaTurboModule.cpp:125] Callback arg cannot be called more than onceSequence:
stopLnd()is called during wallet switch -> succeedsstartLnd()is called -> throwsLND_ALREADY_RUNNING(Go/Java state mismatch)startLndWithRetrycallsstopLnd(..., forceStop=true)againstopLndcallback fires a second timeOn the old Bridge architecture this was silently ignored. TurboModules treats it as a fatal error.
Reproduce
start embedded LND, switch to remote node, switch back to embedded LND
ZEUS version
v0.13.0
Node interface
Multiple (specified in comments)
Network
Clearnet
Device
Samsung Galaxy S20+
Device operating system
Android 13
Log output