A plugin calls the server API off the main thread (Asynchronous …!)
- Platforms
- Paper · Purpur · single server
- Verified
- Verified
- Confidence
- Confidence 95%
What it looks like in the log
Any one of these lines is enough. The agent matches them locally, on your server.
logs/latest.log
[WARN] java.lang.IllegalStateException: in the stack trace
Symptoms
- A plugin action is not carried out; the log shows IllegalStateException “Asynchronous <operation>!”
- Item dupes, entity desync and crashes are possible if the plugin keeps doing this
Cause
A plugin invoked an operation that is only allowed on the server's main thread (adding entities, loading chunks, teleporting, etc.) from an async task or a network thread; Paper (AsyncCatcher/TickThread) blocked the call.
Possible causes
- The plugin runs Bukkit API calls in runTaskAsynchronously/CompletableFuture without returning to the main thread
- An outdated plugin version not adapted to Paper's checks
How to fixLow risk
- Identify the plugin from the trace frames (the first frames after
org.spigotmc.AsyncCatcherorTickThread) and the operation from the textAsynchronous <operation>!. - Update the plugin; if the error is present in the latest version, report it to the author (the call needs to be moved to the main thread via
runTask). - Until it is fixed, disable the plugin feature causing the error, or the plugin itself: such calls risk dupes and data corruption.
Translated from the Russian original; log lines are quoted verbatim.