In a current project we need more complex logic to determine when to set the VAT to 0%, so we do this with an adjuster added through a module.
We are using the exact method described on https://craftcms.com/docs/commerce/3.x/extend/adjusters.html#replacing-an-adjuster (The only differences are that we use some business logic to decide when the adjuster is relevant, and that our adjuster applies to the Tax of the whole order, so we don't set a line item)
This used to work, but since a recent update (Commerce 3.2.7 to 3.4.15), we always get an error when this adjuster if applied when the user submits to the 'commerce/payments/pay' action. The error is 'Something changed with the order before payment, please review your order and submit payment again.'
When the adjuster is not used, payment proceeds as normal.
If I check the code, it seems that this happens because of the 'if($totalPriceChanged' check in the PaymentsController class.
Have there been recent changes to the order validation that mean we need to approach this differently, or is there something else that I am missing?