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.
Plugin crashes on enabling ("Error occurred while enabling")
What the message looks like:
Error occurred while enabling <Plugin> v<Version> (Is it up to date?)
java.lang.NoSuchMethodError: '<Method>'
at <Plugin>-<Version>.jar//<Package>.onEnable(…)
What's behind it: The server loaded the plugin, but it crashed while being enabled and shut itself down. The server keeps running normally, but this plugin's functionality is completely missing: no commands, no menus, no permissions, and no further error message appears in the game. If it's a protection, permissions or login plugin, that protection is missing until you fix the error. Usually the plugin matches a different server or plugin version than the one installed.
How to fix it:
- The error line names the plugin and version. Check on the plugin page whether there is a release for your server version, and update the plugin.
- If
NoSuchMethodErrororNoClassDefFoundErrorappears below it with the name of another plugin, those two plugin versions don't fit together. Bring one of them to a matching version. - If a database error such as
Communications link failureappears below it, the plugin can't reach its database. Check the credentials in its configuration and under Databases. - Restart the server and check the Console.
Good to know: The same message with "disabling" when stopping is often just a consequence of the startup error. More on version conflicts: 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.
Plugin crashes during initialization ("Is it up to date?")
What the message looks like:
[<Plugin>] Error initializing plugin '<Plugin>-<Version>.jar' in folder 'plugins' (Is it up to date?)
java.lang.ExceptionInInitializerError
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. Almost always the plugin version doesn't match the server version. The error line below often names the version or a missing class, meaning a piece of code the plugin expects in the server.
How to fix it:
- Install the plugin version intended for your server version, or update the plugin. The plugin page lists the 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.
Plugin installed twice ("Ambiguous plugin name")
What the message looks like:
[ModernPluginLoadingStrategy] Ambiguous plugin name 'ViaVersion' for files 'plugins/ViaVersion.jar' and 'plugins/ViaVersion-<Version>.jar' in 'plugins'
What's behind it: Two JAR files in the plugins folder have the same plugin name. The server loads only one of them, and you don't know for sure which. Typically a new version was uploaded without deleting the old one. Or two plugins contain the same thing, such as FastAsyncWorldEdit, which already includes WorldEdit. The server runs, but possibly with the old version.
How to fix it:
- The message names both files. Stop the server and open the
pluginsfolder under Files. - Delete the duplicate or older JAR. Keep the version that matches your server version.
- With WorldEdit and FastAsyncWorldEdit, you keep only one of the two.
- Restart the server. The
pluginscommand in the Console shows which plugins are loaded.
Good to know: When updating, always download or delete the old JAR first before uploading the new one. File names with version numbers make duplicate plugins easy to overlook.
Mod instead of plugin in the plugins folder
What the message looks like:
[DirectoryProviderSource] Error loading plugin: java.lang.IllegalArgumentException: Directory 'plugins/<Mod>-fabric-<Version>.jar' does not contain a paper-plugin.yml or plugin.yml! Could not determine plugin type, cannot load a plugin from it!
What's behind it: The plugins folder contains a JAR without a plugin.yml, meaning without the file by which Paper recognizes a plugin. Usually it's a mod for Fabric or Forge, and the file name then often contains "fabric" or "forge". Sometimes it's also a Java library such as a database driver. Paper can't load something like that and skips the file. The server keeps running, but the hoped-for feature is missing.
How to fix it:
- Delete the named file from the
pluginsfolder under Files. - Look on the project page for a plugin release for Paper or Spigot. Many projects offer both.
- If there is only a mod, you need a mod server. Under Change software / loader, choose Fabric, Forge or NeoForge. Your Paper plugins will then no longer run there.
- Restart the server.
Good to know: Some mods only run in the game client anyway and don't belong on the server at all. Switching the software is described in Switching server software and version in the panel.
Plugin file replaced while running ("zip file closed")
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.
What's behind it: A plugin JAR was overwritten or deleted while the server was running, or someone used /reload. The plugin then tries to load code from its file that the server has already closed, and throws errors. This especially affects plugins that constantly work in the background, such as LuckPerms. Features of the plugin may fail until the server restarts.
How to fix it:
- Restart the server completely. This usually takes care of the message.
- In the future, only replace plugin files while the server is stopped: stop, replace the JAR under Files, start.
- Avoid
/reload. The command reloads all plugins while running, and many plugins can't cope with that. - If the message appears without a prior file swap, read the lines before it in the Console. They show which plugin is affected.
Good to know: After a clean restart, the plugin is fully back. This message alone doesn't cause data loss, but unsaved changes the plugin made during that time may be lost.
Two plugin files with the same name ("duplicate plugin identifier")
What the message looks like:
[ModernPluginLoadingStrategy] Could not load plugin 'worldedit-bukkit-<Version>.jar' in folder 'plugins'
java.lang.IllegalStateException: Provider SpigotPluginProvider{path=plugins/worldedit-bukkit-<Version>.jar, …} attempted to add duplicate plugin identifier …
What's behind it: Two JAR files provide the same plugin name. Paper loads only one of them 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. - Start the server and use the
pluginscommand in the Console to check that the plugin is loaded only once.
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.
File in the plugins folder is not a runnable plugin
What the message looks like:
[DirectoryProviderSource] Error preparing plugin context: Directory 'plugins/<Plugin>-<Version>.jar' failed to update!
Failed to open plugin jar …
What's behind it: A file in the plugins folder can't be loaded as a plugin, so the plugin doesn't start. Often it's the source code instead of the plugin (the file name ends in -sources.jar), the documentation (-javadoc.jar), an aborted download, a ZIP file renamed to .jar, or a plugin for a different platform. "Invalid plugin.yml" or "only DEFLATED entries can have EXT descriptor" also belong to this group: the file isn't structured the way a plugin must be.
How to fix it:
- Stop the server and delete the named file from
pluginsunder Files. - Download the plugin again from the official page. Take the actual
.jar, not-sources.jaror-javadoc.jar. - If the plugin comes as a ZIP archive, extract it on your own computer and upload only the JAR it contains.
- Make sure the file is intended for Paper or Spigot, and restart the server.
Good to know: You can often recognize a release for a different platform by the file name or by the download page, which offers several variants to choose from.
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.
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.