Что означает ошибка ERR_JS_MAIN
Сообщение «A JavaScript error occurred in the main process» появляется при запуске программ, собранных на базе фреймворка Electron (Discord, Visual Studio Code, OBS Studio, Slack, Notion и другие). Оно означает, что фоновый процесс приложения (основной поток Node.js) столкнулся с критической ошибкой ещё до отрисовки пользовательского интерфейса.
Обычно система показывает стандартное диалоговое окно ОС с полным текстом исключения и трассировкой стека (stack trace). Приложение зависает, не отвечает на нажатия или закрывается сразу после появления иконки в системном трее.
Причины возникновения
- Повреждение локального кэша. Файлы
index.ldb,Local Storageилиsessionзаписываются с ошибками из-за внезапного отключения питания, синхронизации облачных дисков или принудительного завершения процесса. - Конфликт с драйверами видеокарты. Electron активно использует GPU для аппаратного ускорения. Устаревшие или нестабильные драйверы вызывают сбой инициализации окна рендеринга.
- Отсутствие системных библиотек. В Linux-дистрибутивах ошибка возникает, если не установлены базовые пакеты
libnss3,libatk1.0-0илиlibgbm1. - Блокировка антивирусом. Защитное ПО ошибочно помечает встроенные JS-скрипты приложения как подозрительные и блокирует их выполнение в памяти.
- Несовместимость версий. После крупного обновления ОС или переноса профиля старые конфигурационные файлы конфликтуют с архитектурой нового релиза Electron.
Способы решения
Способ 1: Полный сброс процессов и перезапуск
Иногда фоновый процесс остаётся «зависшим» в памяти, что мешает корректному запуску нового экземпляра программы.
- Откройте диспетчер задач (
Ctrl + Shift + Escв Windows илиSystem Monitorв Linux/macOS). - Перейдите на вкладку «Подробности» или «Процессы».
- Найдите все процессы с названием приложения (например,
discord.exe,code,slack). - Выделите каждый и нажмите «Снять задачу».
- Запустите программу заново.
💡 Совет: Если окно с ошибкой появляется мгновенно, попробуйте запустить приложение с флагом отключения GPU. В свойствах ярлыка Windows добавьте в поле «Объект»
--disable-gpu(обязательно через пробел в конце). Для macOS/Linux используйте терминал:./app --disable-gpu.
Способ 2: Очистка повреждённого кэша и настроек
Самый эффективный метод. Мы удалим только локальные файлы конфигурации, сохранив аккаунтные данные, которые хранятся на серверах разработчика.
- Полностью закройте приложение (проверьте диспетчер задач).
- Откройте файловый менеджер и перейдите в директорию настроек:
- Windows: нажмите
Win + R, введите%appdata%и%localappdata% - macOS: в Finder нажмите
Cmd + Shift + G, введите~/Library/Application Support/ - Linux: откройте терминал и перейдите в
~/.config/
- Windows: нажмите
- Найдите папку с названием приложения (например,
Discord,Code,slack). - Переименуйте её, добавив суффикс
.old(например,Discord.old). - Запустите программу. Она автоматически создаст чистую папку с настройками по умолчанию.
Способ 3: Обновление среды и проверка зависимостей
Если проблема возникает после обновления системы или миграции на новое устройство, убедитесь, что все компоненты актуальны и совместимы.
- Перейдите на официальный сайт приложения и скачайте последнюю стабильную сборку. Установите её поверх текущей.
- Обновите драйверы видеокарты через официальный портал производителя (NVIDIA, AMD, Intel).
- Для Linux пользователей: выполните в терминале установку недостающих библиотек. Пример для Debian/Ubuntu:
# Обновляем списки пакетов
sudo apt update
# Устанавливаем зависимости для рендеринга и сетевого стека
sudo apt install -y libnss3 libatk-bridge2.0-0 libdrm2 libgbm1 libasound2 libx11-xcb1
- Перезагрузите компьютер и проверьте запуск приложения.
Способ 4: Принудительное отключение аппаратного ускорения через конфиг
Если обновление драйверов невозможно, можно отключить GPU-рендеринг на уровне конфигурационного файла.
- Откройте папку конфигурации приложения (как в Способе 2).
- Найдите файл
config.jsonилиsettings.jsonв корне директории. Если файл отсутствует, создайте его вручную. - Добавьте или измените следующий параметр:
{
"disableHardwareAcceleration": true
}
- Сохраните изменения и запустите программу. Интерфейс может работать чуть медленнее, но критическая ошибка исчезнет.
Профилактика
Чтобы избежать повторения сбоя, придерживайтесь простых правил обслуживания Electron-приложений:
- Регулярно устанавливайте обновления. Разработчики закрывают уязвимости и адаптируют код под новые версии ОС и браузерных движков.
- Не отключайте компьютер во время работы программы, особенно при загрузке фоновых обновлений или синхронизации данных.
- Добавляйте важные программы в исключения антивируса и файервола, чтобы избежать случайной блокировки легитимных JS-скриптов.
- Следите за свободным местом на системном диске. Нехватка места приводит к повреждению файлов кэша, журналов и временных данных.
- Делайте резервные копии папок конфигурации (
AppDataили~/.config) перед крупными обновлениями системы или чистыми установками ОС.