The error from $this->getLayout()->getBlock('product.price.render.default') returns false because it cannot find the block with the name product.price.render.default. I have installed One Step Checkout version 4.3.3 and Stripe Payment Gateway version 4.3.1. But I did not get any errors. You can debug more by logging this in the function _formatPrice at line 206:
$writer = new \Zend_Log_Writer_Stream(BP . '/var/log/Layout.log'); $logger = new \Zend_Log(); $logger->addWriter($writer); $logger->info($this->getLayout()->getUpdate()->asString()); $priceStr .= $this->getLayout()->getBlock('product.price.render.default')->renderAmount( $optionAmount, $customOptionPrice, $this->getProduct() );
Then, get this block:
.... <body> <block class="Magento\Framework\Pricing\Render" name="product.price.render.default"> <arguments> <argument name="price_render_handle" xsi:type="string">catalog_product_prices</argument> <argument name="use_link_for_as_low_as" xsi:type="boolean">true</argument> </arguments> </block> </body> ....
Magento creates the product.price.render.default block, so after that, $this->getLayout()->getBlock('product.price.render.default') should not be false. If you cannot find this block or see the following code:
<referenceBlock name="product.price.render.default" remove="true">
then Magento cannot render the price HTML. Maybe some module remove this block.