The "Price" and "Quantity" inputs in the add-ticket-type form only set inputMode="numeric", which is just a mobile keyboard hint — it doesn't block typing letters. Number(ttQuantity) turns non-numeric input into NaN, and JSON.stringify(NaN) serializes to null, so an organizer typing anything non-numeric silently submits quantityTotal: null instead of getting a validation error.
Suggested fix: Add pattern="[0-9]+" (or switch to type="number" min="0") on both inputs, and guard the submit handler with a check that rejects non-finite numeric input before calling the API.
The "Price" and "Quantity" inputs in the add-ticket-type form only set
inputMode="numeric", which is just a mobile keyboard hint — it doesn't block typing letters.Number(ttQuantity)turns non-numeric input intoNaN, andJSON.stringify(NaN)serializes tonull, so an organizer typing anything non-numeric silently submitsquantityTotal: nullinstead of getting a validation error.Suggested fix: Add
pattern="[0-9]+"(or switch totype="number" min="0") on both inputs, and guard the submit handler with a check that rejects non-finite numeric input before calling the API.