You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Unsent manual request keeps a blocked payment reservation #1675
A manual incoming Bitcoin request B reserves an allowance-ledger attempt before on-chain admission. If a retained on-chain attempt A blocks B before beforeSendAttempt, the failure handler records B as UNKNOWN even when A belongs to a different request. B has no transaction ID/payment hash and can then be blocked by PaymentAlreadyRecorded on retry.
Confirmed on master 0f44d93 by extending the existing blocked Shop recovery unit test with a real pre-dispatch rejection (callback not invoked): the expected failed reservation was instead recorded unknown. The original A recovery assertions still pass. This is inherited code, not introduced by the loaded-account filter. Reported in Android #1656 review.
Release only B's definitely undispatched reservation. Preserve A's recovery state, same-request/missing-blocker/unreadable-state uncertainty, authorization and duplicate-payment safeguards. Check the matching iOS path. Native reproduction has not been run by the author; no real funds are required.
Triage: 3.2.0. It's a retry edge case in inherited code, found by a unit test with no native reproduction yet, and 3.1.0 ships today. The matching iOS path still needs checking.
Activity
ovitrif commentedon Oct 23, 2026
Triage: 3.2.0. It's a retry edge case in inherited code, found by a unit test with no native reproduction yet, and 3.1.0 ships today. The matching iOS path still needs checking.
ovitrif commentedon Oct 23, 2026
iOS twin: synonymdev/bitkit-ios#1106 (3.2.0).