Как я исправил сбой Microsoft Store в Windows (и при чём здесь Python)

в 12:21, , рубрики: lantern, microsoft, Microsoft Store, pip, python, vpn, windows, пакетный менеджер, прокси

Весной 2022 года у меня неожиданно перестал работать Microsoft Store. Вместо загрузки списка приложений (хотя бы бесплатных) просто отображалось сообщение о невозможности загрузить страницу и код ошибки: 0x80131500.

Скриншот окна Microsoft Store при сбое. Страница не загружается, доступен только код ошибки.

Скриншот окна Microsoft Store при сбое. Страница не загружается, доступен только код ошибки.

Вместе с магазином приложений остановились все классические приложения Microsoft на компьютере с Windows (Skype и Teams), а также APPX-приложения, получавшие через него обновления. И я остался без любимых Gardenscapes.

Безуспешный поиск причины

Поначалу я не обращался никуда и не пытался решать проблему. Первая половина 2022 года сопровождалась введением санкций и ограничений, в том числе со стороны Microsoft, и я подумал, что компания отключила вообще весь магазин — намеренно или случайно. А в силу зависимости от него отключились все остальные приложения Майкрософт и приложения, установленные из этого магазина.

Однако год спустя мне стало ясно, что не в санкциях дело. Другие пользователи Windows 10 буквально по соседству от меня сообщали, что у них Microsoft Store работает нормально, недоступны только платные приложения. Стало ясно, что сбой только у меня.

Это сподвигло меня написать в официальную группу Microsoft в социальной сети VK — «Microsoft для всех». Там сначала предложили решение в «линуксоидном» духе — зайти в PowerShell и ввести команду:

  Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)AppXManifest.xml"}

Это не помогло.

Далее мне было предложено использовать стандартную системную утилиту «Средство устранения неполадок» — с тем же результатом. В качестве запасного метода был рекомендован сброс настроек приложения — он тоже не помог.

Вся эта переписка происходила на фоне загруженности меня и компьютера рабочими задачами (я фрилансер). Поэтому суммарно она тянулась не один месяц, а отчитаться о повторной неудаче я просто забыл.

Прошло почти два года без Skype и Gardenscapes. Наступил 2024 год...

Неожиданная развязка: pip даёт подсказку

Я занимаюсь биоинформатикой, и у меня на тот самом компьютере установлен Python. Сам он устанавливался из того же Microsoft Store, поэтому пакетного менеджера conda нет, а есть только входящий в базовую комплектацию pip. Но биоинформатических задач на Python в этот период было мало: я вёл только свой небольшой проект с минимальным программированием и почти не требующий установки библиотек. А в университете я преподавал вообще биохимию — какие там библиотеки...

В начале 2024 года я столкнулся с необходимостью leave academia и стал искать работу в том числе в data science. Одна из фирм согласилась меня проверить и отправила тестовое задание.

Я ожидал, что для его выполнения мне потребуется экипировать библиотеками по полной, а у меня не было даже интерактивного блокнота. Я зашёл в командную строку и привычно набрал

pip install notebook

Вместо установки пакета pip вывел длинное сообщение об ошибке, заканчивающееся на:

ValueError: check_hostname requires server_hostname

Та же самая ошибка воспроизводилась при попытке установить тем же способом другие библиотеки.

Мне сразу стало ясно, что загадочный сбой вывел из строя все жившие в системе пакетные менеджеры — они больше почему‑то не могли связаться со своими серверами, и это были звенья одной цепи.

Но описание ошибки в pip — «check_hostname requires server_hostname» было более информативно... и по свободному ПО, конечно, больше написано в Интернете.

Банальное гугление по этой фразе вывело меня на рекомендации проверить настройки системного прокси. И да, он оказался включён. При этом на момент запуска pip все VPN были выключены.

Выключение системного прокси сразу решило проблему — ожили Microsoft Store, остальные приложения Майкрософт и APPX‑приложения. Проблема была решена.

Ищем и наказываем виновника

Правда, на следующий день, при новом включении компьютера, системный прокси включился снова, вызвав ту же ошибку. Несколько дней подряд я просто выключал его сразу каждый запуск компьютера, возвращая любимые приложения к жизни. Но планово решил найти виновника. Вдруг вирус?

Вначале я проверил приложения в автозагрузке системы. В автозагрузке на тот момент жил VPN Lantern. Это был не единственный и не любимый VPN, но так уж повелось — весной 20 222 года он был установлен (по понятным причинам) и тогда сразу прописал себя в автозагрузку. Выписывать его я оттуда не стал, а зря.

