Возможно, потому что был тайм-аут сеанса?ГДЕ использует адрес электронной почты, если он недействителен (не там), то вы, вероятно, не получите обновление.
Возможно, вам следует проверить идентификатор транзакции (или аналогичный).Я полагаю, у вас есть что-то подобное до начала транзакции?
edit: Также сохраните, если произойдет ошибка, и попробуйте сохранить переменные, которые вам тоже нужны.Это значительно облегчает выявление проблемы.Для этого используйте файл журнала, например.