Нужно сделать так, чтобы "бэкэнд на тайпскрипт" не падал, а отдавал 500 конкретно косячному запросу и продолжал работу.
Например можно в простейшем случае - завернуть весь колбэк обработки запроса в try/catch (если там есть асинхронные операции без await или блока .catch в Promise - то их внутренности тоже завернуть, содержимое каждой функции по отдельности).
Эксепшен не должен вываливаться до верха стека вызовов.