Клиент Steam может испытывать большие и продолжительные проблемы в работе, вплоть до потери функциональности. Столкнулся с этим, когда стал получать странную ошибку каждые несколько минут. А еще сломался их магазин. Пришлось немного копнуть
Все началось с ошибки, которая стала появляться каждые несколько минут: “Invalid Json Token. Line: 1 Ch:1”, при этом игра автоматически сворачивалась.
Быстрое гугление показало, что с подобным сталкиваются уже несколько лет (с 2016 или раньше)
Та самая ошибка
Есть множество упоминаний на разных ресурсах. В частности, на форуме steamcommunity
Однако с поиском решения проблемы. Присутствует множество однотипных советов:
- переустановите;
- отключите эффекты в игре;
- очистите кэш и т.д.
Кому-то помогло, однако в основном нет.
Мне повезло встретить пост человека, который написал, что полная переустановка Windows, Steam и выкачивание игры ему не помогли. Потому как у меня намерение переустановить Steam и выкачать все с нуля где-то витало, однако размер игры со всеми дополнениями (250+ GB) мотивировал искать дальше.
Самым информативным был чей-то отзыв о том, что включенный VPN помогает (а еще иногда это делает перезагрузка роутера). Быстрая проверка показала, что способ решения включением VPN действительно рабочий. Попутно заметил также, что их магазин ломается в присутствии ошибки. Предположил, что проблема не в каком-нибудь битом конфиг-файле игры, а нечто более глобальное.
В 2020 нормальный магазин должен выглядеть… иначе
Попробовал в настройках сети установить гугловый DNS, в надежде что это проблемы с DNS на стороне провайдера (сталкивался с таким). Но ошибка осталась.
Вспомнив, что магазин Steam это по сути HTML-страничка, отображаемая в их клиенте, запустил Fiddler:
Fiddler — Requests
Сразу бросаются в глаза запросы со статусом 403 на их CDN. В ответ должны были прийти js-скрипты, CSS, контент, но на все запросы сервер отвечает 403 + некий HTML-текст, который я сохранил и открыл:
Упс...
Собственно, искать долго не пришлось, вот и причина. У меня обычный динамический IP. Почему-то для данного IP (а возможно и для всей подсети) firewall Cloudflare считает необходимым требовать заполнить капчу. Обработку ошибок разработчики Steam не предусмотрели.
И даже если бы добавили капчу. Для тех, кто не пользовался Steam, поясню: у них для всех введена обязательная двухфакторная авторизация с подтверждением через email. После этого вводить в магазине капчу в рандомные моменты было бы как минимум странно.
Их сайт в браузере при этом выглядит аналогичным образом: те же запросы, и капчу негде ввести. Если CDN имеет что-то против вашего IP, грузится чистый HTML без стилей и картинок.
Как бы то ни было, общение с тремя сотрудниками службы поддержки результатов не дало.
Ни подробный сценарий с разъяснением и скриншотами, ни пояснения, что первая ошибка (Invalid Json Token) всего лишь одно из проявлений, привязанное к конкретной игре, а сама глобальная проблема кроется в механизме реализации магазина и сайта, не были ими восприняты.
Ответы поддержки были такими:
- переустановите;
- обратитесь к разработчику игры;
- идите к разработчику игры, также мы не можем воспроизвести локально, так что проблема на вашей стороне.
Подробнее их ответы тут:
Сидеть за VPN, это чаще всего увеличивать свой ping и менять страну (что для стима бывает чувствительно в плане совершаемых покупок). Для Cloudflare IP адрес VPN вообще может быть как красная тряпка для быка.
Автор: Михаил