Добавлю про второй случай, у Алины скорее он и есть, раз код с почты просят.
Сессия у крупных сервисов держится на трёх ногах: кука, отпечаток, адрес выхода. Кука до утра доезжает нормально, дальше начинается интересное. Адрес между запусками уезжает, если он берётся из списка на лету и скрипт каждый раз тянет первую попавшуюся строку. Сервис видит знакомую куку с незнакомого направления и просит подтвердить.
Второе место, где это ломается: ночное обновление браузера. Версия в заголовке поменялась, набор шрифтов после обновления системы тоже сместился, и сверка на стороне сайта даёт другой ответ.
Проверяется просто. Пишите в файлик две строки перед закрытием и две после старта: адрес выхода и версию браузера. Утро, когда попросят код, сразу подсветит, что съехало.