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 @@ -652,8 +652,14 @@ impl OutboundPayments {
652
652
} else if has_err {
653
653
// If we failed to send any paths, we should remove the new PaymentId from the
654
654
// `pending_outbound_payments` map, as the user isn't expected to `abandon_payment`.
655
- let removed = self . pending_outbound_payments . lock ( ) . unwrap ( ) . remove ( & payment_id) . is_some ( ) ;
656
- debug_assert ! ( removed, "We should always have a pending payment to remove here" ) ;
655
+ if !self . pending_outbound_payments . lock ( ) . unwrap ( ) . get ( & payment_id)
656
+ . map_or ( false , |payment| payment. is_retryable ( ) )
657
+ {
658
+ // If we failed to send any paths, we should remove the new PaymentId from the
659
+ // `pending_outbound_payments` map, as the user isn't expected to `abandon_payment`.
660
+ let removed = self . pending_outbound_payments . lock ( ) . unwrap ( ) . remove ( & payment_id) . is_some ( ) ;
661
+ debug_assert ! ( removed, "We should always have a pending payment to remove here" ) ;
662
+ }
657
663
Err ( PaymentSendFailure :: AllFailedResendSafe ( results. drain ( ..) . map ( |r| r. unwrap_err ( ) ) . collect ( ) ) )
658
664
} else {
659
665
Ok ( ( ) )
You can’t perform that action at this time.
0 commit comments