There is bug in the current spec, whereby merchant can't signal payer-related fixes via updateWith():
// user tries to fix email
response.onpayerdetailschange = ev => {
if (!isValidPayerDetails(response)) {
const payerErrors = getPayerErrors(response);
// Oh wooops, `payerErrors` doesn't exist on `PaymentDetailsUpdate`
ev.updateWith({ payerErrors });
}
}
Same applies to paymentMethod errors.