Skip to content

Update payment and generate Event from OffersMessageHandler #2837

Closed
@jkczyz

Description

@jkczyz

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 InvoiceError is in response to an InvoiceRequest or Bolt12Invoice
  • whether the InvoiceError corresponds to an Offer or Refund

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions