В консоли браузера, в логе расширения или в окне Firefox встречается строка вроде Component returned failure code: 0x80004005 (NS_ERROR_FAILURE). Это не отдельный «код NS» и не искажённый номер Windows. NS_ERROR_FAILURE - общее имя отказа в движке Mozilla (Gecko). Число 0x80004005 одновременно является HRESULT E_FAIL: «не вышло», без узкой причины. Поэтому одного рецепта на все такие строки не существует.
Это не синий экран и не 0xc0000005. Рабочий стол жив. Запрос «ns error failure 0x80004005» люди копируют из лога целиком, иногда без пробелов и без подчёркиваний: «ns error failure». Имеется в виду то же NS_ERROR_FAILURE. Пишите имя латиницей, число - 0x80004005, не «0х80004005».
Почему это происходит
Расширение или скрипт страницы. Firefox, Thunderbird, иногда другой продукт на Gecko. Скрипт вызвал интерфейс, который в этом состоянии нельзя трогать: закрытая вкладка, неготовый canvas, запрос уже после send(). Рядом в логе будет имя вроде nsIXMLHttpRequest - оно полезнее самого 0x80004005.
Профиль браузера. Побитые prefs.js, сломанное хранилище, старый Firebug, конфликт дополнений. E_FAIL сыпется в разных местах одного Firefox, другие программы тихие.
Права и реестр Windows. Реже строка указывает на nsIWindowsRegKey.open: браузер не открыл ключ. Тогда виноваты права учётки или сломанный кусок реестра, не «сайт». Править HKLM наугад всё равно нельзя: легко отнять запуск у других программ.
Тот же 0x80004005 вне Mozilla. Центр обновления, VirtualBox, копирование файла тоже пишут E_FAIL. Приставки NS_ERROR_FAILURE там нет. Если в окне только 0x80004005 без NS_ - читайте контекст программы, не эту расшифровку Gecko.
Побитые компоненты Windows. Ещё реже, когда E_FAIL лезет и в Центр, и в браузер, и в установщики. Тогда sfc и DISM, не «сброс Firefox в третий раз».
Не импортируйте .reg «исправить 0x80004005» из гайдов Windows XP. Не ставьте «патч NS_ERROR_FAILURE» с рекламных страниц. Не удаляйте системные DLL, «чтобы Firefox нашёл правильный компонент».
Что делать самому
- Прочитайте строку целиком, не одно число. Нужны NS_ERROR_FAILURE, 0x80004005 и имя интерфейса в квадратных скобках. Без имени это просто E_FAIL. Если NS_ нет, а код в Центре обновления - другая статья.
- Для Firefox: перезапуск без дополнений. Меню справки, «Перезапустить с отключёнными дополнениями» или отдельный чистый профиль. Если ошибка пропала - включайте расширения по одному. Часто виноват блокировщик или старый захват страницы.
- Обновите или переустановите Firefox с сайта Mozilla. Не «сборка» и не портативная копия с форума. Профиль можно не трогать: закладки лежат отдельно. Галочку «удалить личные данные» при снятии не ставьте, если закладки нужны.
- Если падает один сайт - виноват скрипт страницы, не Windows. Другой браузер как проверка. Писать «исправьте Windows» из-за canvas на одном сайте рано.
- Если в логе реестр Windows - проверьте, не урезаны ли права учётки. Новая учётка администратора как тест. Не открывайте редактор реестра и не удаляйте ветки Firefox «по списку».
- Если 0x80004005 без NS_ в Центре обновления - штатное устранение неполадок, затем очистка
SoftwareDistribution\Download. Это уже не Gecko. - Не чистите реестр комбайном. Новые E_FAIL на ровном месте - как раз от таких утилит.
На Windows 10 и Windows 11 число одно. Меняется версия Firefox, не HRESULT. Если NS_ERROR_FAILURE появляется только в консоли разработчика на чужом сайте, а сами вы просто сидите в почте - можно не лечить «систему». Это сообщение скрипта, не приговор диску.
Сосед по числу - обычный 0x80004005 в VirtualBox и в проводнике. Лечение разное. Объединять их одной «очисткой HRESULT» нельзя.
В консоли Firefox строка длинная и пугает. Полезны три куска: число 0x80004005, имя NS_ERROR_FAILURE и интерфейс в квадратных скобках. Остальное - служебный шум. Если интерфейс про canvas или XMLHttpRequest на одном сайте, чинить Windows рано. Если интерфейс про реестр Windows и ошибка на каждом запуске Firefox - уже права учётки или сломанный профиль. Новый профиль создают штатно через менеджер профилей Mozilla, не копированием папки с другого компьютера: пути и блокировки разъедутся и дадут тот же E_FAIL.
Часто задаваемые вопросы
NS_ERROR_FAILURE и 0x80004005 - разные ошибки? Нет. Имя Mozilla и число E_FAIL об одном отказе.
Это вирус? Обычно нет. Чаще дополнение, профиль или скрипт страницы.
Это синий экран? Нет.
Поможет ли «очиститель реестра»? Нет. Он умеет производить новые E_FAIL без всякого Firefox.