Проверив настройки в самом приложении Lantern, я обнаружил, что у него есть разрешение управлять системным прокси. Тут всё стало ясно: он и был причиной поломок. Запускаясь каждый раз вместе с системой, он задавал свои настройки системного прокси, портившие работу всех пакетных менеджеров, даже когда само VPN‑соединение было разорвано.

Lantern был жёстко наказан за свои проделки. У него было отобрано разрешение на управление системным прокси (в настройках самого Lantern), невзирая на его жалобы и предупреждения, что без него он корректно работать не может. Также он был исключён из автозагрузки и больше мной не запускается. Как я уже говорил, он для меня не самое любимое приложение в своём классе, и ему давно найдены замены. Какие — рекламировать не буду (Роскомнадзор не одобрит), подобных приложений много.

После такой «расправы» с Lantern проблема была полностью устранена. Стало понятно, почему проблема появилась именно в первой половине 2022 года. Именно тогда у меня появились новые VPN (в том числе Lantern) — как и у многих других пользователей. Причина, думаю, ясна и без комментариев.

Рекомендации

Мораль сей басни такова:

  • Если видите ошибки Microsoft Store, pip или другого пакетного менеджера при установлении связи с сервером, проверяйте не только включение/выключение VPN‑соединения, но и настройки системного прокси. Будучи включённым, он может мешать.

  • Особенно вероятны проблемы с прокси, если в Microsoft Store код ошибки — 0×80 131 500, а pip жалуется на «check_hostname requires server_hostname».

  • В таких случаях отключение системного прокси в системных настройках сети поможет сразу же (без перезагрузки компьютера!) восстановить работу пакетных менеджеров. Но после перезагрузки или повторного включения проверьте, не сбились ли настройки прокси снова и не вернулась ли проблема.

  • Если проблема вернулась, не спешите искать вирусы. Если у вас есть VPN (любой), проверьте его настройки и разрешения. Нужно проверить, может ли он управлять системным прокси. Если да — проверьте, решается ли проблема отзывом разрешения.

  • Если нет — следует рассмотреть другие гипотезы вплоть до вредоносного/шпионского ПО. В Windows 10 можно проверить компьютер Защитником Windows, в Linux — любым антивирусом для Linux;

  • В качестве профилактики: при установке любого VPN (неважно, для чего вы его используете) тщательно проверяйте его настройки и разрешения. Контролируйте и помните, что ваши VPN могут делать в системе и какие сбои это может вызвать. Даже если решение — рекомендованное и надёжное.

В техподдержку Майкрософт в соцсети VK был отправлен отчёт по устранению сбоя, однако по состоянию на 2024 год она уже была недоступна. Она не ответила мне, не прочитала сообщения и вряд ли обновила свои рекомендации. Поэтому я и пишу об этом здесь — вдруг у кого‑то похожие проблемы? Придётся, видимо, теперь помогать друг другу здесь.

В моей статье остался не освещённым вопрос, может ли такая ошибка возникать под управлением Linux и какие коды аналогичных ошибок у распространённых пакетных менеджеров дистрибутивов Linux. Если кто‑то сталкивался с подобной ситуацией на Linux, напишите, пожалуйста, в комментариях, как это выглядело с вашей стороны.

Эпилог

Этой детективной истории могло бы не быть, если бы я смог сразу по коду ошибки Microsoft Store «нагуглить» правильное решение и понять, в чём проблема. Но этот пост — напоминание, каким непрямым путём иногда отыскивается источник сбоя в той ситуации, когда затрудняется даже техподдержка.

Тестовое задание в IT‑компанию было провалено. Задачи по бизнес‑аналитике на подтверждение гипотез маркетологов были мной решены в Excel без написания кода, в то время как компания хотела образец кода Python или R. Работу я тогда не нашёл, зато теперь снова могу играть в Gardenscapes. Выполняйте, в общем, тестовые задания в IT‑компании. Это полезно. Даже если на работу не возьмут.

Этим летом я получил приглашение на удалённую проектную работу в области Python и биоинформатики. Я создаю для компании образовательные материалы по анализу данных — и надеюсь, что в процессе работы появятся ещё интересные «клинические случаи».

А ещё здесь будут публикации по моему хобби — digital art — и по науке. Подписывайтесь и не переключайтесь!

Всем беспроблемной установки ПО!

Автор: GeorgyKurakin

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js