Paper stops a Minecraft server when its plugins form a circular load-order relationship. Read the cycle printed in the startup log, identify the plugins named in it, then update, remove, or correct one of their dependency declarations. That breaks the loop and is the durable fix. The -Dpaper.useLegacyPluginLoading=true JVM property can start the server temporarily, but it bypasses Paper’s protection and should not replace repairing the plugins.
Godlike.Host offers modded Minecraft server hosting with one-click modpacks, a built-in mod installer and up to three free backups a day.
What “Circular Dependencies Detected” means
This is a Paper or Bukkit plugin-loading error, not a corrupted world-save message. During startup, Paper builds an ordering graph from every plugin’s metadata. A required or requested relationship says which plugin should load first. A circular dependency exists when those relationships eventually point back to the plugin where they began.
| # | Preview | Product | Price | |
|---|---|---|---|---|
| 1 |
|
Minecraft - Nintendo Switch | $29.82 | Buy on Amazon |
| 2 |
|
Minecraft: Switch Edition | $32.65 | Buy on Amazon |
| 3 |
|
Minecraft Legends Deluxe Edition | $49.00 | Buy on Amazon |
| 4 |
|
Minecraft | Standard Edition | XBOX Digital Code | $19.99 | Buy on Amazon |
| 5 |
|
Minecraft | Java & Bedrock Deluxe Collection | Windows Digital Code | $39.99 | Buy on Amazon |
As an Amazon Associate I earn from qualifying purchases.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
For example, Plugin A can require Plugin B to load first, Plugin B can require Plugin C, and Plugin C can require Plugin A. The resulting chain is Plugin A -> Plugin B -> Plugin C -> Plugin A. No first plugin satisfies all three requirements. Paper therefore refuses to guess an order and shuts the server down. Its documentation states: “If Paper detects a loop, your server will be shut down with an error.” See the Paper plugins reference.
The names in the chain are not a universal list of faulty plugins. They are the exact plugins and versions installed on your server, along with the ordering metadata those files declare. An example shown in Paper’s troubleshooting guide is illustrative only; use the cycle printed by your own server.
#1 Best Overall
- Minecraft is a game about placing blocks and going on adventures
- Explore randomly generated worlds and build amazing things from the simplest of homes to the grandest of castles
- Play in creative mode with unlimited resources or mine deep into the world in survival mode, crafting weapons and armor to fend off the dangerous mobs
- Play on the go in handheld or tabletop modes
- Includes Super Mario Mash-Up, Natural Texture Pack, Biome Settlers Skin Pack, Battle & Beasts Skin Pack, Campfire Tales Skin Pack; Compatible with Nintendo Switch only
Stop the restart loop and preserve the evidence
Repeatedly launching a server that immediately exits can obscure the first useful error and make changes difficult to track. Stop the server cleanly, make a backup of the server directory, and save the startup output before testing a fix.
- Back up the world folders,
pluginsdirectory, configuration files, and the current Paper JAR. - Do not delete worlds, regenerate a map, or replace Java before checking the plugin cycle. Paper’s diagnostic sequence starts with plugin loading.
- Keep one copy of the original plugin JARs so you can restore the previous state if a test introduces a second problem.
If a hosting panel hides the console after a failed launch, download the server log or open logs/latest.log. Paper’s basic troubleshooting guide and plugin installation guide identify that file as the normal place to investigate startup failures.
Read the exact dependency cycle
1. Find the first complete loop
Look near the end of the startup output for “Circular dependencies detected” or “Circular plugin loading detected.” Paper normally prints an arrow-separated chain. Copy every plugin name in the first complete loop, including the plugin repeated at the end. For example, a line such as Plugin1 -> Plugin2 -> Plugin3 -> Plugin4 -> Plugin1 identifies four participants.
There may be more than one loop. Start with the first one that prevents startup, because correcting it can change or remove later messages. Record the exact capitalization and, if shown, the version numbers.
2. Treat the first named plugin as an author-contact lead
Paper’s troubleshooting advice says there is often a problematic plugin and that administrators should report the issue to its authors. Contact the maintainer of the first plugin in the printed chain with the complete log, the Paper build, the Minecraft version, and the versions of every plugin in the cycle. Include the unedited dependency line rather than paraphrasing it.
Rank #2
- Explore randomly-generated worlds and build amazing things from the simplest of homes to the grandest of castles
- Play in Creative Mode with unlimited resources or mine deep into the world in survival mode, crafting weapons and armour to fend off the dangerous mobs
3. Check what changed immediately before the failure
Compare the current plugins folder with your backup or change notes. A cycle commonly appears after adding a plugin, updating one of the named JARs, installing a compatibility bridge, or editing plugin.yml or paper-plugin.yml. The timing does not prove which plugin is wrong, but it gives you a controlled first candidate.
Recommended Free Tools
Understand the metadata that creates the loop
Paper reads dependency and ordering entries from each plugin descriptor. The definitions in the plugin.yml and paper-plugin.yml documentation determine whether another plugin is required, optional, or merely preferred before this one.
| Entry | Meaning during loading | How a cycle can form |
|---|---|---|
depend |
The named plugin is required and must load first. Startup should not continue if it is unavailable. | Plugin A declares depend: [B] while B declares depend: [A], creating a direct two-plugin loop. |
softdepend |
The named plugin is optional, but the loader requests that it be considered before this plugin when present. | Two optional integrations can still create reciprocal ordering requests when both JARs are installed. |
loadbefore |
This plugin asks to load before the named plugin. | A loadbefore request can conflict with the other plugin’s depend, softdepend, or opposing loadbefore entry. |
Inspect the descriptors inside the JARs named in the cycle. A JAR is a ZIP archive, so its metadata can be viewed with an archive tool without running the plugin. Do not edit a vendor JAR as a first choice: an update may overwrite the change, and a malformed descriptor can prevent the plugin from loading at all. If the declarations are genuinely reciprocal, the plugin authors should publish a compatible release with one valid direction or a shared core dependency.
Permanent repair: remove the cycle one change at a time
Step 1: Make a controlled test copy
Use a backup or staging instance with the same Paper build, Minecraft version, plugins, and configuration. If you must work on the live server, stop it fully before moving a JAR. Change only one variable per restart; otherwise you cannot tell which action removed the loop.
Step 2: Disable the most recently changed suspect
Move one plugin JAR from plugins to a temporary folder outside the server, then start Paper. Removing the problematic plugin is the immediate recovery method recommended in Paper’s troubleshooting material. If the server starts, the removed plugin is either part of the cycle or the change that exposed it. Keep the log from this test.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Rank #3
If the same cycle appears, restore that JAR and test the next named plugin. Never remove several participants at once unless the server is needed only for emergency access; a multi-plugin change hides the cause and can create missing-dependency errors.
Step 3: Install compatible versions
Check each participant’s release notes and compatibility declaration for your Minecraft and Paper versions. Replace an outdated JAR with a release that corrects the dependency metadata, or roll back the newly updated plugin to the last known working version. Remove duplicate JARs with different versions; loading two copies can produce confusing dependency and provider errors even after the original loop is gone.
Step 4: Correct an edited descriptor only when you own the plugin
If this is your plugin, or its maintainer gives you a specific patch, make the graph one-directional. A common design is a shared API or core plugin that loads first, with separate feature plugins depending on that core; the feature plugins do not depend on one another. Rebuild the JAR, replace the old copy, and test on the backup instance.
For a third-party plugin, do not guess which declaration to delete. Removing a real required dependency can let the server boot while leaving commands, events, or data handling broken. Send the author the cycle and ask which relationship should be optional, removed, or redirected through a common core.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Step 5: Confirm a clean startup and normal behavior
After the server starts, read the complete log rather than stopping at the first “Done” message. Confirm that every intended plugin enables, no dependency is reported as missing, and the affected commands or integrations work. Then repeat the test after restoring your normal startup script and configuration.
Rank #4
- CREATE YOUR WORLD — Build whatever you imagine in an infinite world that is unique in every playthrough.
- EXPLORE AND CRAFT — Discover biomes, resources, and mobs, then craft your way through a sandbox world full of surprises.
- SURVIVAL ADVENTURES — Face mysterious foes, travel across varied landscapes, and venture into perilous dimensions.
- PLAY TOGETHER — Play solo or join friends in local split-screen and cross-platform play across console, mobile, and PC. Online multiplayer supports up to 8 players.
- COMMUNITY PLAY — Connect with players on community servers, or subscribe to Realms Plus (sold separately) to play with up to 10 friends on a private server.
Temporary workaround: legacy plugin loading
Paper provides a compatibility switch that allows cyclic loading:
-Dpaper.useLegacyPluginLoading=true
Paper documents the property in its system-properties reference. Its default is false. The legacy path is a last resort because it permits an order that the modern loader rejected; plugins can observe inconsistent initialization, fail later in less obvious places, or behave differently after a future Paper update. Paper warns that this path may not be supported indefinitely. The troubleshooting guide likewise treats it as a temporary measure for hard-to-debug situations.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchLinux, macOS, and other shell scripts
Put the property among the JVM options, before -jar:
java -Dpaper.useLegacyPluginLoading=true -Xms2G -Xmx4G -jar paper.jar nogui
The order matters conceptually: -D... is a Java system property, while -jar starts the server application. Keep your existing memory values and JAR filename if they differ from this example.
Windows batch files
Add the same -Dpaper.useLegacyPluginLoading=true token to the existing java command, before -jar. Do not place it on a separate line unless that line is itself a complete Java launch command.
Best Value
- DELUXE COLLECTION — Includes Minecraft: Java & Bedrock Edition, three Bedrock add-ons, three exclusive Character Creator items, and 700 Minecoins.
- CREATE YOUR WORLD — Build whatever you imagine in an infinite world that’s unique in every playthrough.
- EXPLORE AND CRAFT — Discover biomes, resources, and mobs, then craft your way through a sandbox world filled with surprises.
- SURVIVE THE ADVENTURE — Face mysterious foes, travel across exciting landscapes, and venture into perilous dimensions.
- PLAY TOGETHER — Play cross-platform with friends in Bedrock Edition on console, mobile, and PC, or join community servers in Java Edition on PC, Mac, and Linux. Online console multiplayer requires a platform-specific subscription (sold separately).
Hosting control panels
Some managed panels expose a checkbox or startup-variable field instead of the raw command line. One documented example labels the option “Paper legacy plugin loading” and applies it after enabling the setting and restarting: panel instructions for the Paper legacy-loader setting. The label and location vary by host, so confirm that the panel adds the JVM property rather than a plugin configuration value.
Free tools Windows power users keep installed
One-click scans. No signup required.
Use the switch only long enough to access the server, export necessary data, or verify which plugin needs repair. Remove it after installing a compatible plugin release and perform a normal startup test.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Permanent repair versus the legacy workaround
| Criterion | Repair the dependency graph | Enable legacy loading |
|---|---|---|
| Startup reliability | Restores a deterministic order that Paper can validate. | May start the server, but order-dependent plugins can still initialize unpredictably. |
| Future Paper compatibility | Aligned with the current loader and less dependent on deprecated behavior. | Paper warns the legacy path may not remain supported. |
| Hidden behavior risk | Low once the metadata and plugin versions are compatible. | Higher; failures can move from startup into runtime events or integrations. |
| Reversibility | Requires restoring or replacing JARs, but the change can be tested on a backup. | Easy to toggle by removing one JVM flag, although the underlying defect remains. |
| Does it remove the defect? | Yes: it removes the reciprocal requirement or installs a corrected release. | No: it bypasses detection and leaves the cycle installed. |
Troubleshooting branches when the first fix does not work
The same cycle is printed after removing one plugin
Verify that the JAR was actually moved from the active plugins directory and that a duplicate copy is not present under another filename. Check the new latest.log rather than an older console transcript. If the participant list changes, work from the newest complete cycle.
The server now reports a missing dependency
The removed plugin may have been required by another plugin, even if it was not the correct permanent fix. Restore the backup, then install compatible versions or ask the author for a release that removes the reciprocal declaration. Do not solve a missing dependency by randomly adding similarly named JARs.
The server starts with the flag but features fail later
That confirms only that legacy loading bypassed the startup check; it does not establish that the plugins are compatible. Capture the first runtime stack trace, disable the legacy property, and return to the cycle’s participants. Report both the startup chain and the later failure to the relevant authors.
No cycle appears in the visible console
Open logs/latest.log directly and search for “circular,” “dependency,” and “plugin loading.” A panel may truncate the console or show only the last restart. Download the full file before changing anything.
You suspect the world or Java installation
Test with a copy of the server and the same Java runtime after the plugin set is known to start. The circular-dependency message describes an ordering conflict in plugin metadata; deleting world data or replacing Java does not remove that graph. Start with the named plugins and their descriptors.
Preventing the error after recovery
- Keep a dated list of plugin JAR filenames and versions so an update can be correlated with a new cycle.
- Apply one plugin update at a time, restart on a backup instance, and retain the previous JAR until the test passes.
- Read release notes for dependency changes before installing integrations that connect two existing plugins.
- Keep the Paper startup log from every change; the exact chain is more useful to an author than a screenshot saying only “server stopped.”
- For plugins you develop, define one-way dependencies around a shared API or core and avoid reciprocal
depend,softdepend, andloadbeforedeclarations. - Remove
paper.useLegacyPluginLoading=truefrom scripts and panel settings once the graph is repaired, then verify a clean startup without it.
Key takeaway
Paper is refusing to choose an unsafe startup order, not reporting a damaged Minecraft world. The reliable solution is to follow the arrow chain in logs/latest.log, isolate the named plugin change, and update, remove, or reconfigure the dependency that points back into the loop. Legacy loading can provide short-term access, but it should be treated as a reversible emergency measure while the plugin authors or administrators correct the metadata.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




