File tree Expand file tree Collapse file tree 1 file changed +8
-2
lines changed Expand file tree Collapse file tree 1 file changed +8
-2
lines changed Original file line number Diff line number Diff line change @@ -641,8 +641,14 @@ impl OutboundPayments {
641
641
} else if has_err {
642
642
// If we failed to send any paths, we should remove the new PaymentId from the
643
643
// `pending_outbound_payments` map, as the user isn't expected to `abandon_payment`.
644
- let removed = self . pending_outbound_payments . lock ( ) . unwrap ( ) . remove ( & payment_id) . is_some ( ) ;
645
- debug_assert ! ( removed, "We should always have a pending payment to remove here" ) ;
644
+ if !self . pending_outbound_payments . lock ( ) . unwrap ( ) . get ( & payment_id)
645
+ . map_or ( false , |payment| payment. is_retryable ( ) )
646
+ {
647
+ // If we failed to send any paths, we should remove the new PaymentId from the
648
+ // `pending_outbound_payments` map, as the user isn't expected to `abandon_payment`.
649
+ let removed = self . pending_outbound_payments . lock ( ) . unwrap ( ) . remove ( & payment_id) . is_some ( ) ;
650
+ debug_assert ! ( removed, "We should always have a pending payment to remove here" ) ;
651
+ }
646
652
Err ( PaymentSendFailure :: AllFailedResendSafe ( results. drain ( ..) . map ( |r| r. unwrap_err ( ) ) . collect ( ) ) )
647
653
} else {
648
654
Ok ( ( ) )
You can’t perform that action at this time.
0 commit comments