Обычно это происходит по той причине, что пользователь отправил запрос на сервер, запрос ушел, а ответ еще не пришел (и страница висит), пользователь еще раз кликает на кнопку "отправить".
Сделайте токены, которые будут уникальны для каждого экземпляра пользователя, и с которых нельзя отправлять более одного запроса (генерация токенов и их проверка должна быть на сервере). Или же блокируйте кнопку "отправить" после клика, и как придет ответ или пройдет таймаут, разблокируйте ее и выводите нужное сообщение или действие. Но у вас явно плохо работает бэк, не так, как вы думаете.