Skip to main content

“Missing or unsupported mandatory dependencies” on a Forge or NeoForge server: what the block means and how to fix it

Last updated 2026-09-14 · MineXHost

Forge and NeoForge check that every mod's required dependencies are present before Minecraft starts. This message means at least one is missing, or is there in a version the requiring mod will not accept. The output names both the mod that is asking and the mod it is asking for, and the fix is nearly always one download into the mods folder.

What the error means

Every Forge and NeoForge mod declares its hard dependencies in its own metadata, with a version range for each. Before any game code runs, the loader checks every declared dependency against the jars actually in mods/. If one is absent, or present but outside the range, the loader stops there and prints what it wanted.

Minecraft has not started at this point. No world was loaded, nothing is corrupted, and the fix lives entirely in the mods folder.

The wordings you will see

The same failure is printed in several shapes depending on the loader version and on whether you are reading the console or the crash report. Search for the one in your log, not a paraphrase of it.

What the log saysWhat it meansWhere you see it
Missing or unsupported mandatory dependencies: followed by Mod ID: 'x', Requested by: 'y'Mod y needs mod x. x is absent, or the wrong version.Modern Forge and NeoForge console, one line per dependency.
Mod y requires x 1.2.0 or above, then Currently, x is not installedx is genuinely absent from mods/.The crash-report form on modern Forge and NeoForge.
Mod y requires x 1.2.0 or above, then Currently, x is 1.1.0x is present but too old for y.Same form; read the Currently line carefully.
Mod y requires x, then Currently, x is 0.92.6 (no version floor on the first line)x is present and y still refuses it — a loader-family mismatch, usually a Fabric mod running through a compatibility layer.Same form; the missing floor is the tell.
Missing Mods: with a list, or “mods are missing, or you have the wrong versions installed”, under a MissingModsExceptionThe legacy Forge wording (1.7.10 through 1.12.2) for the same missing-dependency check.Console and the FML crash report on old packs.
The “Currently” line is the whole diagnosis. “is not installed” means download it. “is 1.1.0” means you have it and it is the wrong version — downloading a second copy makes the next crash worse, not better.

The four cases behind it

1. A library that is simply missing

The commonest case by far. Many mods depend on a shared library mod — a rendering library, a config library, a data library — that is a separate download rather than something bundled in the mod's own jar. A pack installed by hand, or a mod added on top of a pack, often arrives without it.

2. A dependency that is present but too old

One mod was updated and the library it depends on was not. The requiring mod declares a version floor, the installed copy sits below it, and the loader refuses. The fix is to update the library, not to remove the mod — but only to a version every other mod in the pack also accepts, which is why a pack that pins its library versions can be hard to update one jar at a time.

3. A dependency that is present and still rejected

The requires line has no version floor and the Currently line shows a version anyway. The dependency is installed; the mod will not take it. In practice this is a Fabric mod running on a Forge server through a compatibility layer, asking for the Fabric build of a library and being handed the Forge one. There is nothing to download here and nothing to bump — the pair does not fit, and the answer is to drop the mod or find a native build of it for your loader.

4. The server is on the wrong Minecraft or loader version

If the thing being required is minecraft or forge or neoforge itself — Mod y requires forge 47.3.0 or above, Currently forge is 47.2.0 — no mod download fixes it. The pack wants a newer loader build, or a different Minecraft version, than the server is running.

Working through it

  1. Read the Currently line for each dependency named. Sort them into missing, too old, rejected, and loader-version.
  2. For a loader-version line, fix that first: re-install the server on the Forge or NeoForge build and Minecraft version the pack targets. Everything else may resolve with it.
  3. For a missing dependency, download the library for your exact Minecraft version and loader — Forge and NeoForge builds of the same library are different jars — and drop it into mods/.
  4. For a too-old dependency, replace the old jar with a newer one that satisfies the floor. Remove the old jar; do not keep both.
  5. For a rejected dependency, remove the requiring mod, or replace it with a build made for your loader. Nothing else resolves it.
  6. Restart after each change so you can tell which change fixed what. A pack with three missing libraries surfaces them one boot at a time.
