java.lang.NoClassDefFoundError: org/lwjgl/Version
COAL-017 · Client-only mod installed on a server
A client-only mod like Sodium, Iris, or a shader mod is in your server's mods folder. Why servers can't run them and which mods to move to your client.
What it looks like in the logjava.lang.NoClassDefFoundError: org/lwjgl/Version at net.caffeinemc.mods.sodium.client.SodiumClientMod.onInitializeClient(SodiumClientMod.java:52)
What it means
LWJGL is the library Minecraft uses to talk to your graphics card. A dedicated server renders nothing, so it does not ship LWJGL at all. When a mod that only makes sense on a client - a rendering or optimisation mod, a shader loader, a HUD mod - is placed in the server's mods folder, it immediately reaches for LWJGL and the server dies on startup.
This is not a broken mod or a broken server. It is a mod in the wrong place.
How to fix it
Remove the client-only mod from the server's mods folder. It still works fine - install it in your own Minecraft client instead, where it belongs. The stack trace under the error names the mod; in the example above, Sodium.
Client-only mods that most commonly end up on a server by mistake:
- Rendering and performance: Sodium, Rubidium, Embeddium, Iris, Oculus, OptiFine
- Shaders: every shader pack, and the loaders that run them
- Visual and HUD: minimap mods, zoom mods, tooltip and inventory HUD mods, animation and particle mods
- Resource pack helpers: anything whose description is about how the game looks
Not sure about a specific mod? Its Modrinth or CurseForge page states the environment - look for "client" versus "server" on the listing. Mods marked client-side only never need to be installed on the server, even when every player uses them.
More help
Coalstack's Auto Debugger scans a Java server's log for known errors like this one and links straight to the fix. Download Coalstack to try it.

