On Paper and Spigot, a plugin is a single JAR file (a Java archive) in the plugins folder. If this file is corrupted, empty, duplicated or actually a mod or library, the server won't load the plugin or it crashes on startup. Each section below covers one of these messages. Via "Learn more" in the Server health, you land directly on the matching one.
You can find the full text in the Console or under Files in logs/latest.log. The lines directly below the message are usually the important ones, since that's where the actual reason is. Only replace plugin files while the server is stopped. Create a backup under Backups beforehand, especially if world or configuration files might also be affected.
“Error occurred while enabling …”: Plugin fails to start
What the message looks like:
Error occurred while enabling EssentialsSpawn v<Version> (Is it up to date?)
Error occurred while enabling WorldEditDisplay v<Version> (Is it up to date?)
Error occurred while disabling FurnitureLib v<Version>
What's behind it: The server loaded the plugin, but it crashed during activation and was disabled. The server keeps running, but the plugin's features are entirely missing. If it provides protection, permissions or login checks, that protection is missing too. Usually the plugin targets a different server or plugin version.
How to fix it:
- The error names the plugin and version. Check which release supports your server version and update with the server stopped.
- If
NoSuchMethodError(a missing method) orNoClassDefFoundError(a missing program component) follows, check the named dependencies. EssentialsSpawn and EssentialsX must match, for example; a Bukkit reference can concern the server interface. - For a database error such as
Communications link failure, check credentials in the plugin configuration and under Databases. - Restart and check the Console for successful plugin activation.
Good to know: “Error occurred while disabling” concerns shutdown. If it follows an activation error, investigate that earlier error first. More: Plugin doesn't match the server version.
Plugin file is skipped ("Could not load 'plugins/…jar'")
What the message looks like:
[ModernPluginLoadingStrategy] Could not load 'plugins/<Plugin>.jar' in 'plugins'
org.bukkit.plugin.UnknownDependencyException: Unknown/missing dependency plugins: [ProtocolLib]. Please download and install these plugins to run '<Plugin>'.
What's behind it: The server couldn't load the named JAR as a plugin and skips it. A JAR (Java archive) is the file a plugin comes in. The rest of the server can keep running, but this plugin is missing entirely. The cause is a corrupted or invalid file, or a JAR without a readable plugin.yml, the description file by which the server recognizes a plugin. With "Failed to run bootstrapper", a Paper plugin failed in the very earliest startup phase.
How to fix it:
- Read the line below the message. If
UnknownDependencyExceptionappears there, another plugin is missing: install the plugin in the square brackets. - Otherwise, stop the server and delete the affected JAR under Files in the
pluginsfolder. - Download a release from a trustworthy source that matches your server type (Paper, Spigot) and your Minecraft version, and upload it.
- Restart the server.
Good to know: If the path points to plugins/.paper-remapped, that is a copy Paper creates for Spigot plugins. Replace the original JAR in plugins; Paper regenerates the copy on the next start. On missing plugins: Plugin needs another plugin.
“Error initializing plugin …”: Plugin fails during startup
What the message looks like:
[<Plugin>] Error initializing plugin '<Plugin>-<Version>.jar' in folder '<Folder>' (Is it up to date?)
java.lang.ExceptionInInitializerError
java.lang.ArrayIndexOutOfBoundsException: Index <Index> out of bounds for length <Length>
What's behind it: The plugin crashed while the server was preparing it, before it was even enabled. It stays disabled, its commands and features are missing, and the server keeps running without it. Usually the plugin version doesn't match the server version. The error line below often names the version or a missing class, meaning a component the plugin expects in the server.
How to fix it:
- First read the following lines in
logs/latest.logunder Files, especiallyCaused by. They identify the underlying cause. - Install the plugin release for your server version or update it. The plugin page lists supported versions.
- If there is no matching release for your server version yet, wait for a plugin update or stay on a supported version under Version for now.
- If that doesn't help, remove the plugin as a test and report the error to the plugin author, including the complete message.
- Restart the server.
Good to know: If Geyser reports "English locale not found", the file is incomplete. Download Geyser again from the official project page. More on this: Plugin doesn't match the server version.
Paper doesn't load a plugin ("Could not load plugin … in folder")
What the message looks like:
[ModernPluginLoadingStrategy] Could not load plugin '<Plugin>-<Version>.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.ExceptionInInitializerError
What's behind it: Paper couldn't load the named plugin at startup. The plugin is missing entirely, while the rest of the server starts. The line directly below gives the reason, usually a broken plugin.yml, a missing dependency or a build for a different server version. A message about "API version string" means, for example, that the version entry in the plugin.yml has a format your server version doesn't understand.
How to fix it:
- Read the line directly below the message.
- Download the plugin again, matching your server version.
- Stop the server, remove the old JAR from
pluginsunder Files and upload the new one. - Restart the server and check in the Console whether the plugin loads now.
Good to know: If the line below names a missing plugin, the problem isn't the file itself. In that case, Plugin needs another plugin helps.
“Ambiguous plugin name …”: Plugin installed twice
What the message looks like:
[ModernPluginLoadingStrategy] Ambiguous plugin name 'ViaVersion' for files 'plugins/ViaVersion.jar' and 'plugins/ViaVersion-<Version>.jar' in 'plugins'
[ModernPluginLoadingStrategy] Ambiguous plugin name 'LPC' for files 'plugins/.paper-remapped/LPC-<Version>.jar' and 'plugins/.paper-remapped/LPC-<OtherVersion>.jar' in 'plugins/.paper-remapped'
[ModernPluginLoadingStrategy] Ambiguous plugin name 'Slimefun' for files 'plugins/.paper-remapped/<File>.jar' and 'plugins/.paper-remapped/<OtherFile>.jar' in 'plugins/.paper-remapped'
What's behind it: Two JARs declare the same internal plugin name, even with different filenames. Usually these are old and new versions, or two variants of the same plugin. The server loads only one and may run the unwanted version.
How to fix it:
- Stop the server and open
pluginsunder Files. - Identify the original JARs corresponding to both named files.
plugins/.paper-remappedcontains copies adapted by Paper; remove the unwanted original JAR fromplugins, rather than just its copy. - Keep exactly one release compatible with your server version. Leave plugin data folders intact.
- Restart. Check the Console for the message; the
pluginscommand lists loaded plugins.
Good to know: Update plugins with the server stopped and remove the old JAR before uploading the new one.
“does not contain a paper-plugin.yml or plugin.yml”: File is not a plugin
What the message looks like:
Directory 'plugins/<Mod>-fabric-<Version>.jar' does not contain a paper-plugin.yml or plugin.yml!
Directory 'plugins/<Mod>-neoforge-<Version>.jar' does not contain a paper-plugin.yml or plugin.yml!
What's behind it: The plugins folder contains a JAR without either plugin.yml or paper-plugin.yml, the descriptor files used for plugins. Usually it is a Fabric, Forge or NeoForge mod; sometimes it is a Java library such as a database driver. Paper and its variants cannot load this file as a plugin and skip it. The server keeps running, but the expected feature is missing.
How to fix it:
- Stop the server and remove the named file from
plugins/under Files. - Look on the project page for a Paper or Spigot release matching your Minecraft version.
- If only a mod exists, first check whether it belongs on a server. Some mods run only in the game client.
- To switch to a mod server, create a backup under Backups first. Under Change software / loader, select the exact loader the mod requires. Your Paper plugins will no longer run there.
- Restart and check the Console.
Switching software is described in Switching server software and version in the panel.
“zip file closed”: Plugin file replaced while the server was running
What the message looks like:
java.lang.IllegalStateException: zip file closed
java.lang.IllegalStateException: The plugin classloader for <Plugin> has thrown a zip file error.
io.netty.handler.codec.EncoderException: java.lang.BootstrapMethodError: java.lang.IllegalStateException: zip file closed
What's behind it: A plugin JAR, the plugin's program file, was overwritten or deleted while the server was running, or someone used /reload. The plugin then tries to load components from its already closed file and throws errors. Plugin features may fail until the server restarts. The message can also appear during shutdown.
How to fix it:
- Restart the server completely. If the affected plugin JAR is missing, restore it under Files while the server is stopped before starting it again.
- In future, only replace plugin files while the server is stopped: stop, replace the JAR under Files, start.
- Avoid
/reload. The command reloads plugins while the server is running, and many plugins cannot handle that. - If the message appears without a prior file replacement, read the preceding lines in the Console. They help you identify the affected plugin.
Good to know: Changes that the plugin had not saved during the error may be lost.
“duplicate plugin identifier”: Two plugin files claim the same name
What the message looks like:
[ModernPluginLoadingStrategy] Could not load plugin '<Plugin>.jar' in folder 'plugins'
[ModernPluginLoadingStrategy] Could not load plugin '<Plugin>.jar' in folder 'plugins/.paper-remapped'
java.lang.IllegalStateException: … attempted to add duplicate plugin identifier <Plugin> …
What's behind it: Two JAR files provide the same plugin name; Paper loads only one and rejects the other. Usually the old and new versions of a plugin sit side by side in the plugins folder. Or two plugins claim the same name: FastAsyncWorldEdit (FAWE for short) already includes WorldEdit, so an additional WorldEdit JAR collides with it. The server keeps running, but Paper explicitly warns about follow-up errors.
How to fix it:
- Stop the server.
- Under Files, delete the older or redundant JAR in the
pluginsfolder. With FAWE, that is the separateworldedit-bukkitJAR. - If the message names
plugins/.paper-remapped, first check the original JAR files inpluginsfor duplicate releases. - Start the server and check in the Console that the warning has disappeared and the intended plugin loads.
Good to know: The familiar WorldEdit commands keep working with FAWE. How to build with it and undo mistakes is shown in WorldEdit: Selecting areas, building and undoing.
ProtocolLib warns about a plugin reloader
What the message looks like:
*** ProtocolLib does not support plugin reloaders! ***
*** Please use the built-in reload command! ***
What's behind it: ProtocolLib hooks deeply into the network connection between server and players. Plugin reloaders are plugins such as PlugMan or PlugManX that load or unload individual plugins while the server is running. ProtocolLib doesn't support this and warns of an inconsistent state. In that case, ProtocolLib and all plugins built on it may malfunction, such as anti-cheat or display plugins.
How to fix it:
- Don't reload ProtocolLib and plugins that use it with a plugin reloader.
- After making changes to plugins, restart the entire server completely.
- If you don't need the reloader, remove it from the
pluginsfolder under Files so it isn't used by accident. - If you just used a reloader, do one complete restart now so everything is loaded cleanly again.
Good to know: The message recommends the built-in reload command. That also reloads all plugins while running. The safest way remains a full restart.
“Error loading plugin”: Invalid plugin file or plugin name
What the message looks like:
[DirectoryProviderSource] Error preparing plugin context: Directory 'plugins/<File>.jar' failed to update!
[DirectoryProviderSource] Error loading plugin: Directory 'plugins/<File>.jar' failed to load!
[DirectoryProviderSource] Error loading plugin: Restricted name, cannot use 0x20 (space character) in a plugin name.
What's behind it: A file in plugins cannot load, so the plugin does not start. Common causes include source files (-sources.jar), documentation (-javadoc.jar), an incomplete download or a release for another platform. “Invalid plugin.yml” and “only DEFLATED entries can have EXT descriptor” also indicate an unsuitable file. “Restricted name” with “0x20” means the plugin name stored in plugin.yml contains a space.
How to fix it:
- Stop the server and remove the named JAR from
pluginsunder Files. - Download the actual plugin JAR from its official page, matching Paper or Spigot. Fabric or Forge mods do not belong in their
pluginsfolder. - If the download is a ZIP, extract it on your computer and upload the appropriate JAR.
- For “Restricted name”, use a release corrected by the developer. The stored plugin name needs fixing; renaming the file does not fix this error.
- Restart and check the Console.
Good to know: Keep existing plugin data and configuration when replacing the JAR.
Java library sits in the plugins folder as a plugin
What the message looks like:
[DirectoryProviderSource] Error preparing plugin context: Directory 'plugins/asm-util-<Version>.jar' failed to update!
What's behind it: A Java library such as ASM or Nashorn sits as its own file in the plugins folder. Libraries are building blocks that plugins use internally; they aren't plugins themselves. Paper can neither load this JAR as a plugin nor update it, and skips it. The server keeps running. Such files end up there, for example, when an archive with several files was uploaded in full.
How to fix it:
- Delete the named library JAR from
pluginsunder Files. - Install only the actual plugin. It brings its libraries along itself or downloads them at startup.
- Restart the server and check the Console.
- If a plugin then reports that something is missing, read its installation guide instead of adding libraries by hand.
Good to know: If a plugin really needs a second plugin, it states this explicitly. How to recognize that: Plugin needs another plugin.
Plugin file is empty ("zip file is empty")
What the message looks like:
[DirectoryProviderSource] Error loading plugin: zip file is empty
What's behind it: A file in the plugins folder is 0 bytes in size or its upload was aborted. Paper can't open it and skips it. The plugin is missing, while the server keeps running. This often happens when the connection drops during upload or the download was already incomplete on your own computer.
How to fix it:
- Under Files, open the
pluginsfolder and look for the file with 0 bytes or a conspicuously small size. - Delete it.
- Download the plugin again from a trustworthy source and upload it while the server is stopped. Wait until the upload has fully finished.
- Restart the server and check in the Console whether the plugin loads.
Good to know: For large files or many files, SFTP is often more reliable than uploading in the browser, see Editing server files in the panel and connecting via SFTP.
PlaceholderAPI: An expansion file has no loadable expansion class
What the message looks like:
[PlaceholderAPI] Failed to load expansion <File>.jar, as it does not have a class which extends PlaceholderExpansion
What's behind it: A PlaceholderAPI expansion supplies additional text placeholders. Its JAR file is examined, but the required expansion class cannot be found or loaded. This expansion stays unavailable. The server keeps running, but its placeholders cannot provide their intended values.
How to fix it:
- Read the preceding Console messages. Additional loading errors may identify a missing dependency.
- Under Files, check that the named file is actually the intended PlaceholderAPI expansion. Back it up before replacing it.
- Download the expansion matching your installed PlaceholderAPI version from its official source. Replace the affected file and remove duplicate copies of the same expansion.
- Fully restart the server. Check the startup messages and test a placeholder supplied by that expansion.
Your message isn't listed?
Read the entire message in the Console or in logs/latest.log, including the lines before and after it. You can find the name of the plugin file in the message itself or in the stack trace, the list of indented at lines: there the JAR appears before the double slash, such as <Plugin>.jar//. Folder names like plugins/<Plugin>/ also show which plugin is affected. Create a backup before replacing files. If you're still stuck, open a ticket and include the time of the message.
You can order a matching server here: Rent Minecraft server.