Uh oh!
There was an error while loading. Please reload this page.
fix: stop auto-accepting stale monitors - #1155
Conversation
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Greptile SummaryThis PR removes the Lightning node startup fallback that disabled LDK’s stale-channel-monitor safety check after a
Confidence Score: 5/5The PR appears safe to merge, with the newly enforced startup failure matching the stated security objective. The change removes only the explicit stale-monitor bypass; ordinary node construction and existing BuildException-to-LdkError propagation remain intact, and no actionable regression was identified.
|
| Filename | Overview |
|---|---|
| app/src/main/java/to/bitkit/services/LightningService.kt | Removes the intentional stale-monitor recovery retry while retaining existing builder selection and build-error propagation. |
| changelog.d/next/stale-monitor.security.md | Accurately documents that storage mismatches no longer cause startup with outdated channel monitors. |
Reviews (1): Last reviewed commit: "fix: stop auto-accepting stale monitors" | Re-trigger Greptile
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
jvsena42
commented
Aug 13, 2026
jvsena42
left a comment
There was a problem hiding this comment.
Self contained PR, migrations passing https://github.com/synonymdev/bitkit-android/actions/runs/31701528479
Description
This PR restores fail-closed Lightning startup when stored channel monitors are stale relative to the channel manager.
DangerousValueretry that enabled stale-monitor recovery.The retry was added in 2.1.2 to recover wallets affected by the 2.1.0 RN monitor overwrite. Current ldk-node versions protect newer stored monitors from stale migration data, and those affected wallets are assumed recovered. A future storage mismatch now fails node construction before startup or chain processing. Stale-monitor acceptance stays at the ldk-node default (
false).Related: https://github.com/synonymdev/audit/issues/55
Companion: synonymdev/bitkit-ios#664
Preview
N/A, no UI changes.
QA Notes
Manual Tests
regression:Launch an existing wallet with channels: Lightning node starts normally and balances/channels appear.regression:Force-quit and relaunch: node starts without a stale-monitor recovery log.DangerousValueand no node starts.Automated Checks