Открыть сервисСервис

Ошибка «A JavaScript error occurred in the main process

«A JavaScript error occurred in the main process» — сообщение об ошибке, возникающее в приложениях, построенных на фреймворке Electron, при запуске или работе программы. Окно приложения обычно отображает белый или чёрный экран, после чего программа завершается. Ошибка относится к главному (main) процессу приложения — тому, который управляет окнами, системными ресурсами и взаимодействием с операционной системой.

Причины возникновения

К наиболее распространённым причинам относятся:

  • Повреждение файлов приложения — неполная установка, сбой при обновлении, вмешательство антивируса или сбой на диске.
  • Конфликты с драйверами — устаревшие или несовместимые драйверы видеокарты (особенно на Windows) приводят к сбоям при запуске.
  • Проблемы с профилем пользователя — повреждённые файлы конфигурации в папке данных приложения.
  • Отсутствующие системные компоненты — не установлены или устарели Visual C++ Redistributable, .NET Framework, WebView2.
  • Конфликты стороннего ПО — антивирусы, оверлеи (Discord, MSI Afterburner), программы перехвата мыши и клавиатуры.
  • Некорректная локализация системы — некоторые приложения падают при нестандартной кодовой странице или системной локали.
  • Недостаток прав — запуск без прав администратора при попытке записи в защищённые каталоги.

Способы исправления

Проверка целостности файлов

Для приложений из Steam или Epic Games Launcher доступна функция проверки целостности файлов: библиотека → ПКМ по игре → Свойства → Установленные файлы → «Проверить целостность файлов». Для программ, установленных вручную, полезно полностью удалить приложение (включая папки данных) и установить заново.

Удаление папки конфигурации

Многие Electron-приложения хранят настройки в скрытых каталогах пользователя. Удаление этих папок сбрасывает конфигурацию к значениям по умолчанию и часто устраняет ошибку. Типичные расположения:

ОСПуть
Windows%APPDATA%\<имя приложения>
Windows%LOCALAPPDATA%\<имя приложения>
macOS~/Library/Application Support/<имя приложения>
Linux~/.config/<имя приложения>

Обновление драйверов и системных компонентов

Следует установить последние версии драйверов видеокарты (NVIDIA, AMD, Intel) с официального сайта. Для Windows рекомендуется установить свежий пакет Visual C++ Redistributable (2015–2022) и WebView2 Runtime.

Запуск в совместимом режиме

На Windows можно попробовать запустить приложение в режиме совместимости с предыдущей версией ОС: ПКМ по ярлыку → Свойства → Совместимость → «Запуск в режиме совместимости». Также полезно попробовать запуск от имени администратора.

Отключение стороннего ПО

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

Проверка локали и кодовой страницы

В Windows ошибка может быть связана с нестандартной системной локалью. Панель управления → Язык → Изменение метода ввода → Дополнительные настройки → Дополнительно → снять галку «Использовать расширенные раскладки для поддержки языка». Также помогает установка локали «English (United States)» в качестве системной.

Диагностика для разработчиков

Приложение на Electron можно запустить из командной строки с флагом --enable-logging, что выводит подробный журнал ошибок. В коде приложения перехват необработанных исключений главного процесса осуществляется через события process.on('uncaughtException') и process.on('unhandledRejection'). Для отладки главного процесса используется Chrome DevTools, подключаемые через --inspect при запуске.

Интересные особенности

Сообщение «A JavaScript error occurred in the main process» является стандартным диалогом Electron: фреймворк перехватывает необработанные исключения и показывает модальное окно с предложением перезапустить приложение. Разработчики могут переопределить поведение через обработчик app.on('render-process-gone') и app.on('child-process-gone'), а также отключить стандартный диалог через dialog.showErrorBox.

Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru