Если "правильный" код работает "неправильно", то он вызывается в "неправильное время".
Вот для начала
https://habr.com/ru/companies/yandex/articles/718084/
От себя скажу упрощенно.
Страница это обычно куча подключаемых файлов. Броузер дотягивает их в 5 потоков.
У вас может все нормально работать при первой загрузке страницы, а при возврате падать в ошибку.
Тут проявляется работа кеша. Код из выше подключенного скрипта успевал отработать пока грузился следующий.
И бонус. Синтаксическая ошибка в каком то левом месте может аукнуться не работой всего остального кода.