eclair-mobile icon indicating copy to clipboard operation
eclair-mobile copied to clipboard

Destination that is reachable for LND is unreachable for Eclair going through that LND node

Open merehap opened this issue 6 years ago • 8 comments

While trying to send funds to Community Jar (https://www.coinpanic.com/Lightning/CommunityJar) using the Eclair mainnet mobile wallet, I get the error message "payment fee was below the minimum required by the channel". My Eclair wallet only has one channel, which is open to my LND node. My LND node is able to find a route to, and pay, Community Jar with no issue (when I initiate the payment on the LND node, rather than with Eclair). Ideally Eclair should be able to find a route in every case that LND is able to.

Note that my LND node is well-connected to the network, with large channel sizes, and their is a large channel that I opened from my Eclair Wallet to my LND node. The problem almost certainly lies with Eclair's route selection and not with LND.

How to repro:

  1. Using the Eclair android wallet, open a channel with my LND node (don't have any other channels open): 03aeca3b52e028b68c67d01a62eede65df55bda5cd04e4341ac42688d25fc151cd@73.239.115.62:9735
  2. Generate invoice with CommunityJar (https://www.coinpanic.com/Lightning/CommunityJar).
  3. Attempt to pay invoice using Eclair.

Example CommunityJar invoice: lnbc10040n1pdvd060pp5jms0h3vc79lngfqvej3mzndcxm3tpj6nlugp4d2jhn3fuekwsdmsdp9gdhkjmnsv9hxjceqgdhk6mt4de5hg7fqffshycqzys4jf4kayrkeptzv8rfl874jxfcwy3npq24hynrz0lg8jk8sgcz5n9nr29y649ecz82vgztf9wh3w47fksgvr2cm5hel6r2530le9kadcp4268nt

merehap avatar Apr 06 '18 02:04 merehap

Screenshots of the error messages I receive:

screenshot_2018-04-05-20-17-03

screenshot_2018-04-05-20-17-11

merehap avatar Apr 06 '18 03:04 merehap

I will try and reproduce the problem with eclair-wallet and our desktop app (they use the same core libraries and route selection code) and update this ticket. Have you been able to buy a very cheap article on yalls (mainnet) ?

sstone avatar Apr 06 '18 15:04 sstone

@sstone Yes, I've bought two yalls articles on the mainnet using the same Eclair wallet routed through the same LND node. At 151 satoshis they are slightly cheaper than the 1000 satoshi sends I've sent to yalls.

I just attempted a 151 satoshi send to Community Jar using the same setup and it failed too with "payment fee was below the minimum required by the channel".

merehap avatar Apr 06 '18 16:04 merehap

I also just reproduced this for a node that my LND node is directly connected to, BitcoinShirt (039195c0969d69f9a25839cb44bd5e858bd9e3971638959f0e657bffa6692b43f1@13.92.141.163:9735). I first attempted to pay with Eclair through my LND node, which failed, then I tried to pay directly using my LND node, and that succeeded.

Note that the failure message was only "processing node does not know the next peer in the route", with no mention of the payment fee being too low.

For contrast, I was able to pay a large Bitrefill payment using Eclair through my LND node.

Same steps to repro as before, as long as you don't mind buying something on the BitcoinShirt store. Otherwise (if you don't want to spend some money on something) you could have me open a channel with one of your nodes, then try to route a payment from Eclair to my node, to your other node, and see it fail.

merehap avatar Apr 06 '18 22:04 merehap

I also just reproduced this for a node that my LND node is directly connected to, BitcoinTshirt (039195c0969d69f9a25839cb44bd5e858bd9e3971638959f0e657bffa6692b43f1@13.92.141.163:9735). I first attempted to pay with Eclair through my LND node, which failed, then I tried to pay directly using my LND node, and that succeeded.

It is nice to be able to reproduce in a simpler setup like that. Can you find out what channel lnd uses when you make a direct payment?

Note that the failure message was only "processing node does not know the next peer in the route", with no mention of the payment fee being too low.

What would be great is have full details (Origin/Channel) and compare it to the channel lnd was using when it sent the payments. It seems that eclair is trying to route through a channel that lnd doesn't know about, which is weird because eclair must have heard of it from lnd since it is the only node eclair is connected to.

pm47 avatar Apr 07 '18 09:04 pm47

LND uses the most direct route, with no intermediaries (for the BitcoinShirt store case). It prints the hops out so I could verify this.

Since the Eclair wallet doesn't print the hops attempted out, I'm not sure which route it attempted.

merehap avatar Apr 08 '18 20:04 merehap

@merehap knowing what route lnd took, and what route eclair attempted to use (using the screenshot like you did before) would help a lot.

For example, if for some reason the channels open by lnd were not announced (not enough confirmations), then lnd would be able to use them, but eclair wouldn't. That's what I'm trying to figure out. Could you try to reproduce and report back that info?

pm47 avatar Apr 09 '18 12:04 pm47

I was getting what is probably the same issue, with mainnet Bitrefill node as the peer (wallet version 0.3.4).

On June 22nd, shortly after a channel being open, a payment to satoshis.place worked just fine, but since 26th and on such payments fail with one attempt and the message in question ("payment fee was below the minimum required by the channel").

I eventually deleted the network DB, restarted the app and let it re-sync the gossips. After that the payment worked just fine.

Perhaps the problem is that the network DB gets critically stale when the app is closed for days, i.e. during which an event like a fee excursion happens that makes the channels update en masse? The peer's ability to find routes is irrelevant in such a case, since it's the wallet's job to construct one.

If so, a solution might be to add an explicit resync button to the UI, and clarify the error message to hint at it's use.

Or alternatively (and less scary for laypeople), to automatically trigger a resync if the app have been closed for longer than X hours.

artlav avatar Jun 28 '18 20:06 artlav