It turns out the issue was caused by the following modification:
// increase the size of the JSON request
app.use(json({ limit: '50mb' }));
app.use(urlencoded({ extended: true, limit: '50mb' }));
The fix was to apply specific behavior for the /v2/payments/stripe-webhook route by using the raw body parser
import { raw } from 'express';
app.use('/v2/payments/stripe-webhook', raw({ type: '*/*' }));
NOTE :This issue was fixed a while ago, and this is the debugging I remember for now.