Я подозреваю, что следующий сценарий.
Персона A : успешно заявлен вопрос, транзакция завершена успешно.
Лицо B : невозможно запросить вопрос, ваш код (обратный вызов транзакции) заканчивается ошибкой. Это повторяется до пятикратного ограничения, но ваш код не справляется с этим должным образом и каждый раз дает сбой. После лимита 5 все обещание Транзакции возвращается с ошибочным ответом.
Чтобы исправить свой код, вы должны успешно завершить транзакцию для Лица B (без претензий), а затем проверить, успешно ли он / она задал вопрос. Он будет выполняться следующим образом:
Лицо A : успешно получает вопрос в 1 раунде транзакции
Персона B : теряет условие гонки в 1 раунде транзакции, транзакция выполняется во второй раз, потому что за это время произошла запись. Во втором раунде вы обнаруживаете, что он уже заявлен, и изящно завершаете транзакцию без претензий.
Надеюсь, это поможет.