When a plugin or mod runs into a programming error while the server is running, Java writes an error message with a stack trace to the log. The stack trace is the list of “at” lines below the error line. It shows which part of the program was running and so usually reveals the responsible plugin or mod. Most of these errors don't bring the server down, but a feature stops working, and repeated errors flood the console.
Each section below covers one message: what it looks like, what's behind it, and what you can do. You can find the full message in the Console or under Files in logs/latest.log. Also read the lines right before and after it. Before you change configuration or world files or swap out plugins, create a backup under Backups. It's best to replace plugin files while the server is stopped.
NullPointerException: A plugin or mod accesses a missing value
What the message looks like:
java.lang.NullPointerException: Cannot invoke "com.google.gson.JsonObject.entrySet()" because "jsonobject" is null
java.lang.NullPointerException: Cannot invoke "java.lang.invoke.MethodHandle.invoke(Object, String)" because "this.DESERIALIZE_METHOD" is null
java.lang.NullPointerException: Cannot invoke "com.google.gson.JsonElement.getAsBoolean()" because the return value of "com.google.gson.JsonObject.get(String)" is null
What's behind it: A plugin or mod accesses a missing object, called “null” in Java. “Cannot invoke” names the method; “because” identifies the missing value. This can also happen while reading language or configuration files. The affected action aborts; “Skipped language file” means that language file is skipped. During startup, the error may interrupt server startup.
How to fix it:
- Open the full message in the Console or
logs/latest.log. Read preceding lines too: a language or configuration file can help identify the component involved. - The “at” lines form the stack trace, the chain of calls leading to the error. Follow them from the first line to the plugin or mod involved; the first may name Minecraft itself.
- Update that plugin under Plugins or mod under Mods to match your server version. Stop the server before replacing files, then start again.
- If a configuration is named, back it up and compare required settings with the author's instructions. If the error remains, report the full message and triggering action.
Good to know: pl:mixin:APP:<Mod>.mixins.json identifies a mod changing game internals via mixins.
“Could not pass event”: A plugin crashes on a game event
What the message looks like:
Could not pass event <Event> to <Plugin> v<Version>
java.lang.NoSuchMethodError: …
java.lang.IllegalArgumentException: The found tag instance (ByteTag) cannot store Integer
What's behind it: Plugins react to events such as joining, inventory clicks or damage. An exception, a Java error, aborts the plugin's processing. After “to” are the plugin and version; before it is the event. “NoSuchMethodError” or “NoSuchFieldError” indicates an incompatible server version. “IllegalArgumentException” can indicate an invalid colour value or mismatched data type. The plugin author needs to fix this. The server keeps running, but the affected plugin feature fails for that event.
How to fix it:
- In the Console, read the plugin name and version after “to” and the error line below.
- Check your server version under Version and find a plugin release that supports it.
- Stop the server, install the matching release under Plugins and start again.
- If the error remains, report it to the author with the triggering action and the full error message.
Good to know: More on “NoSuchMethodError” and “NoSuchFieldError”: Plugin doesn't match the server version.
“Task … generated an exception”: A plugin task fails in the background
What the message looks like:
[<Plugin>] Task #<Number> for <Plugin> v<Version> generated an exception
java.lang.IllegalArgumentException: missing required data class java.lang.Float
java.lang.IllegalArgumentException: WATER isn't an item
What's behind it: Plugins schedule tasks for particles, holograms or saving data. Tasks can run once or repeatedly. A Java error, an exception, aborted a task. Continuous failures often indicate incompatibility with the server version, for example after an update. Invalid values in the plugin can also cause this. The server keeps running, but a plugin feature fails and repeated errors fill the console.
How to fix it:
- Read the plugin name after “for” and the error line below.
- Check under Plugins for a newer release matching your server version. Stop the server, install it and start again.
- If none is available, stop the server and move its
.jarfile under Files out ofplugins/into a separate folder. Then restart. Continuous errors can slow the server down. - Check the Console to confirm the message stops. If it persists with the current release, report it to the author.
Good to know: “missing required data class” indicates missing particle data; “WATER isn't an item” indicates an invalid item. “NoSuchMethodError” or “NoSuchFieldError” points to version incompatibility.
“Exception … executing task”: A plugin task or command aborts
What the message looks like:
[Essentials] Command <Command> failed:
[<Plugin>] Plugin <Plugin> v<Version> generated an exception while executing task <Number>
[MythicMobs] [SCHEDULER] Exception thrown whilst executing task
What's behind it: An exception, a Java error, aborted a plugin command or scheduled task. The server keeps running, but the affected plugin feature fails. The cause appears below, after “Caused by” for nested errors. “Cannot perform command async” means a plugin improperly runs a command from a background thread, a parallel execution path. The plugin author needs to fix this.
How to fix it:
- Find the “Caused by” line or the first line containing “Exception” or “Error”.
- Identify the plugin in the message or the “at” lines, the chain of calls leading to the error. These may name
<Plugin>.jar. - Update it under Plugins to a release matching your server version. Stop the server before replacing files, then restart.
- Repeat the command or watch the next task execution. If it still fails, report the action, time and full message to the author.
Good to know: “NoSuchMethodError”, “NoSuchFieldError” or “NoSuchFieldException” means a required method or field is missing. Check the plugin's supported server version and dependencies; their releases need to match.
ClassCastException: A mod or plugin expects a different data type
What the message looks like:
java.lang.ClassCastException: class <PackageA>.<ClassA> cannot be cast to class <PackageB>.<ClassB>
Cannot load key=<Entry>, type=<DataType> in config=<Configuration>
What's behind it: A mod or plugin expects a different data type from the one a component supplies. This can happen after updating one mod without updating a dependent mod. The error can also occur when reading a mod configuration, as in the second example followed by a ClassCastException. Often only the affected function fails, such as loading loot data or a configuration entry.
How to fix it:
- Read the full message in
logs/latest.logunder Files. Package names before class names help identify the mods or plugins involved;java.lang.Stringinstead means the Java data type for text. - Check which component was updated most recently. Bring the mods or plugins involved to matching versions: update them together or restore their previous versions.
- If a Modpack is running, update the whole modpack rather than individual mods.
- If a configuration entry is named, check it against the documentation for the installed mod version.
- Restart and repeat the action.
More on mod conflicts: Mod errors on Forge, NeoForge and Fabric.
ArrayIndexOutOfBoundsException: Access to a missing list entry
What the message looks like:
java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
java.lang.ArrayIndexOutOfBoundsException: Index -3 out of bounds for length 16
Caught exception during event FMLCommonSetupEvent dispatch for modid <Mod>
What's behind it: A plugin or mod accesses an invalid position in an array, a fixed-length list. Java counts from 0: length 3 allows positions 0 to 2; negative positions are invalid too. Common triggers include missing command arguments or configuration values, or an older plugin misreading the server version. The examples also involve Geyser processing world data and mod initialization; a feature may fail or startup may stop.
How to fix it:
- Read the error in the Console or
logs/latest.logunder Files. The following “at” lines form the call chain, also called a stacktrace; look for the affected plugin or mod. - For a command error, check its required arguments. After configuration edits, compare values with the template or a backup.
- Update the affected plugin under Plugins or mod under Mods to a release matching your server and loader. The loader loads mods. Restart.
- If it persists, report the error, call chain, and trigger to the author.
A plugin's configuration file is faulty.
NumberFormatException: A text should have been a number
What the message looks like:
java.lang.NumberFormatException: For input string: "%vault_eco_balance_fixed%"
java.lang.NumberFormatException: For input string: "craftbukkit"
What's behind it: The game, a mod or a plugin wanted to read a text value as a number, and the text wasn't a number. The quotation marks show what actually arrived. The cause can be a configuration, an unexpected data value or a version or programming error. You can recognize two cases by the value: A placeholder with percent signs like the one above wasn't replaced. Usually the matching expansion for PlaceholderAPI, the plugin that fills such placeholders, is missing, or the plugin that supplies the value. A word like craftbukkit indicates that an older plugin reads the server version incorrectly.
How to fix it:
- Check the full stack trace and update the component named there.
- For a placeholder: test in-game with
/papi parse me <placeholder>whether it returns a value. If not, install the matching PlaceholderAPI expansion, for example with/papi ecloud download <Name>, and load it with/papi reload. - If the message names a file or setting, compare the value with the plugin's default configuration.
- Restart and trigger the action again.
ArrayIndexOutOfBoundsException without further details
What the message looks like:
[<Plugin>] Error occurred while loading item: 2
java.lang.ArrayIndexOutOfBoundsException
What's behind it: A plugin or mod used an invalid list index, as in the previous section. Here, however, the index and length are missing. This happens when the same error occurs very often: Java then omits the details for performance reasons. The line before often reveals which plugin was trying to do what, in the example loading an entry. The first stack trace line below, if present, names the culprit.
How to fix it:
- Read the line directly before the message. The plugin is often shown there in square brackets.
- Read the first stack trace line below the message.
- If both are missing, look further up in
logs/latest.logfor the first occurrence. The error is usually still complete there. Older logs are stored compressed in thelogs/folder. - Update the plugin or mod named first. If the line before names a specific entry, check it in the plugin's configuration.
- If the error remains, report it to the author.
ExceptionInInitializerError: A plugin or mod class can't be initialized
What the message looks like:
Exception in thread "ForkJoinPool-3-worker-1" java.lang.ExceptionInInitializerError
Caused by: <Error type>: <Message>
What's behind it: Java initializes each class, meaning each building block of a program, once on first use. A class of a plugin or mod crashed exactly during this step. Afterwards it remains unusable for this server run, which is why further errors like “NoClassDefFoundError” with the same class name often follow. The actual cause, and usually the affected plugin or mod too, is named by the “Caused by” chain below. Depending on where it happens, a function fails or the plugin or mod doesn't load at all.
How to fix it:
- In the Console or in
logs/latest.log, read the first “Caused by” line below the message. - From the “at” lines below, identify the plugin or mod, for example by the file name ending in
.jar. - Update it or replace it with a release that matches your server version and your server software.
- Restart the server. The class is only initialized again on the next start.
For version questions, this helps: Plugin doesn't match the server version.
Internal error in a plugin, for example while saving
What the message looks like:
[MultiWorld] ERROR HAPPEND: <Message>
Unable to save player profile for <Player>
<Plugin> v<Version> generated an exception whilst handling plugin message
What's behind it: A plugin ran into an error during one of its own tasks, for example when saving, processing a message or starting up. Plugin messages are data packets that, for example, a proxy like BungeeCord or Velocity exchanges with the server. The message shows the plugin's name in square brackets or at the start of the line. Depending on the error, only this action fails or the plugin shuts itself down. If it's about saving, deal with it promptly so no data is lost.
How to fix it:
- In the Console, read the plugin name and the lines directly below the message.
- Update the plugin under Plugins and restart.
- If the error remains, create a backup, remove the plugin as a test and check whether the message disappears.
- Report the error to the plugin author with the lines from the console.
If saving fails repeatedly: Plugin can't save to the database or files.
Skript error report with #!#!: a script doesn't load
What the message looks like:
#!#! Current node: <Line from the .sk file>
#!#! End of Error.
What's behind it: Skript is a plugin that lets you write server functions in simple text files with the .sk extension. If it detects a serious error while loading a script or an addon, it writes a report whose lines all begin with #!#!. Common causes: An addon like skript-reflect or SkBee doesn't match the installed Skript version, or a plugin file was replaced while the server was running. In that case “zip file closed” appears in the report. The affected script doesn't work, the server keeps running.
How to fix it:
- In the report, read the “Current node” line (it names the affected .sk file) and the “Caused by” line.
- Check on the project pages which addon versions match your Skript version, and bring Skript and addons to matching releases.
- Replace plugin files only while the server is stopped and restart the server afterwards.
- Load the script with
/sk reload <file>and read the output in the Console.
Good to know: The scripts are located under Files in the folder plugins/Skript/scripts/. Back up a file before you change it.
IndexOutOfBoundsException: “must be less than size”
What the message looks like:
Caused by: java.lang.IndexOutOfBoundsException: index (1) must be less than size (1)
What's behind it: The game, a mod or a plugin requested a list entry that doesn't exist. “index (1) must be less than size (1)” means: The list has exactly one entry, number 0, but number 1 was requested. A configuration may be involved, but the message alone doesn't prove that. If “Caused by:” precedes it, it is the cause of an error reported further up. What fails is shown by that upper message.
How to fix it:
- Read the full stack trace in
logs/latest.log, including the error message above it. - Look for the first “at” line that names an external component, meaning a plugin or mod rather than Java or a library such as
java.baseorcom.google.common. - Update that component and restart.
- Only if the context points to a specific list, such as menu entries or rewards, check its configuration for missing or empty entries.
“Asynchronous Save Players”: A plugin saves from the wrong thread
What the message looks like:
Asynchronous Save Players! Blocking thread until it returns
java.lang.IllegalStateException
at io.papermc.paper.util.MCUtil.ensureMain(MCUtil.java:<Line>)
What's behind it: A plugin triggered the saving of all player data from a background thread, meaning a parallel strand of work alongside the main thread that calculates the world. This isn't intended. Paper blocks the thread until saving is done and writes this warning. This is a bug in the plugin that can cause short stutters. The server keeps running.
How to fix it:
- Read the “at” lines below the message. The first ones belong to Paper and Minecraft (
io.papermc,net.minecraft); you're looking for the first “at” line that names a plugin. - Update that plugin under Plugins and restart.
- If the warning remains, report the error to the plugin author with the full message.
Good to know: A single warning is nothing to worry about. If it appears regularly and players notice stutters, the update is worth it.
“Unhandled exception executing command”: A plugin command aborts
What the message looks like:
org.bukkit.command.CommandException: Unhandled exception executing command '<befehl>' in plugin <Plugin> v<Version>
Caused by: <Error type>: <Message>
What's behind it: A plugin threw an error while executing one of its commands. The command and plugin are named in the message. Usually the plugin doesn't match the server version or another plugin it depends on. Whoever entered the command usually only sees a general notice about an internal error in chat. The command wasn't executed, the server keeps running.
How to fix it:
- Read the “Caused by” line below the message.
- Check your server version under Version and update the plugin under Plugins to a release for it.
- If the error line names another plugin that this plugin depends on, bring that one to a matching version as well.
- Restart and test the command. If the error still occurs, report it to the plugin author with this line.
More on dependencies: Plugin needs another plugin.
Command error with “[ACF]” in the log
What the message looks like:
[<Plugin>] [ACF] Exception in command: <befehl>
[<Plugin>] [ACF] java.lang.NoSuchMethodError: <Method>
What's behind it: Many plugins build their commands with a ready-made library, the Aikar Command Framework (ACF). If a command aborts with an exception, ACF prints the error including the stack trace, each line prefixed with the plugin name. The name in the first bracket is therefore the affected plugin, not ACF. If “IncompatibleClassChangeError” or “NoSuchMethod” appears in the output, the plugin doesn't match the server version. The command wasn't executed, the server keeps running.
How to fix it:
- Read the plugin name in the first square bracket and the first error line with “Exception” or “Error”.
- Update the plugin under Plugins to a version for your server version.
- Restart and test the command.
- If the error remains, report it to the plugin author with the first error line.
Good to know: You don't have to install or update ACF yourself. It's bundled inside the respective plugin.
GravesX: Error in a background task
What the message looks like:
[GravesX] Async task for GravesX v<Version> generated an exception
java.lang.NullPointerException: Cannot invoke "<Method>" because "version2" is null
What's behind it: When a player dies, GravesX creates a grave containing their items. The plugin throws a NullPointerException in a background task, for example when comparing two version numbers when a value (“version2”) is missing. This is a bug in the plugin itself, not a server or hosting problem. The server continues to run normally.
How to fix it:
- Update GravesX under Plugins to the latest version and restart.
- Check in the Console whether the message comes back.
- If the error persists, report it to the GravesX project with the full message.
- If you want to deactivate the plugin as a test until a fix is available, have open graves emptied first. Without the plugin, they can't be opened as usual.
FastAsyncWorldEdit: Command failed internally
What the message looks like:
An unexpected error while handling a FastAsyncWorldEdit command
java.lang.NullPointerException
What's behind it: FastAsyncWorldEdit (FAWE) is a fast variant of WorldEdit that lets you edit large areas at once. During a command, FAWE ran into a missing value. The operation wasn't fully carried out, so the change may only have reached the world partially. The server keeps running.
How to fix it:
- Check in-game what the command changed. With
//undoyou can revert the last step if needed. - Update FAWE under Plugins to a release for your server version and restart.
- Run the command again.
- If the error remains, report the full stack trace with the exact command to the FAWE developers.
Basics on undoing: WorldEdit: building and undoing.
Good to know: Don't install FAWE in addition to regular WorldEdit. The two don't get along together; use only one.
LibreLogin: Command failed internally
What the message looks like:
[LibreLogin] An unexpected exception occurred while performing command …
What's behind it: LibreLogin is a login plugin: players sign in with a password, often on servers in offline mode. While executing one of its commands, for example to log in or register, it aborted with an unexpected exception. For the player, the command fails. If it affects logging in, they can't proceed until the command works again. The server itself keeps running.
How to fix it:
- In the Console, read the exception below the message and note which command it was.
- Update LibreLogin under Plugins and restart.
- Test the command again with a player.
- If the error remains, report the exception along with the command to the plugin author.
If the exception names a database: Plugin can't open its database.
LibreLogin: Network handler is registered twice
What the message looks like:
java.lang.IllegalArgumentException: Duplicate handler name: pe-decoder-librelogin
What's behind it: Every player connection runs through a chain of processing steps, the network pipeline. LibreLogin or the PacketEvents library tries to add the same step, a decoder for incoming data, a second time. New connections can then fail. Typical triggers are two LibreLogin files in the plugin folder, mismatched versions of LibreLogin and PacketEvents, or reloading plugins while the server is running.
How to fix it:
- Under Files, open the
plugins/folder and check that LibreLogin is present only once. Remove older copies after creating a backup. - Update LibreLogin and, if installed, PacketEvents together.
- Stop the server and restart it completely. Reloading with
/reloador a plugin manager isn't enough here. - Test joining with a player.
More on duplicate files: Plugin file is corrupted or duplicated.
LightAntiCheat-Plus: Error in a movement check
What the message looks like:
[LightAntiCheat-Plus] Exception in event bus subscription: <Check>
java.lang.UnsupportedOperationException: remove
What's behind it: LightAntiCheat-Plus is an anti-cheat plugin that, among other things, checks player movement. One of its checks tries to clear a list that can't be modified. This is a bug in the plugin. The affected check may fail or deliver wrong results, meaning it overlooks cheats or wrongly suspects honest players. The server keeps running.
How to fix it:
- Update LightAntiCheat-Plus under Plugins and restart.
- If the message continues, disable the affected SpeedD check in the plugin's configuration until a fix is available. You can find it under Files in the plugin's folder under
plugins/. Back up the file first. - Restart and check in the Console that the message no longer appears.
- Turn the check back on as soon as a corrected release is available.
Good to know: As long as the message appears, treat movement-based suspicions with caution.
MagicSpells reports an error with a spell
What the message looks like:
[MagicSpells] AN EXCEPTION HAS OCCURED:
[MagicSpells] This error has been saved in the errors folder.
Error saving spellbook for player '<Player>'
What's behind it: MagicSpells is a plugin for custom spells. It reports an error when casting or saving spells, often because of an entry in its configuration that this version doesn't understand. The effects run through the EffectLib library; messages with “Unexpected EffectLib Error” concern these effects. In addition, MagicSpells stores a report in the plugins/MagicSpells/errors folder. If saving the spellbook fails, that player's progress isn't saved.
How to fix it:
- Under Files, open the folder
plugins/MagicSpells/errorsand the newest report. It names the spell and the setting. - Check this setting in your spell files, for example for typos or values from an older MagicSpells version. Back up the file first.
- Keep MagicSpells and EffectLib up to date and matching the server version.
- Restart and test the spell.
SinglePlayerSleep: Sleeping in a bed doesn't work
What the message looks like:
[SinglePlayerSleep] INTERNAL ERROR: Unable to process PlayerBedEnterEvent
What's behind it: SinglePlayerSleep lets the night pass when a single player sleeps, instead of everyone having to go to bed. The plugin crashed when a bed was entered. The sleep function may fail for that attempt, and the night isn't skipped. Usually the plugin release doesn't match the Minecraft version. The server keeps running.
How to fix it:
- Check under Version which Minecraft version is running.
- Update SinglePlayerSleep under Plugins to a release for that version and restart.
- Test in-game: lie down in a bed at night and check whether the night passes.
- If the error remains, report the exception below the message to the plugin author.
More on this: Minecraft game rules explained.
Good to know: Newer Minecraft versions have their own game rule for what percentage of players must sleep. It can replace the plugin.
PacketEvents can't hook into the connection
What the message looks like:
PacketEvents failed to add a decoder to the netty pipeline
What's behind it: PacketEvents is a library through which other plugins, such as anti-cheat or login plugins, read network packets. To do this, it inserts its own step, a decoder, into each connection's network pipeline. Netty is the network library the server uses to handle connections. Inserting it failed: Another network handler or an incompatible PacketEvents version blocks the expected order. Plugins built on PacketEvents then don't work properly for this connection.
How to fix it:
- Update PacketEvents, Geyser and Floodgate as well as login and anti-cheat plugins together to releases for your server version.
- Under Files in the
plugins/folder, check that no file is present twice. - Stop the server and restart it completely, without reloading while it's running.
- Test joining with Java and, if you use Geyser, also with Bedrock.
For Bedrock players: Bedrock and Geyser: Messages in the log.
StringIndexOutOfBoundsException: empty or too short text value
What the message looks like:
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
What's behind it: A plugin or mod wanted to read a specific character from a text, for example the first character of a prefix. But the text is shorter, with “length 0” even empty. Often an expected configuration value is empty, such as a prefix, a color value or a name that is entered only as ''. The server keeps running; the function that needs the text fails.
How to fix it:
- In the stack trace, read the first line with a plugin or mod name.
- Under Files, open that plugin's configuration in the
plugins/<Plugin>/folder and look for empty values like''or entries without a value. Back up the file first. - Enter a valid value or take over the default value from the plugin's template.
- Update the plugin and restart.
More on faulty settings: A plugin's configuration file is faulty.
“NoSuchFieldException: childHandler”: Network plugin doesn't match the server
What the message looks like:
java.lang.NoSuchFieldException: childHandler
What's behind it: Netty is the network library the server uses to accept connections. Some plugins access internal parts of it directly in order to hook into connections. Here a network plugin is looking for the internal field “childHandler”, which isn't available in the installed server or Netty version. So the plugin was built for a different server build. Network, proxy or protocol plugins are usually affected; their function fails.
How to fix it:
- Read the stack trace below the message and look for the first network, proxy or protocol plugin, for example ViaVersion, ProtocolLib or Geyser.
- Check under Version which server version is running. The exact release of the server software (build) is also shown in the first lines of
logs/latest.log. - Update the plugin you found to a version for this server build and restart.
- If there's no matching release yet, deactivate the plugin temporarily until the author catches up.
In detail: Plugin doesn't match the server version.
Tab-completion suggestions for a plugin command fail
What the message looks like:
Unhandled exception during tab completion for command '<Command>' in plugin <Plugin>
What's behind it: When you press Tab, Minecraft asks the responsible plugin for possible completions. The plugin's suggestion function fails during this request. The server keeps running, but suggestions for the affected command are unavailable. The error trace below the message, called a stack trace, lists the program calls involved.
How to fix it:
- Read the complete message in the Console or open
logs/latest.logunder Files. Note the plugin, the command, and the first specific error below it. - Check your server version under Version and install a compatible release of the named plugin under Plugins.
- Fully restart the server and try tab completion for the same command again.
- If it still fails, send the complete trace to the plugin author and describe exactly where suggestions stop working.
StackOverflowError while evaluating a search rule
What the message looks like:
Exception in thread "<BackgroundTask>" java.lang.StackOverflowError
What's behind it: A regular expression is a text-search rule, for example in a command filter. Java needs too many nested calls to evaluate this rule and exhausts the call stack. The named background task ends with its work incomplete; the server keeps running. StackOverflowError is different from running out of Java heap memory.
How to fix it:
- Open the complete trace in the Console or read
logs/latest.logunder Files. Use the thread name and any plugin calls to identify the responsible plugin. - Back up its settings and check configurable search or command rules. Simplify the triggering rule if you configured it yourself.
- Update the plugin under Plugins to a compatible release and fully restart the server.
- If the rule is built in, send the author the complete trace and the input that triggers the failure.
Paper blocks entity creation from a background thread
What the message looks like:
Thread <Thread> failed main thread check: entity add
What's behind it: Paper checks that changes to the game world run on the correct thread. A thread is a separate execution path within the program. Here, a background task tries to add an entity to the world and is stopped by the safety check. The affected action fails; the server keeps running.
How to fix it:
- Open the complete trace in the Console or read
logs/latest.logunder Files. A shortened message often contains only server calls. - Continue to the first plugin call and note which action triggered the error.
- Install a release of that plugin compatible with your server version under Plugins, then fully restart the server.
- If the error continues, report it to the plugin author with the complete trace. The plugin call needs to run on the correct thread.
Good to know: Keep the safety check enabled. Disabling it does not fix the incorrect access to the world.
A loot calculation fails because required values are missing
What the message looks like:
java.lang.IllegalArgumentException: Missing required parameters: [<Parameter>]
What's behind it: Minecraft needs information about the current situation to calculate loot and item drops. Here, the calling function does not supply all required values, so this calculation stops. The full error report and the timing of the message help you identify the affected action.
How to fix it:
- Open the message in the Console or under Files in
logs/latest.log, including the call list below it. This list is called a stack trace. - Find the first involved plugin in that list and note which action triggers the error.
- Update that plugin under Plugins and check under Version that your server software is compatible.
- Test the same action again. If it still fails, send the complete report to the relevant project.
Oritech fails during an item interaction with a block
What the message looks like:
Failed to handle packet <Packet>, suppressing error
java.util.NoSuchElementException: null
at <Package>.ItemFluidApi.tryFluidBlockItemInteraction(<File>:<Line>)
What's behind it: Oritech is processing an action that uses an item on a block. Its fluid handling tries to read the first element of an empty list. Java raises a NoSuchElementException, which means an expected entry does not exist. The action fails while the server continues processing other tasks.
How to fix it:
- Note the item, block, and time. Create a backup under Backups before making changes.
- Check Mods for a compatible Oritech update. The Minecraft version, loader, and the intended mod versions of any Modpack must match.
- If the error persists, avoid the triggering interaction for now. Report it to the Oritech author with the full stack trace from
logs/latest.log.
BeautyQuests: quest progress does not refresh in the sidebar
What the message looks like:
[BeautyQuests.ScoreboardManager] Failed to refresh line {quest_advancement} for player <Player>
java.util.NoSuchElementException: No value present
What's behind it: BeautyQuests inserts a placeholder for quest progress into the sidebar. A numeric value expected by the plugin is missing during this update. The affected display line is not refreshed, and the server keeps running.
How to fix it:
- Check the Console or
logs/latest.logunder Files to identify which quest triggers the message. The error trace below it lists the plugin calls involved. - Save a copy of the plugin configuration and update BeautyQuests under Plugins to a release compatible with your server version. Fully restart the server.
- If the error remains, temporarily remove the display line containing
{quest_advancement}from the BeautyQuests configuration under Files. - Report the complete sanitized error trace and the relevant quest configuration to the plugin author. Remove personal information before sharing them.
TAB uses a discarded object after a reload
What the message looks like:
[TAB] java.lang.IllegalStateException: This instance got discarded because plugin was reloaded. Obtain a new instance.
What's behind it: TAB replaced internal objects during a reload. Another operation still accesses an old object that TAB has already discarded. This aborts the affected placeholder registration, so parts of the display may be missing. The server keeps running.
How to fix it:
- Fully restart the server and then check the Console. A full restart loads the components together again.
- If the message returns, save the configuration and update TAB and its extensions to compatible versions. On Fabric, use Mods; use Files for manually uploaded files.
- Use full restarts for now. Note which action triggers the message again.
- If the issue persists, send the TAB author the sanitized error trace and your installed versions.
A plugin leaves background tasks running during reload or shutdown
What the message looks like:
Nag author: '<Author>' of '<Plugin>' about the following: This plugin is not properly shutting down its async tasks when it is being shut down.
What's behind it: The named plugin does not cleanly stop its asynchronous tasks. These are operations running alongside the main server loop. After a reload, old and new plugin tasks can conflict; during a normal shutdown, unfinished tasks may still produce error messages.
How to fix it:
- Check the Console to identify the plugin and whether the message appears during a reload or a normal stop.
- If it followed a reload, fully restart the server. Use full restarts for subsequent plugin changes.
- Save the plugin configuration and update the affected plugin to a compatible version under Plugins.
- If the message continues during normal stops, report it to the plugin author with the relevant log lines and your server version.
Paper blocks POI access from a background thread
What the message looks like:
[ca.spottedleaf.moonrise.common.util.TickThread] Thread failed main thread check: Accessing poi chunk off-main, context=<Thread context>
What's behind it: POI means “point of interest” and refers to important locations such as villager workstations. A background thread is trying to access the associated data for a world section. Paper only permits this access from the responsible game thread and aborts the affected operation.
How to fix it:
- Open the complete error trace in the Console or in
logs/latest.logunder Files. These are the call lines beneath the message; check whether they name a plugin. - Create a backup under Backups. Update Paper under Version and any involved plugins under Plugins to compatible releases.
- Fully restart the server and observe whether the same action triggers the error again.
- If the message persists without a plugin reference, send Paper the sanitized trace, server version, and reproduction steps. If a plugin is named, report it to that plugin’s author.
LuckPerms player data is not initialized when joining
What the message looks like:
Couldn't place player in world
java.lang.IllegalStateException: Capability has not been initialised
What's behind it: Joining fails during a permission check. The error trace passes through LuckPerms, whose player-specific data container, called a capability, is not ready at that point. The affected player is consequently not successfully placed in the world.
How to fix it:
- Read the preceding LuckPerms messages in the Console or
logs/latest.logand identify the involved mods. - Under Mods, check whether LuckPerms and the calling mod support your NeoForge and Minecraft versions. Use mutually supported releases.
- Fully restart the server and retry joining. If the failure persists, report it to the relevant mod authors with the complete trace and version details.
A fluid query cannot find the expected cauldron
What the message looks like:
java.lang.IllegalStateException: Unexpected error: no cauldron at location BlockPos{<Position>}
What's behind it: A fluid interface expects a cauldron at the queried location but encounters a different block state. The trace shows Jade querying that interface for fluid information. The affected query aborts, so information about that block may be unavailable.
How to fix it:
- Read the complete trace in
logs/latest.logand identify which block interaction triggers the message. - Create a backup under Backups. Align Jade, the involved fluid mods under Mods, and NeoForge to mutually supported releases.
- Fully restart and repeat the interaction. If the problem persists, report the exact action and trace to the relevant authors.
MoreRelics produces an invalid number during a combat action
What the message looks like:
Exception caught during firing event: max is NaN
What's behind it: NaN means “Not a Number”, an invalid numeric result. During a combat action, MoreRelics passes this value as an upper bound to a numeric check. The check rejects it and aborts that event handler; the server continues processing subsequent events.
How to fix it:
- Read the full trace in the Console or
logs/latest.logand record the triggering action. - Create a backup under Backups. Under Mods, check for a MoreRelics release compatible with your Modpack and NeoForge.
- Fully restart and test the same action. If it persists, report the trace, mod list, and involved items or effects to the author.
Citizens encounters a missing value while sending packet data
What the message looks like:
java.lang.NullPointerException
at Citizens-<Version>.jar//net.citizensnpcs.PacketEventsHook.<Method>(<File>:<Line>)
What's behind it: While sending packet data, Citizens accesses a missing value through its PacketEvents integration. Java calls this empty value null and raises a NullPointerException. The affected packet handling fails, which can leave updates of NPCs, or non-player characters, incomplete.
How to fix it:
- Read the full trace in
logs/latest.logand record which NPC action triggers the failure. - Preserve the current state under Backups. Check Plugins for mutually supported Citizens and PacketEvents releases matching your server software.
- Replace files under Files if needed, fully restart, and test the same action. If the failure persists, report the trace and version details to the author.
NovaSync cannot find its operating system update helper
What the message looks like:
[NovaSyncPlugin] [os-updates] helper start failed subcmd=status err=IOException:Cannot run program "sudo": Exec failed, error: 2 (No such file or directory)
What's behind it: NovaSync tries to start an external helper for operating system updates. The plugin calls sudo, a program for running commands with another user's privileges. The server environment cannot find this program, so preparation or status checks for the update feature fail. The game server keeps running.
How to fix it:
- Read the full message in the Console or open
logs/latest.logunder Files, and note the time. - Check the documentation for your installed NovaSync version for the requirements of os-updates and its helper.
- Open a ticket and include the time of the message and the plugin version to clarify whether the helper is available in your server environment.
Good to know: This message concerns NovaSync's operating system update feature rather than Minecraft plugin updates.
ProtocolLib cannot identify an error report
What the message looks like:
[ProtocolLib] Error filtering reports: java.lang.IllegalArgumentException: Cannot find report name for Plugin %s tried to register listener for unknown packet %s
What's behind it: ProtocolLib helps other plugins handle network packets, the messages exchanged between the server and game clients. Here, identifying a diagnostic report also fails. That report concerns registration of an unknown packet type. The server keeps running; the affected packet feature and its diagnostics need checking.
How to fix it:
- Read the lines immediately before and after the message in the Console or
logs/latest.log. Look for the plugin involved and the packet type. - Check which server versions ProtocolLib and that plugin support. Update both under Plugins to compatible releases.
- Stop the server before replacing files, then start it again. Test the previously affected feature.
- If the message remains, send the plugin author the complete error block and the versions in use.
EliteMobs cannot enable its ammunition feature
What the message looks like:
[EliteMobs] Cannot enable native ammunition for <Connection>: java.util.NoSuchElementException: packet_handler
What's behind it: EliteMobs is trying to set up its native ammunition feature for a connection. A handler is an internal processing step for network data. The expected step named packet_handler is missing from the location being checked. This feature cannot be enabled for that connection; the server keeps running.
How to fix it:
- Read nearby messages in the Console or
logs/latest.log. Look for earlier errors while the connection was being established. - Compare the server versions supported by EliteMobs with your Version. Also check the dependencies listed by its author.
- Stop the server and update EliteMobs under Plugins to a compatible release. Start the server again and test the affected feature.
- If the error remains, report it to the EliteMobs author with the complete error block, server version, and plugin list. These details help locate the missing processing step.
LuckPerms blocks a login that was inconsistently re-allowed
What the message looks like:
[LuckPerms] Player connection was re-allowed for <Player-ID>
What's behind it: Plugins made conflicting decisions during a login. LuckPerms blocks the re-allowed connection to protect its permissions processing. The affected login fails; the server keeps running.
How to fix it:
- Read the messages immediately preceding the failed login in the Console or
logs/latest.log. Look for data-loading errors and messages from login plugins. - If a database or data-loading error is reported, resolve it first. Then check which login plugin reverses an earlier denial.
- Update the affected components under Plugins to releases compatible with each other and your server version. Stop the server before replacing files, then start it again.
- Test joining again. If the conflict remains, send the relevant plugin authors the complete error block and plugin list.
Good to know: Do not disable authentication checks to bypass the conflict.
Apotheosis: A block interaction fails because an item is empty
What the message looks like:
Failed to handle packet <Packet>, suppressing error
java.lang.IllegalArgumentException: Expected resource to be non-empty: minecraft:air [0]
at <Loader>/dev.shadowsoffire.apotheosis.affix.salvaging.<Call>
What's behind it: A block interaction reaches the Apotheosis salvaging code. An empty item stack is passed to NeoForge's transfer interface, which requires a non-empty item. The interaction aborts while the server keeps running. The stack trace, the chain of calls below the error message, passes through Apotheosis and NeoForge.
How to fix it:
- Save your current state under Backups. Note which block interaction triggers the message and avoid it for now.
- Open the full message in the Console or use Files to read
logs/latest.log. Keep the lines preceding the error too. - Under Mods, check that Apotheosis and its required mods match your Minecraft and NeoForge versions. For a Modpack, use a matching pack release. Stop the server before replacing files, then start it again.
- If the message persists, send the mod author the full stack trace, installed versions, and the action that triggers it.
ProtocolLib: A plugin requests the UUID of a temporary player
What the message looks like:
[<Plugin>] Unhandled exception occurred in onPacketSending(PacketEvent) for <Plugin>
java.lang.UnsupportedOperationException: The method getUniqueId is not supported for temporary players.
What's behind it: ProtocolLib provides temporary player objects during connection establishment. The unique account identifier, the UUID, cannot yet be obtained through this object. A plugin requests it while sending a packet anyway. Its packet handler, the function processing that packet, aborts; the server keeps running.
How to fix it:
- Read the Console to identify the plugin named after “for”. Save the full stack trace from
logs/latest.log. - Under Plugins, check support for your server Version in both that plugin and ProtocolLib. Use mutually compatible releases.
- Stop the server before replacing files. Fully restart it afterwards and test joining again.
- If the error persists, report it to the affected plugin’s author with the full trace, installed versions and triggering action.
Your message isn't listed?
Read the whole message, including the lines before it. They often show what the plugin was trying to do. In the stack trace, the file names in the “at” lines, such as <Plugin>.jar, and the package names reveal the plugin or mod. Lines with java.base, net.minecraft, org.bukkit or io.papermc belong to Java and the server. Create a backup, update the culprit and restart. If you get stuck, open a ticket and include the time of the message.
You can order a matching server here: Rent Minecraft server.