I'd suggest to extend the melt quote structure with an optional error string:
{
"quote": "019e6d5a-2347-7000-89e2-35fe79f92c0e",
"request": "lnbc100n1p3kdrv5sp5...",
"amount": 10,
"unit": "sat",
"fee_reserve": 2,
"state": "UNPAID",
"expiry": 1701704757,
"error": "Lightning payment failed: no route"
}
Reasoning:
After prefer_async has been added to the NUTs, wallet effectively lost the possibility to get any information why async payment has not been executed. This results into poor user experience and increased support efforts (e.g. there is complete darkness whether the error was on wallet, mint or lightning side).
As a small positive side effect, existence of error helps to differentiate clean UNPAID quotes to quotes that were probed yet remain UNPAID.
I'd suggest to extend the melt quote structure with an optional error string:
Reasoning:
After prefer_async has been added to the NUTs, wallet effectively lost the possibility to get any information why async payment has not been executed. This results into poor user experience and increased support efforts (e.g. there is complete darkness whether the error was on wallet, mint or lightning side).
As a small positive side effect, existence of error helps to differentiate clean UNPAID quotes to quotes that were probed yet remain UNPAID.