Check whether you form is disabled.
I placed all inputs into a <fieldset> (to control the whole form), and disabled it before reading form data (to prevent changing values). It seems when a form is disabled, new FormData(form) is empty.
<fieldset>
new FormData(form)