Class PaymentSendFailure.PartialFailure

  • Enclosing class:
    PaymentSendFailure

    public static final class PaymentSendFailure.PartialFailure
    extends PaymentSendFailure
    Some paths which were attempted failed to send, though possibly not all. At least some paths have irrevocably committed to the HTLC and retrying the payment in full would result in over-/re-payment. The results here are ordered the same as the paths in the route object which was passed to send_payment, and any Errs which are not APIError::MonitorUpdateFailed can be safely retried (though there is currently no API with which to do so). Any entries which contain Err(APIError::MonitorUpdateFailed) or Ok(()) MUST NOT be retried as they will result in over-/re-payment. These HTLCs all either successfully sent (in the case of Ok(())) or will send once channel_monitor_updated is called on the next-hop channel with the latest update_id.
    • Field Detail

      • results

        public final Result_NoneAPIErrorZ[] results
        The errors themselves, in the same order as the route hops.
      • failed_paths_retry

        @Nullable
        public final RouteParameters failed_paths_retry
        If some paths failed without irrevocably committing to the new HTLC(s), this will contain a [`RouteParameters`] object which can be used to calculate a new route that will pay all remaining unpaid balance. Note that this (or a relevant inner pointer) may be NULL or all-0s to represent None
      • payment_id

        public final byte[] payment_id
        The payment id for the payment, which is now at least partially pending.