Почему функция на python выдает ошибку спустя 40 минут работы?
Ну а что тут разбираться, у вас стек переполняется при увеличения числа вложенных вызовов. Память как бы не бесконечная. Вам скорее всего надо это на бесконечный цикл переписать
Так в except рекурсивно вызываете. А через 40 минут наверное начинает запрос выдавать ошибку, возможно из-за протухания токена.