Here is a sampling of failure messages from different #Lightning wallets when attempting to pay an already paid invoice.

Notice how all of them display a different message, but none of them say that the invoice has or may have already been paid.

This is a confusing experience for new users, and it seems to come up repeatedly when someone posts an invoice in a note.

I’m throwing this challenge out to developers to find a way to improve this.

nostr:npub1u8lnhlw5usp3t9vmpz60ejpyt649z33hu82wc2hpv6m5xdqmuxhs46turz nostr:npub1p4kg8zxukpym3h20erfa3samj00rm2gt4q5wfuyu3tg0x3jg3gesvncxf8 nostr:npub1xnf02f60r9v0e5kty33a404dm79zr7z2eepyrk5gsq3m7pwvsz2sazlpr5 nostr:npub1hcwcj72tlyk7thtyc8nq763vwrq5p2avnyeyrrlwxrzuvdl7j3usj4h9rq nostr:npub1ey6qdmvzcgcsr883m9nspzz0mm037l26xtardzcskfsvc6gc7jssm9szvp

Thoughts? nostr:note1l37kyuh2vdn7rukpr9jr4cjudx08t3ldk6s5u4gyrscftgl6av6s8us868

Reply to this note

Please Login to reply.

Discussion

What a great point. Should be an easy enough fix lol

Not a single wallet has gotten it right yet.

Do you think it’s by defaulting to a generic message and covering a wider range of use cases?

Or just a dev <> end user disconnect?

For mutiny if we've paid the invoice already you should get a different error. If someone else paid the invoice it's impossible for us to know.

At minimum I’m just suggesting a more user-friendly message.

We know it's not expired and 99.9% of the time it failed because it couldn't find a route, not that someone else paid it.

maybe add an action.. "No route found. Try again." ?

You can but normally all routes have been exhausted

what does that mean in practice, in simple words

There's no way to make the payment

new invoice must be made for this payment?

No, likely need channels

“Could not pay the invoice. There is no route, or it has already been paid.”

I can’t game out every scenario, but I’m sure you guys can come up with some clearer general error messaging.

We give an error message of exactly what happened, I'm not sure how it can be more clear.

The error message says “Failed to find route” which is simple but not user-friendly because it doesn’t address the problem they are having, so they comment under the invoice, “It didn’t work.” and this has the potential to discourage people and make them think Lightning doesn’t work well, because they don’t understand what went wrong. A more descriptive message would go a long way here. It helps to put yourself in the shoes of the newest of users who don’t know what routes are, they just see something that looks broken.

We could put "failed to pay invoice" but that's the same thing with less info. The alternative you suggested is just wrong, not sure if there is a better alternative.

What was wrong, the phrasing? Help me understand because as a user it seems very opaque.

I understand, but curious as to why it couldn’t say:

“Could not pay the invoice. There is no route, or it may have been paid.”

That way you’re not giving an absolute. Just thinking of user experience.

I’m just trying to solve this UX problem:

nostr:note10lvqwsw8wkf5ev8s6hzj53esyg8ewyuw3e3jpl2aqt9dvxyurluqjlml5p

I think you're just hung up on this issue of someone else paying the invoice which shouldn't happen.

What’s the solution, then? Paid invoices in notes still appear payable, and when the second person tries to pay it, they often get confused and gripe about it.

Think of it like a railroad. There is no route (channel) available connecting A to Z

Out of curiosity, I tried paying an expired invoice and got the same error message. So if you do have a way to know if it’s expired vs. unable to find a route, I think it would be useful to display that here.

Okay yeah that's something we can fix

After reading through this, it seems to me the crux ofnthe problem is that the error itself is unknown so wallets cannot provide more details and remain truthful.

The UX side of this issue is users don't understand. They don't necessarily need more accurate info on what went wrong, but rather simply thay something did go wrong and what miiiiight be some likely culprits. Most users dont care what went wrong technically and its not the wallets job to educate but nudge the user in a direction so they can ask for help knowlegably.

I propose a message such as:

----

Unknown Error. Payment failed and was not routed.

Potential reasons:

Paying an invoice that is already paid.

Payment cannot reach destination. No viable routes.

[Help link with possible culprits so user can knowlegably ask for help]

----

This, precisely. Users don’t know what they don’t know and shouldn’t be expected to know it.

These messages are confusing but perhaps we're trying to encourage the wrong behavior. Traditionally an invoice is not shared publicly but shared with one person or org that is meant to pay it.

We already have zaps that work great when many wish to contribute to somebody. Perhaps the best course of action is to remove invoices from prominent kinds of posts.