-
Notifications
You must be signed in to change notification settings - Fork 427
Description
OffersMessageHandler may handle an InvoiceError in response to either an InvoiceRequest or Bolt12Invoice sent via the onion message reply path. It may also send an InvoiceError in such scenarios. Currently, however, it doesn't update OutboundPayments (when applicable) or generate any Events, when appropriate.
Different scenarios must be considered:
- sending vs receiving the
InvoiceError - whether the
InvoiceErroris in response to anInvoiceRequestorBolt12Invoice - whether the
InvoiceErrorcorresponds to anOfferorRefund
Implementing the correct behavior may involve providing additional information in the reply path such that the received InvoiceError can be correlated with a payment.
For example, when receiving an InvoiceError in response to an InvoiceRequest, OutboundPayments should be updated and generate an Event::InvoiceRequestFailed. However, this requires knowing the PaymentId when handling the InvoiceError. To implement this properly, the reply path must not only contain this data, but the handler interface must change to provide this information.
There may also be a case where we send a Bolt12Invoice without a reply path, so there won't be an InvoiceError response. Fixing this, if needed, would require further changes to the handler interface to allow for adding a reply path.