Are there other reasons for FAILURE_REASON_NO_ROUTE with keysend ? #7793
-
I am able to use lncli to make a keysend payment, but when I try the same payment via python gRPC, it returns FAILURE_REASON_NO_ROUTE. I'm doing the pre_image & payment_hash "thing' explained here and here for sending keysend payments. This is my relevant code to setup the request...
"address" is a string (converted to 33 bytes). "tlvtxt" is the json text of the 7629169 TLV record. I've also tried sending the TLV in hex (like lncli) with the same result. My response from
...followed by...
...which both happen almost instantaneously (from the LND log)...
I don't believe this is a route failure. When I use lncli to the same address with the same TLV, the payment succeeds. The only other possibility (that I can see) is the pre_image / payment_hash setup. Or that I'm using gRPC and the examples are REST (which use b64 encoding). AFAIK, gRPC doesn't need b64. Would a bad request cause a route failure error (even though it passed validation)? Thanks to anyone who can help, Cameron |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 6 replies
-
Take a look at the routing fee option. I think some RPCs have a default value that is sane and others unfortunately have a default value of 0, meaning it's looking for free routes only (which results in no route being found). |
Beta Was this translation helpful? Give feedback.
-
That was the issue. Once I set a But now I'm getting INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS which I suspect is the pre_image/payment_hash setup.
From what I understand, the payment_hash is the sha256 of the (random) 32 bit pre_image. i.e.
...which after I run sha256, matches the payment hash
I also notice that
Is this a clue, or not filled out until the payment succeeds? I can post the entire response results (but it's long). |
Beta Was this translation helpful? Give feedback.
Take a look at the routing fee option. I think some RPCs have a default value that is sane and others unfortunately have a default value of 0, meaning it's looking for free routes only (which results in no route being found).