I see in my reservation table some products' stocks have been compensated when it's invoiced and some when it's shipped.

I ran the CLI commands below, and I don't see any inconsistencies.

php -d memory_limit=-1 bin/magento inventory:reservation:list-inconsistencies -r -c | xargs -L1 php -d memory_limit=-1 bin/magento inventory:reservation:create-compensations

Why it's happening? Shouldn't products' stock be compensated when it's shipped only?

1 Answer 1


By default, the reservation cleanup will be made via a SQL query on a cronjob task running daily at midnight.

The system creates a reservation for each product when the following events occur:

  • A customer or merchant places an order.
  • A customer or merchant fully or partially cancels an order.
  • The merchant creates a shipment for a physical product.
  • The merchant creates an invoice for a virtual or downloadable product.
  • The merchant issues a credit memo.

So you probably have physical and virtual products in your store. If you just have physical products, make sure you have your Composer packages updated and there's no third-party tool changing the out-of-the-box inventory, sales, and catalog logic.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.