Клиент 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) всего лишь одно из проявлений, привязанное к конкретной игре, а сама глобальная проблема кроется в механизме реализации магазина и сайта, не были ими восприняты.

Ответы поддержки были такими:

  • переустановите;
  • обратитесь к разработчику игры;
  • идите к разработчику игры, также мы не можем воспроизвести локально, так что проблема на вашей стороне.

Подробнее их ответы тут:

support


Сидеть за VPN, это чаще всего увеличивать свой ping и менять страну (что для стима бывает чувствительно в плане совершаемых покупок). Для Cloudflare IP адрес VPN вообще может быть как красная тряпка для быка.