I see the situation - after update payment status qty for downloadeble products set up to 0.
As I see it done somewhere else than in OrderProcessingService:
protected virtual void ProcessOrderPaid(Order order)
{
if (order == null)
throw new ArgumentNullException("order");
//raise event
_eventPublisher.Publish(new OrderPaidEvent(order));
// -- after this qty set to 0
//order paid email notification
if (order.OrderTotal != decimal.Zero)
{
//we should not send it for free ($0 total) orders?
//remove this "if" statement if you want to send it in this case
var orderPaidAttachmentFilePath = _orderSettings.AttachPdfInvoiceToOrderPaidEmail ?
_pdfService.PrintOrderToPdf(order) : null;
So I know how to use HandleEvent but I cannot find the correct one.