Skip to content

bug: on-chain payment after a dropped electrum connection never broadcasts and shows outcome unknown #1526

Closed

Description

@ovitrif

Twin: synonymdev/bitkit-ios#967
Refs:

What happened?

Bitkit Android uses the same ldk-node Electrum client (0.7.0-rc.74) that left Bitkit iOS unable to broadcast in synonymdev/bitkit-ios#967. When the Electrum server drops the connection while a call is waiting on it, that client never reconnects: wallet sync, fee updates and every broadcast fail with Broken pipe until the node restarts. An on-chain send in that state:

  • fails every broadcast attempt although nothing reached the network;
  • is reported as "outcome unknown" instead of "not sent";
  • is never rebroadcast after the connection comes back.

Expected behavior

  • A lost Electrum connection is rebuilt on the next call, so a send after the drop broadcasts normally.
  • When no broadcast attempt reached the server, Bitkit says the payment was not sent and offers a retry.
  • A payment with an unknown outcome is rebroadcast once the connection is back, while its payment request is still valid.

Steps to Reproduce

  1. Open Bitkit with an on-chain balance and a Paykit payment request (e.g. Pubky Shop checkout).
  2. Leave the app idle or in the background until the Electrum server drops the connection while a sync or fee update is waiting on it.
  3. Pay the request on-chain.

Logs / Screenshots / Recordings

Reproduced at the ldk-node level by a test that drops the Electrum connection with a queued call: every following broadcast fails with three Broken pipe attempts within a millisecond and returns Unknown. iOS device log in synonymdev/bitkit-ios#967.

Bitkit Version

3.0.0 RC2 (ldk-node 0.7.0-rc.74)

Device / OS

Android, all devices (shared ldk-node code)

Reproducibility

Seen on iOS; Android shares the ldk-node code path, not yet seen on an Android device.

Additional context

On-chain via Paykit is the Shop's launch payment path, so this blocks 3.0.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions