Files
hytale-f2p/docs/FASTUTIL_CLASSLOADER_ISSUE.md

4.8 KiB

Singleplayer Server Crash: fastutil ClassNotFoundException

Status: Open — likely outdated HytaleServer.jar (Feb 24-28 2026)

Symptom

Singleplayer server crashes immediately on boot:

Exception in thread "main" java.lang.NoClassDefFoundError: it/unimi/dsi/fastutil/objects/ObjectArrayList
    at com.hypixel.hytale.plugin.early.EarlyPluginLoader.<clinit>(EarlyPluginLoader.java:34)
    at com.hypixel.hytale.Main.main(Main.java:36)
Caused by: java.lang.ClassNotFoundException: it.unimi.dsi.fastutil.objects.ObjectArrayList
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)

Server exits with code 1. Multiplayer works fine for the same user.

Affected Users

  1. ヅ𝚃 JAYED ! (Feb 24) — Windows x86_64, had AOT cache errors before fastutil crash
  2. Asentrix (Feb 27) — Windows x86_64 (NT 10.0.26200.0), RTX 4060, Launcher v2.4.4, NO AOT cache errors
  3. 7645754 (Feb 28) — Standalone server on localhost, FIXED by updating HytaleServer.jar
  • Reproduces 100% on singleplayer, every attempt (users 1-2)
  • Multiplayer works fine for users 1-2
  • macOS/Linux users are NOT affected

Ruled Out (confirmed via debug builds)

Suspect Tested Result
DualAuth Agent Debug build with agent completely disabled (debug-no-agent tag) Same crash. Agent is innocent.
-Xshare:off (CDS) Added to JAVA_TOOL_OPTIONS in launcher code (debug-xshare-off tag) Did not help. CDS is not the cause.
-XX:+UseCompactObjectHeaders Stripped via wrapper Did not help. Server has -XX:+IgnoreUnrecognizedVMOptions anyway.
Corrupted game files User did repair + full reinstall Same crash.
Java wrapper Logs confirm wrapper works correctly Not the cause.
ARM64/Parallels User is on standard Windows x86_64 Not applicable.
AOT cache Asentrix has no AOT errors (JAYED did), both crash the same way Not the root cause.

Key Finding: Outdated HytaleServer.jar (Feb 28)

User 7645754 had the exact same error on their standalone localhost server but NOT on their VPS. Fixed by replacing HytaleServer.jar with the current version. The old JAR used to work but stopped — likely the bundled JRE was updated and is now incompatible with older JAR versions.

This strongly suggests the root cause for F2P launcher users is also a stale/mismatched HytaleServer.jar. The launcher may report the correct version but the actual file on disk could be from an older download.

What We Know

  • fastutil is bundled inside HytaleServer.jar (fat/shaded JAR)
  • JVM's BuiltinClassLoader cannot find it.unimi.dsi.fastutil.objects.ObjectArrayList despite it being in the JAR
  • Crash happens at EarlyPluginLoader static initializer (line 34) which imports ObjectArrayList
  • Replacing HytaleServer.jar with a fresh copy fixes the issue (confirmed by user 3)
  • The issue is NOT caused by the DualAuth agent or any launcher modification

Fix for Users

F2P Launcher users (Asentrix, JAYED)

  1. Delete the entire game folder: %LOCALAPPDATA%\HytaleF2P\release\package\game\
  2. Relaunch — launcher will re-download everything fresh
  3. NOT just "repair" — full delete to ensure no stale files remain

Standalone server users

  1. Download fresh HytaleServer.jar from current game version
  2. Replace the old JAR file

Update History

Feb 24: First report (JAYED)

User reported singleplayer crash. Initial investigation found AOT cache errors + fastutil ClassNotFoundException. Stripping -XX:+UseCompactObjectHeaders did not help.

Feb 27: Second report (Asentrix), extensive debugging

  • Asentrix hit same crash, no AOT errors — ruled out AOT as root cause
  • Built debug-xshare-off: added -Xshare:off to JAVA_TOOL_OPTIONSdid not help
  • Built debug-no-agent: completely disabled DualAuth agent — same crash
  • Conclusion: Neither the agent nor CDS is the cause. The JVM itself cannot load classes from the fat JAR on these specific Windows systems.
  • Note: wrapper injectArgs append AFTER -jar, so they cannot inject JVM flags — only JAVA_TOOL_OPTIONS works for JVM flags

Feb 28: Third user (7645754) — FIXED by replacing HytaleServer.jar

  • Standalone server user had same crash on localhost, VPS worked fine
  • Fixed by updating HytaleServer.jar to match VPS version
  • Root cause likely: outdated JAR incompatible with current/updated JRE
  • For F2P launcher users: need to delete game folder and force fresh re-download
  • Java wrapper config: backend/core/config.js (stripFlags / injectArgs)
  • DualAuth Agent: v1.1.12, package ws.sanasol.dualauth
  • Game version at time of reports: 2026.02.19-1a311a592
  • Debug tags: debug-xshare-off, debug-no-agent
  • Log submission IDs: c88e7b71 (Asentrix initial), 0445e4dc (xshare test), 748dceeb (no-agent test)