I have done my homework and I know what the problem is with my website, but I don't know how to solve it
The Symptoms
When a new user clicks on place order, he receives an empty error message preventing him from proceeding. see the image below
The fact that it happens only to new users tells me that this is a recent problem but I don't remember what has changed since.
The Error
The error that I see in the apache log after this happens is the following:
PHP Fatal error: Uncaught Error: Call to a member function getCarrier() on boolean in /var/www/public/vendor/magento/module-checkout/Model/PaymentInformationManagement.php:119
Stack trace:
#0 /var/www/public/vendor/magento/framework/Interception/Interceptor.php(58): Magento\\Checkout\\Model\\PaymentInformationManagement->savePaymentInformation(1, Object(Magento\\Quote\\Model\\Quote\\Payment\\Interceptor), Object(Magento\\Quote\\Model\\Quote\\Address\\Interceptor))
#1 /var/www/public/vendor/magento/framework/Interception/Interceptor.php(138): Magento\\Checkout\\Model\\PaymentInformationManagement\\Interceptor->___callParent('savePaymentInfo...', Array)
#2 /var/www/public/vendor/magento/framework/Interception/Interceptor.php(153): Magento\\Checkout\\Model\\PaymentInformationManagement\\Interceptor->Magento\\Framework\\Interception\\{closure}(1, Object(Magento\\Quote\\Model\\Quote\\Payment\\Interceptor), Object(Magento\\Quote\\Model\\Quote\\Address\\Interceptor))
#3 /var/www/public/generated/code/Magento/Checkout/Model/PaymentInformationManagement/Interceptor.ph in /var/www/public/vendor/magento/module-checkout/Model/PaymentInformationManagement.php on line 119
The Problem
After extensive debugging, I have identified the problem as that Magento 2 is no longer saving new rows to the table quote_shipping_rate
. That's why existing customers who already have their records saved in this table are able to checkout with no problem. But for new customers (or guests) this problem occurs.
I don't know where Magento 2 is supposed to insert new records in this table even after debugging (I'm using XDebug) and I don't know what causes it to stop inserting the new records.
Any Help will be highly appreciated.
The list of all modules and extensions I have can be found here: https://pastebin.com/u1uigaSL
(Magento version is 2.2.8)