Check the mod's own page before you download anything. The dependency list on CurseForge or Modrinth names the exact library and the versions it works with, which is faster and safer than guessing from the mod id in the log.

The Fabric loader prints the same class of failure in a completely different shape, with its own Fix line.

Read the Fabric “Mod resolution failed” guide

What MineXHost's launcher does with this crash

Every server here is started by MineXEngine, our own launcher. Before the first boot it computes every hard dependency your kept mods declare and checks that something in mods/ provides it. A provable miss is restored from the quarantine folder if the engine itself moved it aside, or fetched — a handful per boot, each verified to declare the mod id that was asked for before it is placed.

When the loader still reports a missing dependency at boot, the engine reads the ids and version ranges out of the block, prints “Server stopped: missing dependency '<id>'. Fetching it and restarting” in your console, downloads a build for your Minecraft version and loader, and restarts. It tries this up to three times and then stops rather than looping.

For a present-but-too-old dependency, the engine bumps the library only when that is provably safe: the newer build must be the same major version, and every other installed mod's declared range must accept it. A jump across a major version, or a range that excludes the floor, is reported as a pack problem with the mod and the version named — because bumping it would break something else.

For a present-and-rejected dependency, there is nothing to fetch and nothing to bump, so the engine says so and names the pair. On your server it never removes the requiring mod for you: crash recovery is identify-only on customer servers, so the mod is named in the console and your mods folder stays as you uploaded it. Automatic fetching of a missing library is the one thing it does add — a download into mods/, never a removal from it.

MineXHost runs Forge and NeoForge packs on MineXEngine — our launcher auto-detects the modpack, picks the right Minecraft loader and Java version, tunes the JVM for your RAM, and auto-recovers from the crashes that normally end a modded server's evening. Pick your RAM, paste the pack, and play.

See hosting plans

Frequently asked questions

What does “Missing or unsupported mandatory dependencies” mean?

Forge and NeoForge check every mod's declared hard dependencies before Minecraft starts, and this message means at least one required mod is absent from the mods folder or is installed at a version the requiring mod will not accept. The lines under it name each dependency as Mod ID and the mod asking for it as Requested by. Minecraft never launched, so nothing is damaged; download the named library for your exact Minecraft version and loader, or update it if it is present but too old.

What does “Currently, X is not installed” mean on a Forge server?

The mod named X is a required dependency of another mod and it is not in your mods folder at all — the line above it, Mod Y requires X, names the mod that needs it. Download X for your Minecraft version and your loader, Forge or NeoForge, and place it in mods/. If the line instead reads Currently, X is followed by a version number, X is present and the problem is the version, not its absence; do not download a second copy.

A mod requires a library I already have. Why does it still fail?

A dependency that is present can still be refused for two reasons: the installed version is below the floor the requiring mod declares, shown as Mod Y requires X 1.2.0 or above with Currently, X is 1.1.0, or the requires line carries no version at all and the mod rejects the build you have, which usually means a Fabric mod running on Forge through a compatibility layer asking for the Fabric build of the library. Update the library in the first case; in the second, use a native build of the mod for your loader or remove it.

Does MineXHost download the missing mod for me?

Missing libraries are fetched automatically on MineXHost: MineXEngine reads the dependency ids out of the loader's own block, downloads a build for your Minecraft version and loader, verifies the jar declares the id that was asked for, and restarts, up to three times. What it does not do on your server is remove anything — a dependency that is present but too old or rejected is named in your console with the versions involved, and the decision to update or drop that mod stays yours.

Why does the pack work on my client but not on the server?

A client install and a server install are two separate mods folders, and a library added to one is not present in the other. The dependency check runs on whichever side is booting, so a library you installed on your client to make the pack launch there is still missing on the server until you upload it. Where the pack publishes a server pack, use it — it ships the server's mods folder complete, including the libraries.