Hello,
I am encountering a persistent IllegalStateException: Asynchronous Chunk getEntities call.
The issue is triggered when a MythicMobs skill (running on the async lumine-scheduler) executes a ModelEngine mechanic, such as applying a model. The ModelEngine code then attempts to call the getEntities method, which is not thread-safe. This unsafe operation is correctly caught by the server's AsyncCatcher, resulting in the error shown in the logs below.
Forcing the problematic skill to run on the main thread using the ;sync=true parameter in the MythicMobs config serves as a temporary workaround, but the underlying async issue remains.
Environment details:
- Server Version: Purpur 1.21.8
- MythicMobs Version: Premium 5.10.0-SNAPSHOT
- ModelEngine Version: R4.0.9
The full error log is attached below for your review. Please let me know if you need any more information.
Thank you for your time and help.
Error and warn messages:
[08:53:37 ERROR]: Thread lumine-scheduler-83 failed main thread check: Chunk getEntities call java.lang.Throwable: null at org.spigotmc.AsyncCatcher.catchOp(AsyncCatcher.java:9) ~[purpur-1.21.8.jar:1.21.8-2489-4fd4df0] at net.minecraft.server.level.ServerLevel.getEntities(ServerLevel.java:2549) ~[purpur-1.21.8.jar:1.21.8-2489-4fd4df0] at net.minecraft.world.level.Level.getEntity(Level.java:1899) ~[purpur-1.21.8.jar:1.21.8-2489-4fd4df0] at net.minecraft.world.level.Level.getEntity(Level.java:97) ~[purpur-1.21.8.jar:1.21.8-2489-4fd4df0] at net.minecraft.world.entity.EntityReference.getEntity(EntityReference.java:58) ~[purpur-1.21.8.jar:1.21.8-2489-4fd4df0] at net.minecraft.world.entity.EntityReference.get(EntityReference.java:91) ~[purpur-1.21.8.jar:1.21.8-2489-4fd4df0] at net.minecraft.world.entity.OwnableEntity.getOwner(OwnableEntity.java:16) ~[purpur-1.21.8.jar:1.21.8-2489-4fd4df0] at net.minecraft.world.entity.OwnableEntity.getRootOwner(OwnableEntity.java:22) ~[purpur-1.21.8.jar:1.21.8-2489-4fd4df0] at net.minecraft.world.entity.TamableAnimal.getTeam(TamableAnimal.java:194) ~[purpur-1.21.8.jar:1.21.8-2489-4fd4df0] at net.minecraft.world.entity.Entity.getTeamColor(Entity.java:604) ~[purpur-1.21.8.jar:1.21.8-2489-4fd4df0] at ModelEngine-R4.0.9.jar/com.ticxo.modelengine.v1_21_R5.entity.EntityHandlerImpl.getGlowColor(EntityHandlerImpl.java:525) ~[ModelEngine-R4.0.9.jar:?] at ModelEngine-R4.0.9.jar/com.ticxo.modelengine.api.entity.data.BukkitEntityData.syncUpdate(BukkitEntityData.java:110) ~[ModelEngine-R4.0.9.jar:?] at ModelEngine-R4.0.9.jar/com.ticxo.modelengine.api.entity.data.BukkitEntityData.(BukkitEntityData.java:64) ~[ModelEngine-R4.0.9.jar:?] at ModelEngine-R4.0.9.jar/com.ticxo.modelengine.api.entity.data.BukkitEntityData.(BukkitEntityData.java:55) ~[ModelEngine-R4.0.9.jar:?] at ModelEngine-R4.0.9.jar/com.ticxo.modelengine.api.entity.BukkitEntity.createEntityData(BukkitEntity.java:53) ~[ModelEngine-R4.0.9.jar:?] at ModelEngine-R4.0.9.jar/com.ticxo.modelengine.api.entity.BukkitEntity.(BukkitEntity.java:44) ~[ModelEngine-R4.0.9.jar:?] at ModelEngine-R4.0.9.jar/com.ticxo.modelengine.api.ModelEngineAPI.createModeledEntity(ModelEngineAPI.java:128) ~[ModelEngine-R4.0.9.jar:?] at ModelEngine-R4.0.9.jar/com.ticxo.modelengine.api.ModelEngineAPI.getOrCreateModeledEntity(ModelEngineAPI.java:153) ~[ModelEngine-R4.0.9.jar:?] at ModelEngine-R4.0.9.jar/com.ticxo.modelengine.core21.mythic.mechanics.entity.ModelMechanic.addModel(ModelMechanic.java:107) ~[ModelEngine-R4.0.9.jar:?] at ModelEngine-R4.0.9.jar/com.ticxo.modelengine.core21.mythic.mechanics.entity.ModelMechanic.castAtEntity(ModelMechanic.java:67) ~[ModelEngine-R4.0.9.jar:?] at MythicMobsPremium-5.10.0-SNAPSHOT.jar/io.lumine.mythic.core.skills.SkillMechanic.lambda$executeTargetedEntitySkill$16(SkillMechanic.java:637) ~[MythicMobsPremium-5.10.0-SNAPSHOT.jar:?] at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[?:?] at MythicMobsPremium-5.10.0-SNAPSHOT.jar/io.lumine.mythic.core.skills.SkillMechanic.executeTargetedEntitySkill(SkillMechanic.java:633) ~[MythicMobsPremium-5.10.0-SNAPSHOT.jar:?] at MythicMobsPremium-5.10.0-SNAPSHOT.jar/io.lumine.mythic.core.skills.SkillMechanic.lambda$executeSkills$12(SkillMechanic.java:588) ~[MythicMobsPremium-5.10.0-SNAPSHOT.jar:?] at MythicMobsPremium-5.10.0-SNAPSHOT.jar/io.lumine.mythic.core.skills.SkillMechanic.runMechanic(SkillMechanic.java:627) ~[MythicMobsPremium-5.10.0-SNAPSHOT.jar:?] at MythicMobsPremium-5.10.0-SNAPSHOT.jar/io.lumine.mythic.core.skills.SkillMechanic.executeSkills(SkillMechanic.java:588) ~[MythicMobsPremium-5.10.0-SNAPSHOT.jar:?] at MythicMobsPremium-5.10.0-SNAPSHOT.jar/io.lumine.mythic.core.skills.SkillMechanic.execute(SkillMechanic.java:505) ~[MythicMobsPremium-5.10.0-SNAPSHOT.jar:?] at MythicMobsPremium-5.10.0-SNAPSHOT.jar/io.lumine.mythic.core.mobs.MobType.lambda$executeSkills$8(MobType.java:1340) ~[MythicMobsPremium-5.10.0-SNAPSHOT.jar:?] at MythicMobsPremium-5.10.0-SNAPSHOT.jar/io.lumine.mythic.bukkit.utils.Delegates$RunnableToSupplier.get(Delegates.java:121) ~[MythicMobsPremium-5.10.0-SNAPSHOT.jar:?] at MythicMobsPremium-5.10.0-SNAPSHOT.jar/io.lumine.mythic.bukkit.utils.promise.LuminePromise$SupplyRunnable.run(LuminePromise.java:654) ~[MythicMobsPremium-5.10.0-SNAPSHOT.jar:?] at MythicMobsPremium-5.10.0-SNAPSHOT.jar/io.lumine.mythic.bukkit.utils.tasks.LumineExecutors$SchedulerWrappedRunnable.run(LumineExecutors.java:70) ~[MythicMobsPremium-5.10.0-SNAPSHOT.jar:?] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?] at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?] [08:53:37 ERROR]: [MythicMobs] [SCHEDULER] Exception thrown whilst executing task [08:53:37 WARN]: java.lang.IllegalStateException: Asynchronous Chunk getEntities call! [08:53:37 WARN]: at org.spigotmc.AsyncCatcher.catchOp(AsyncCatcher.java:10) [08:53:37 WARN]: at net.minecraft.server.level.ServerLevel.getEntities(ServerLevel.java:2549) [08:53:37 WARN]: at net.minecraft.world.level.Level.getEntity(Level.java:1899) [08:53:37 WARN]: at net.minecraft.world.level.Level.getEntity(Level.java:97) [08:53:37 WARN]: at net.minecraft.world.entity.EntityReference.getEntity(EntityReference.java:58) [08:53:37 WARN]: at net.minecraft.world.entity.EntityReference.get(EntityReference.java:91) [08:53:37 WARN]: at net.minecraft.world.entity.OwnableEntity.getOwner(OwnableEntity.java:16) [08:53:37 WARN]: at net.minecraft.world.entity.OwnableEntity.getRootOwner(OwnableEntity.java:22) [08:53:37 WARN]: at net.minecraft.world.entity.TamableAnimal.getTeam(TamableAnimal.java:194) [08:53:37 WARN]: at net.minecraft.world.entity.Entity.getTeamColor(Entity.java:604) [08:53:37 WARN]: at ModelEngine-R4.0.9.jar//com.ticxo.modelengine.v1_21_R5.entity.EntityHandlerImpl.getGlowColor(EntityHandlerImpl.java:525) [08:53:37 WARN]: at ModelEngine-R4.0.9.jar//com.ticxo.modelengine.api.entity.data.BukkitEntityData.syncUpdate(BukkitEntityData.java:110) [08:53:37 WARN]: at ModelEngine-R4.0.9.jar//com.ticxo.modelengine.api.entity.data.BukkitEntityData.(BukkitEntityData.java:64) [08:53:37 WARN]: at ModelEngine-R4.0.9.jar//com.ticxo.modelengine.api.entity.data.BukkitEntityData.(BukkitEntityData.java:55) [08:53:37 WARN]: at ModelEngine-R4.0.9.jar//com.ticxo.modelengine.api.entity.BukkitEntity.createEntityData(BukkitEntity.java:53) [08:53:37 WARN]: at ModelEngine-R4.0.9.jar//com.ticxo.modelengine.api.entity.BukkitEntity.(BukkitEntity.java:44) [08:53:37 WARN]: at ModelEngine-R4.0.9.jar//com.ticxo.modelengine.api.ModelEngineAPI.createModeledEntity(ModelEngineAPI.java:128) [08:53:37 WARN]: at ModelEngine-R4.0.9.jar//com.ticxo.modelengine.api.ModelEngineAPI.getOrCreateModeledEntity(ModelEngineAPI.java:153) [08:53:37 WARN]: at ModelEngine-R4.0.9.jar//com.ticxo.modelengine.core21.mythic.mechanics.entity.ModelMechanic.addModel(ModelMechanic.java:107) [08:53:37 WARN]: at ModelEngine-R4.0.9.jar//com.ticxo.modelengine.core21.mythic.mechanics.entity.ModelMechanic.castAtEntity(ModelMechanic.java:67) [08:53:37 WARN]: at MythicMobsPremium-5.10.0-SNAPSHOT.jar//io.lumine.mythic.core.skills.SkillMechanic.lambda$executeTargetedEntitySkill$16(SkillMechanic.java:637) [08:53:37 WARN]: at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) [08:53:37 WARN]: at MythicMobsPremium-5.10.0-SNAPSHOT.jar//io.lumine.mythic.core.skills.SkillMechanic.executeTargetedEntitySkill(SkillMechanic.java:633) [08:53:37 WARN]: at MythicMobsPremium-5.10.0-SNAPSHOT.jar//io.lumine.mythic.core.skills.SkillMechanic.lambda$executeSkills$12(SkillMechanic.java:588) [08:53:37 WARN]: at MythicMobsPremium-5.10.0-SNAPSHOT.jar//io.lumine.mythic.core.skills.SkillMechanic.runMechanic(SkillMechanic.java:627) [08:53:37 WARN]: at MythicMobsPremium-5.10.0-SNAPSHOT.jar//io.lumine.mythic.core.skills.SkillMechanic.executeSkills(SkillMechanic.java:588) [08:53:37 WARN]: at MythicMobsPremium-5.10.0-SNAPSHOT.jar//io.lumine.mythic.core.skills.SkillMechanic.execute(SkillMechanic.java:505) [08:53:37 WARN]: at MythicMobsPremium-5.10.0-SNAPSHOT.jar//io.lumine.mythic.core.mobs.MobType.lambda$executeSkills$8(MobType.java:1340) [08:53:37 WARN]: at MythicMobsPremium-5.10.0-SNAPSHOT.jar//io.lumine.mythic.bukkit.utils.Delegates$RunnableToSupplier.get(Delegates.java:121) [08:53:37 WARN]: at MythicMobsPremium-5.10.0-SNAPSHOT.jar//io.lumine.mythic.bukkit.utils.promise.LuminePromise$SupplyRunnable.run(LuminePromise.java:654) [08:53:37 WARN]: at MythicMobsPremium-5.10.0-SNAPSHOT.jar//io.lumine.mythic.bukkit.utils.tasks.LumineExecutors$SchedulerWrappedRunnable.run(LumineExecutors.java:70) [08:53:37 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) [08:53:37 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)