The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Godlike.Host offers modded Minecraft server hosting with one-click modpacks, a built-in mod installer and up to three free backups a day.
If a Paper or Bukkit-based Minecraft server stops with “Circular dependencies detected!” or “Circular plugin loading detected!”, the cause is a loop in the plugins’ requested load order. Read the cycle printed in the startup log, then update, remove, or correct one of the named plugins so the dependencies point in one direction. Do not delete worlds or reinstall Java as a first response.
Paper deliberately shuts down instead of guessing which plugin should load first. The permanent fix is to remove the loop; -Dpaper.useLegacyPluginLoading=true can force an older loading path temporarily, but it is a compatibility fallback rather than a repair.
Recommended Free Tools
What the error means
Paper loads plugins according to dependency and ordering declarations in each plugin’s metadata. A circular dependency exists when those declarations form a path that eventually returns to the plugin where it started. For example, Plugin A requires Plugin B first, Plugin B requires Plugin C first, and Plugin C requires Plugin A first. No first plugin can satisfy all three requests.
Paper’s plugin reference states: “If Paper detects a loop, your server will be shut down with an error.” (Paper plugins reference) The troubleshooting documentation illustrates a chain such as Plugin1 -> Plugin2 -> Plugin3 -> Plugin4 -> Plugin1. The names in that example are illustrative; your server’s exact cycle is the one that matters.
#1 Best Overall
- Play and share with friends on console, mobile and Windows 10
- discover community creations in the new in-game store
- access new mini games and game modes through servers
This is a server-side plugin loading problem. It does not, by itself, indicate a damaged single-player world, a corrupt world save, or an incorrect Java installation. Start with the plugins named in the loop and the metadata that controls their order.
Read the cycle before changing anything
Repeatedly restarting without recording the first error can hide the useful part of the log and make troubleshooting harder. Stop the server, make a backup of the server directory, and inspect the first circular chain reported during startup.
Free tools Windows power users keep installed
One-click scans. No signup required.
- Stop automatic restart attempts. If a hosting panel keeps restarting the process, disable the restart-on-crash option temporarily so the original message remains visible.
- Open the current log. On a normal Paper installation, inspect
logs/latest.log. Paper’s troubleshooting and plugin-installation guidance identify the startup log as the place to find load failures (Basic troubleshooting; Adding plugins). - Find the circular-dependency message. Look for “Circular dependencies detected” or “Circular plugin loading detected,” then copy the complete arrow-separated chain. Preserve the order exactly as Paper prints it.
- List every plugin in the chain. Include the first and last names even when they appear to be the same plugin; that closing edge is what proves the loop.
- Note what changed immediately before the failure. Record newly installed JAR files, upgrades, downgrades, removals, and edits to
plugin.ymlorpaper-plugin.yml. A cycle commonly appears when a change introduces a reciprocal ordering request.
Paper recommends reporting the loop to the plugin authors, beginning with the first plugin in the reported chain (Basic troubleshooting). Supplying the complete log section, the Paper build, Minecraft version, and the exact plugin versions gives maintainers enough context to reproduce the ordering problem.
How dependency declarations create a loop
Plugin metadata can express required dependencies, optional integrations, and preferred ordering. Those declarations are not interchangeable:
| Declaration | Meaning for loading | How it can participate in a cycle |
|---|---|---|
depend |
The named plugin is required and must be loaded first. | Two plugins that require each other create a direct, impossible loop. |
softdepend |
The named plugin is optional, but if it is present, the plugin requests that it load first. | Reciprocal optional integrations can still create a cycle when both plugins are installed. |
loadbefore |
The plugin requests that it be loaded before the named plugin. | A “load before” request that points back through other declarations can close a longer loop. |
These meanings are defined in Paper’s plugin.yml and paper-plugin.yml documentation. The error can therefore appear even when neither plugin uses a literal required dependency on the other: a combination of softdepend and loadbefore can still produce an ordering cycle.
Think of the declarations as arrows. A valid graph has a direction that lets Paper choose a first plugin and continue until all requested plugins are loaded. A circular graph has no valid starting point. The goal is not to make the plugins load in an arbitrary order; it is to remove the incorrect or unnecessary arrow.
Permanent fix: break the dependency cycle
Use one controlled change at a time. Changing several JARs together may make the server start, but you will not know which change removed the loop or whether a second incompatibility remains.
Rank #2
- Learn your way around one block at atime in the new tutorial mode
- Craft all sorts of items from boats todiamond armor and create enormousstructures
- Team up with friends in eight-playeronline multiplayer and four-player splitscreen modes
1. Make a recoverable backup
Copy the complete server directory, or at minimum the plugins directory, configuration files, and world data, while the server is stopped. Keep the original JARs and metadata available so you can restore the previous state. A backup is especially important if you plan to edit plugin metadata supplied by an author.
2. Check the exact versions of every named plugin
In the plugins directory, record each JAR filename and the version shown by the plugin manager or startup log. Confirm that each version supports your Minecraft and Paper versions. If the loop began after an update, compare the new JAR with the previous release; if you still have the previous file, keep it outside the active plugins directory rather than leaving two versions installed.
3. Look for a known compatibility release
Check the release notes or issue tracker for each plugin named in the chain. The appropriate fix may be a newer release that removes a reciprocal declaration, or an older compatible release if a recent update introduced the cycle. Download only one candidate change, stop the server, replace the relevant JAR, and start it once for testing.
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 →4. Disable one suspect plugin at a time
Paper’s troubleshooting guidance recommends removing the problematic plugin to restore startup (Basic troubleshooting). Move one named JAR out of plugins rather than deleting it, then start the server. If it starts, the removed plugin or its interaction with another named plugin is implicated. If the cycle remains, restore that JAR and test the next suspect. Keep a written record of each attempt.
Disabling a plugin can also disable features that depend on it, so treat a successful boot as a diagnostic result, not a final configuration. Stop the server again before restoring or replacing files.
5. Correct metadata only when you own or maintain the plugin
If you maintain the plugin, inspect its plugin.yml or paper-plugin.yml and remove an unnecessary reciprocal declaration. A feature plugin should normally depend on a shared core plugin, not require another feature plugin that also points back. Change the declaration deliberately, rebuild the plugin if necessary, and test on a copy of the server.
Administrators should not casually edit a third-party JAR’s metadata: signatures, packaging, or assumptions in the code may no longer match the edited declaration. Ask the author to publish a compatible build and include the cycle from logs/latest.log in the report.
Rank #3
- ENGAGING AND COOPERATIVE: Experience the thrill of Minecraft in a unique and cooperative board game format. Perfect for teams of 2 to 4 players, the game encourages joint strategies and shared victories
- EVER-CHANGING GAMEPLAY: With a map that changes every time you play, this game offers high replay value, making every game a unique and unpredictable experience
- QUALITY COMPONENTS: The game includes 25 wooden blocks, 18 world tiles, 4 inventory boards, 6 player cards, 9 buildings, 12 mob tokens and more. All components are crafted with care to enhance your gaming experience
- AGE-APPROPRIATE CHALLENGE: Aimed at ages 7 and up, this game offers a great balance of fun and challenge, making it a great choice for family game nights, parties, or gatherings
- TRUSTED BRAND: With over 130 years of experience, Ravensburger ensures top quality games that stimulate the mind, engage the hands, and touch the heart
6. Reintroduce plugins in a controlled order
Once the server starts with one plugin removed or updated, stop it and add the tested plugins back one at a time. Start after each change and confirm that the log reaches normal plugin enablement. This isolates a second conflict that may have been hidden by the original cycle.
7. Report the defect with useful evidence
Paper’s guidance says there is often a problematic plugin and that reporting the issue to its authors is preferable (Basic troubleshooting). Include:
- the complete circular chain exactly as printed;
- Paper build and Minecraft version;
- the exact versions of every plugin in the chain;
- whether the failure began after an install, update, downgrade, or metadata edit;
- the relevant section of
logs/latest.log, with unrelated secrets removed.
Temporary workaround: enable legacy plugin loading
If the server must start before the plugin authors release a repair, Paper provides a system property that permits cyclic loading:
-Dpaper.useLegacyPluginLoading=true
Paper documents the property and gives its default as false in the system-properties reference. The Paper plugins documentation warns that the legacy path may not be supported in the future, and the troubleshooting guide describes it as a last resort because it can lead to hard-to-debug behavior (Paper plugins reference; Basic troubleshooting).
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Linux, macOS, or a shell startup script
Put the property on the Java command before -jar:
java -Dpaper.useLegacyPluginLoading=true -Xms2G -Xmx4G -jar paper.jar nogui
The property must be part of the command that launches the server. Adding it after -jar, placing it in a plugin configuration file, or typing it into the in-game console does not set a JVM system property.
Windows batch file
Edit the existing java line in the server’s .bat file and insert -Dpaper.useLegacyPluginLoading=true before -jar. Preserve the existing memory flags and JAR filename. Save the file, run it once, and verify in the startup log that the server proceeds past plugin loading.
Rank #4
- Minecraft Dungeons Hero Edition includes the Hero Pass DLC content: a Hero Cape, two player skins, and a chicken pet. It also includes the Jungle Awakens and Creeping Winters DLC packs.
- Dungeon Creeper Battle new-and-nasty mobs in this all-new action-adventure, inspired by classic dungeon crawlers.
- Multiplayer Up to four players can team up and fight together in co-op mode.
- Power Up Unlock dozens of unique items and weapon enchantments for devastating special attacks.
- Options Personalize your character, then fight up-close and personal with melee swings, hang back with ranged attacks, or tank your way through swarms of mobs, by heavy armor
Hosting control panels
Some managed panels expose the property as a startup option rather than requiring a custom command. For example, a support article documents a setting named “Paper legacy plugin loading” and instructs customers to enable it and restart (hosting-panel instructions). The label and location vary by provider; use the panel’s Paper or JVM startup-variable field, not a plugin setting.
Use the workaround only while repairing the cause
Legacy loading bypasses Paper’s cycle detection; it does not make the dependency graph valid. Plugins may initialize in an order their authors did not test, producing missing integrations, inconsistent commands, or failures later during runtime. Keep a note that the flag is enabled, test the affected features, and remove the property after an updated or corrected plugin configuration eliminates the cycle.
Permanent repair versus legacy loading
| Option | Startup reliability | Future Paper compatibility | Hidden-behavior risk | Reversibility | Does it remove the defect? |
|---|---|---|---|---|---|
| Update, remove, or reconfigure a named plugin | High once a valid dependency graph is restored | Best; uses the supported loader | Lower, because ordering is explicit | High when JARs are backed up | Yes |
Enable -Dpaper.useLegacyPluginLoading=true |
May allow startup, but behavior can remain unpredictable | Uncertain; Paper warns the legacy path may not be supported indefinitely | Higher; the cycle is still present | High; remove the JVM flag | No, it bypasses detection |
Choose the first option whenever possible. Use the second only to keep a service available while you obtain a compatible release or author fix, and plan a follow-up maintenance window to remove it.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Common mistakes and what they tell you
Deleting worlds or player data
The message concerns plugin load order. Deleting world folders cannot remove a dependency declaration and risks irreversible data loss. Restore a backup if world files were already removed, then return to the cycle in logs/latest.log.
Replacing Java at random
Java compatibility can cause other startup errors, but it does not resolve a loop printed by Paper’s plugin loader. First address the named plugins and their metadata. Investigate Java only if the log separately reports an unsupported runtime or a Java-specific exception.
Installing another “fix” plugin
A plugin that tries to reorder other plugins can add another dependency edge and obscure the original cause. Prefer a compatible release from one of the authors already named in the cycle.
Removing several plugins at once
This may produce a successful boot while concealing which relationship was circular. Move one JAR at a time, preserve backups, and record each result.
Best Value
- Official Minecraft Puzzle Game – Hands-On Logic Game Based on the Best-Selling Video Game.
- 40 Strategic Challenges – Use the Actions to Navigate & Solve Increasingly Tough Puzzles.
- No Screens, Just Strategy – Promotes Problem-Solving with Off-Screen Minecraft Fun.
- Perfect for Ages 8+ – Great Gift for Minecraft Fans Who Love a Challenge!
- Trusted by Parents Worldwide – With Over 50 Million Sold, ThinkFun is the World's Leading Manufacturer of Brain Games and Mind-Challenging Puzzles!
Assuming the example names are the culprit list
Paper’s troubleshooting example is only a demonstration of the arrow format. There is no universal list of guilty plugins. Use the exact names and versions printed by your own server.
Leaving the legacy flag enabled permanently
The flag can mask a defect until a later Paper update or plugin change exposes a different failure. Treat it as a temporary compatibility measure, document it in your startup configuration, and remove it after the dependency cycle is fixed.
Preventing the error after recovery
- Keep a dated copy of the working plugin set and startup command.
- Update one plugin at a time, with a backup and a test restart.
- Read release notes for dependency or loader changes before replacing a JAR.
- Do not leave two versions of the same plugin in the active directory.
- When developing plugins, keep required dependencies pointed toward shared core components and avoid reciprocal
depend,softdepend, andloadbeforedeclarations. - Keep the first startup log from every maintenance change so a new cycle can be compared with the last known-good state.
When the server still will not start
If removing one named plugin does not restore startup, return it to the backup and test the next plugin in the printed chain. If the server starts only with the legacy property, leave that property documented and open an issue with the plugin authors rather than treating the workaround as a final fix. If the log changes to a different error after the cycle is removed, resolve that new error separately; a successful dependency graph can expose an unrelated configuration or version problem that was previously hidden.
The decisive evidence is always the cycle Paper reports. A valid permanent configuration has a one-way dependency graph that lets Paper choose an order without guessing.
Frequently Asked Questions
Can I fix this by changing the plugin load order in a configuration file?
Only if the underlying plugin metadata is corrected. Paper’s depend, softdepend, and loadbefore declarations define the requested relationships; manually forcing an order does not remove a reciprocal dependency. Update, remove, or obtain a corrected build of one of the plugins named in the cycle.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsWill enabling legacy loading damage my world?
The setting targets plugin loading, not world files, but it can allow plugins to initialize in an unsupported order and cause runtime problems. Back up the server, use the flag only temporarily, test affected features, and remove it after the dependency defect is repaired.
Why does the error appear after a plugin update when both plugins worked before?
The updated release may have changed its plugin.yml or paper-plugin.yml declarations, adding or reversing an ordering request. Compare the old and new versions, test one rollback or compatible release, and send the complete cycle and version details to the plugin authors.
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.

