I have spotted a strange bug in magento 2 with combined orders of downloadable and simple products.
It was observed on a Magento CE 2.3.4 on Ubuntu 18.04 LAMP and on a vanilla Magento 2.4-dev instance.
I run a number of tests, see my result of all test cases:
1. Place an order with simple and downloadable product and payment by paypal website payment standard payment:
Expected result: Order Status processing, invoice created, download available
Actual result:
Order Status processing, invoice created, download not available (this should not be the case, customers expect the download to be available right after payment) If shipping is created, download is available
2. Place an order with simple and downloadable product and payment with check money order and manual invoice creation OR downloadable product only in order, payment with paypal:
Expected and Actual result: Order status processing, download is available
So it looks like there is a difference if the invoice creation is triggered by an extenal payment platform such as PayPal or Stripe.com or if the invoice is created manually in Magento admin. The invoice creation is the required step to enable downloads.
I have not tested all other possible combinations of product types in one order (grouped, virtual, bundle).
Any idea how this can be fixed? Link to github issue: https://github.com/magento/magento2/issues/27590