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
Two live wallets (Android emu andi ↔ iOS sim ios) each created 2 private payment requests (1k Lightning + 25k on-chain) and paid the other side’s requests. All 4 payments settled. Each Payment Requests list then showed 3 rows, and they did not match:
Android: 1× 25 000 + 2× 1 000 (missing one 25k)
iOS: 2× 25 000 + 1× 1 000 (missing one 1k)
The missing 25k did pay (Android → iOS on-chain e418fd9b…, iOS activity +25 000, proof queued). The missing 1k did pay (iOS → Android LN, proof queued). So this is a history-row drop, not a failed payment.
Not same-amount overwrite in the app list: IDs are paymentRequestId + counterparty + receiverPath. Hypothesis: after fulfill, one side drops the row when localRole is missing/unknown (history mapping skips those).
Seen twice (2026-09-01 and 2026-09-02) on #1178 / #683 builds.
Expected behavior
After 4 created + 4 paid requests between the same pair, both devices show the same 4 rows (2× 1k + 2× 25k).
Steps to Reproduce
Two wallets, private Paykit + contact payments enabled, same contact pair.
Android creates 1k Lightning request; iOS pays it.
iOS creates 1k Lightning request; Android pays it.
Android creates 25k on-chain request; iOS pays it (or the reverse order used in the recording).
iOS creates 25k on-chain request; Android pays it.
What happened?
Two live wallets (Android emu
andi↔ iOS simios) each created 2 private payment requests (1k Lightning + 25k on-chain) and paid the other side’s requests. All 4 payments settled. Each Payment Requests list then showed 3 rows, and they did not match:The missing 25k did pay (Android → iOS on-chain
e418fd9b…, iOS activity +25 000, proof queued). The missing 1k did pay (iOS → Android LN, proof queued). So this is a history-row drop, not a failed payment.Not same-amount overwrite in the app list: IDs are
paymentRequestId + counterparty + receiverPath. Hypothesis: after fulfill, one side drops the row whenlocalRoleis missing/unknown (history mapping skips those).Seen twice (2026-09-01 and 2026-09-02) on #1178 / #683 builds.
Expected behavior
After 4 created + 4 paid requests between the same pair, both devices show the same 4 rows (2× 1k + 2× 25k).
Steps to Reproduce
Logs / Screenshots / Recordings
Screen.Recording.2026-09-02.at.09.50.20-gh.mp4
Android log: logs-android.zip
iOS log: bitkit_logs_2026-09-02_08-09-31.zip
Bitkit Version
Android #1178 (
10ff0df). Cross-tested vs iOS #683 (489b1e6).Device / OS
Pixel emulator (paired with iPhone 17 simulator)
Reproducibility
Always (2/2 sessions)
Additional context
Queued a Paykit payment proof for private delivery). This bug is list/history only.