To know the exact reason why it is happening so, please open below file:
vendor/magento/module-checkout/Model/PaymentInformationManagement.php
than comment out the try, catch and put code to place order directly as below:
Replace below function
public function savePaymentInformationAndPlaceOrder(
$cartId,
\Magento\Quote\Api\Data\PaymentInterface $paymentMethod,
\Magento\Quote\Api\Data\AddressInterface $billingAddress = null
) {
$this->savePaymentInformation($cartId, $paymentMethod, $billingAddress);
try {
$orderId = $this->cartManagement->placeOrder($cartId);
} catch (\Exception $e) {
//var_dump($e);
throw new CouldNotSaveException(
__('An error occurred on the server. Please try to place the order again.'),
$e
);
}
return $orderId;
}
To
public function savePaymentInformationAndPlaceOrder(
$cartId,
\Magento\Quote\Api\Data\PaymentInterface $paymentMethod,
\Magento\Quote\Api\Data\AddressInterface $billingAddress = null
) {
$this->savePaymentInformation($cartId, $paymentMethod, $billingAddress);
//try {
$orderId = $this->cartManagement->placeOrder($cartId);
/*} catch (\Exception $e) {
//var_dump($e);
throw new CouldNotSaveException(
__('An error occurred on the server. Please try to place the order again.'),
$e
);
}*/
return $orderId;
}
Now, try to place order again. You will be able to see the detailed error in log file or may be in console.