diff --git a/src/node/txdownloadman_impl.cpp b/src/node/txdownloadman_impl.cpp index d3f1b7b4030..61eefea5994 100644 --- a/src/node/txdownloadman_impl.cpp +++ b/src/node/txdownloadman_impl.cpp @@ -186,7 +186,11 @@ bool TxDownloadManagerImpl::AddTxAnnouncement(NodeId peer, const GenTxid& gtxid, return AlreadyHaveTx(GenTxid::Txid(txid), /*include_reconsiderable=*/false); }); - if (unique_parents.empty()) return true; + // The missing parents may have all been rejected or accepted since the orphan was added to the orphanage. + // Do not delete from the orphanage, as it may be queued for processing. + if (unique_parents.empty()) { + return true; + } if (MaybeAddOrphanResolutionCandidate(unique_parents, wtxid, peer, now)) { m_orphanage.AddAnnouncer(orphan_tx->GetWitnessHash(), peer);