Skip to content

feat: add channel monitor desync repro tooling#134

Open
piotr-iohk wants to merge 7 commits intomainfrom
feat/channel-monitor-desync-repro
Open

feat: add channel monitor desync repro tooling#134
piotr-iohk wants to merge 7 commits intomainfrom
feat/channel-monitor-desync-repro

Conversation

@piotr-iohk
Copy link
Collaborator

@piotr-iohk piotr-iohk commented Mar 18, 2026

Summary

  • Add documentation and tooling to reproduce the ChannelMonitor/ChannelManager desync bug from v2.1.0 (bitkit-android#847)
  • fetchOrphanedChannelMonitorsIfNeeded injects stale RN backup monitors on upgrade, causing a fatal LDK startup failure when the gap exceeds ~20 update_ids
  • Proven repro: RN v1.1.6 → native v2.0.6 (21+ LN payments) → v2.1.0 → crash

What's included

File Purpose
docs/repro-channel-monitor-desync.md Full repro steps for iOS & Android
scripts/pay-lightning-address.sh Pay BOLT11/BIP21/LN address via Blocktank staging API
test/specs/receive-ln-payments.e2e.ts Appium spec to receive N LN payments on an existing app
wdio.no-install.conf.ts WDIO config that attaches to existing app without reinstalling

Test plan

  • Reproduced on iOS simulator (ChannelManager=305, ChannelMonitor=150, gap=155)
  • Can be used to verify the fix on release-2.1.1 / fix/channel-monitor-stale-data-v2

Made with Cursor

Add scripts and docs for reproducing the ChannelMonitor/ChannelManager
desync caused by fetchOrphanedChannelMonitorsIfNeeded in v2.1.0.

- docs/repro-channel-monitor-desync.md: full repro steps for iOS & Android
- scripts/pay-lightning-address.sh: pay BOLT11/BIP21/LN address via Blocktank
- test/specs/receive-ln-payments.e2e.ts: Appium spec to receive 21+ LN payments
- wdio.no-install.conf.ts: WDIO config that attaches to existing app

Made-with: Cursor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant