К содержимому
Tickwise
ОшибкаПлагиныSIG-PL-012

Плагин обращается к API сервера не из основного потока (Asynchronous …!)

Платформы
Paper · Purpur · один сервер
Проверено
Проверено
Уверенность
Уверенность 95%

Как это выглядит в логе

Достаточно одной из строк. Агент сверяет их с логом локально, на вашем сервере.

logs/latest.log
  • [WARN] java.lang.IllegalStateException: в stack trace

Симптомы

  • Действие плагина не выполняется, в логе IllegalStateException «Asynchronous <операция>!»
  • Возможны дюпы предметов, рассинхронизация сущностей и краши, если плагин продолжает так делать

Причина

Плагин вызвал операцию, разрешённую только в основном потоке сервера (добавление сущностей, загрузка чанков, телепорт и т.п.), из асинхронной задачи или сетевого потока; Paper (AsyncCatcher/TickThread) заблокировал вызов.

Вероятные причины

  • Плагин выполняет Bukkit API в runTaskAsynchronously/CompletableFuture без возврата в основной поток
  • Устаревшая версия плагина, не адаптированная к проверкам Paper

Как исправитьНизкий риск

  1. Определите плагин по фреймам trace (первые фреймы после org.spigotmc.AsyncCatcher или TickThread) и операцию из текста Asynchronous <операция>!.
  2. Обновите плагин; если ошибка есть в последней версии — сообщите автору (нужно перенести вызов в основной поток через runTask).
  3. До исправления отключите функцию плагина, вызывающую ошибку, или сам плагин: такие вызовы грозят дюпами и повреждением данных.

Источники