I am getting the same error at checkout, “critical error on website”, error log shows “CRITICAL Uncaught TypeError: Return value of WooCommerce\PayPalCommerce\Button\Assets\SmartButton::get_3ds_contingency() must be of the type string, null returned”
I manually connected my PayPal account and PayPal card processing says my account is not set up for card processing.
I contacted PayPal Merchant technical support who could not see any issues in my Business account of 6+ years. They said it was an problem with the WooCommerce PayPal Payments plugin.
I reinstalled v1.5.1 and the problem went away and seems to be working fine.
I occasionally have orders left as Pending Payment due to MISSING_SHIPPING_ADDRESS, using both v1.5.1 and 1.6.0 (which worked for 24 hours before the above critical error on checkout started happening)
v1.6.0 (when it did work) Debug log shows the customers shipping address is (sometimes) not sent in the API call to PayPal. I have shipping option set to “Force Shipping to Billing Address” in admin settings.