BugObservabilityHigh Impact

HBM-NTM Reforged Fails to Launch Under Cleanroom Relauncher Due to Mixin Bootstrap Conflict on Forge 1.12.2

HBM-NTM Reforged 1.0.7 crashes during startup when run through Cleanroom Relauncher on PrismLauncher with Forge 14.23.5.2864, preventing the game from reaching the main menu.

Rootlock SRE Engine 6 min read
Diagnostic brief

At a Glance

HBM-NTM Reforged 1.0.7 crashes during startup when run through Cleanroom Relauncher on PrismLauncher with Forge 14.23.5.2864, preventing the game from reaching the main menu.

Severity High
Confidence High
Frequency Frequent
Impact Startup blocked

Summary

HBM-NTM Reforged 1.0.7 crashes during startup when run through Cleanroom Relauncher on PrismLauncher with Forge 14.23.5.2864, preventing the game from reaching the main menu. The failure consistently produces errors in the Mixin subsystem (evidenced by the presence of a cleanmix.log), most likely caused by an incompatibility between the mod's Mixin configuration or tweaker registration and Cleanroom's own Mixin bootstrap environment. Neither adding Fugue nor Mixin Booter resolves the issue, suggesting a deeper class-loading or Mixin service conflict rather than a missing bootstrap dependency.

Root-Cause Analysis

Important caveat: The three log files referenced in the report (latest.log, debug.log, cleanmix.log) are GitHub attachment links and their raw content is not available for direct inspection. The analysis below is based on the technical context provided, known behavior of the involved components, and reasonable inference. Exact confirmation requires reviewing the actual log content.

Confirmed Evidence

  • The game crashes consistently on startup, every time, regardless of whether Fugue or Mixin Booter is present.
  • A dedicated cleanmix.log is generated, which is Cleanroom's Mixin-layer log — its presence and the "always something red" symptom strongly indicate the failure originates at or before Mixin injection time.
  • Cleanroom Relauncher v1.1.3 is involved; the failure is triggered specifically after pressing Relaunch, meaning it occurs in the relaunched JVM process, not the initial launcher JVM.

Reasonable Inference

  1. Mixin service conflict. Cleanroom provides its own Mixin environment (hence cleanmix.log). HBM-NTM Reforged may declare a MixinBooter or IFMLLoadingPlugin tweaker that attempts to register a second, incompatible Mixin platform or re-initialize the Mixin subsystem after Cleanroom has already claimed it.
  1. Duplicate or conflicting Mixin JSON manifests. If HBM-NTM Reforged bundles Mixin or a Mixin bootstrap library in its jar (shaded dependency), the classes it loads may conflict with those already on Cleanroom's classpath, causing ClassCastException, NoSuchMethodError, or IncompatibleMixinException at startup.
  1. Cleanroom Relauncher classpath reconstruction. The relaunched JVM rebuilt by Cleanroom Relauncher may not include a dependency jar that HBM-NTM Reforged requires, or it may alter the order of classpath entries such that a different version of a shared class is loaded first.
  1. CTM 1.0.2.31 interaction. CTM (ConnectedTexturesMod) also uses Mixin. A three-way Mixin environment conflict between Cleanroom, CTM, and HBM-NTM Reforged is plausible if all three attempt to own or re-initialize the Mixin service layer.

Alternative Causes

  • The specific commit of HBM-NTM Reforged referenced in the report may contain a bug in a @Mixin target class (e.g., targeting a class that Cleanroom has already transformed or renamed).
  • A missing refmap or an incorrectly declared Mixin config file inside the mod jar may cause Mixin to abort the entire launch sequence.

What Would Confirm the Diagnosis

  • The exact exception class and stack trace from cleanmix.log and latest.log (look for MixinException, ClassCastException, NoSuchMethodError, IncompatibleClassChangeError, or IllegalArgumentException near Mixin service initialization).
  • The line in debug.log showing which tweaker or plugin caused the fatal error.

Resolution Steps

Open cleanmix.log first — scroll to the first ERROR or FATAL line. Note the exception type, the class name, and the Mixin config file mentioned. This will definitively identify whether the failure is a class conflict, a missing refmap, or a bad Mixin target.

  1. Extract and read the logs directly.

Remove CTM from the instance, then relaunch. If the game starts, CTM is contributing to the Mixin conflict. Re-add CTM and remove HBM-NTM Reforged to verify that the base Cleanroom + CTM combination is stable.

  1. Isolate the mod causing the conflict.

These two libraries serve overlapping bootstrap roles. Having both active alongside Cleanroom's native Mixin environment creates triple-bootstrap conditions. Use at most one, or neither, depending on what Cleanroom Relauncher already provides.

  1. Do not add both Fugue and Mixin Booter simultaneously.

Open the mod jar and inspect its contents:

  1. Check whether HBM-NTM Reforged shades Mixin internally.
   unzip -l HBM-NTM-Reforged-1.0.7.jar | grep -i mixin

If you see org/spongepowered/asm/mixin/ entries, the mod bundles a shaded Mixin library. This is the most common cause of Mixin conflicts under Cleanroom.

This is a mod-build-level fix and cannot be done at runtime without patching the jar. File a bug with the mod maintainer to build against Mixin as a compileOnly/provided dependency, not a shaded one.

  1. If the mod shades Mixin, attempt to exclude it.

If Mixin Booter is required by HBM-NTM Reforged, consult the Cleanroom compatibility matrix and use only the version explicitly endorsed for Cleanroom 1.12.2. Remove any version that was added speculatively.

  1. Pin the Mixin Booter version to one known to be compatible with Cleanroom.

Cleanroom targets specific Forge builds. Confirm that Forge 14.23.5.2864 is the version recommended by Cleanroom's documentation; using an untested Forge build can cause class-loading failures unrelated to Mixin.

  1. Verify the Forge version is correct for Cleanroom.

Launch HBM-NTM Reforged + CTM under vanilla Forge 14.23.5.2864 on PrismLauncher without Cleanroom Relauncher. If the game loads successfully, the failure is specific to the Cleanroom relaunch environment.

  1. Test without Cleanroom Relauncher.

CLI Commands

Inspect the mod jar for shaded Mixin classes:

unzip -l /path/to/HBM-NTM-Reforged-1.0.7.jar | grep -i "mixin\|spongepowered"

Inspect the mod jar for declared tweakers and Mixin configs in the manifest:

unzip -p /path/to/HBM-NTM-Reforged-1.0.7.jar META-INF/MANIFEST.MF

Search all mod jars in the instance for shaded Mixin to identify every offending jar:

for jar in /path/to/instance/mods/*.jar; do
  result=$(unzip -l "$jar" 2>/dev/null | grep -c "spongepowered/asm/mixin")
  if [ "$result" -gt 0 ]; then
    echo "Shaded Mixin found in: $jar ($result entries)"
  fi
done

Extract and inspect Cleanroom's Mixin log for the first fatal line:

grep -n "ERROR\|FATAL\|Exception\|Caused by" /path/to/logs/cleanmix.log | head -40

Verification

After applying a fix, verify a successful launch as follows:

  1. Start the instance through PrismLauncher and press Relaunch.
  2. Monitor logs/latest.log in real time:
   tail -f /path/to/instance/logs/latest.log
  1. A healthy launch reaches a line similar to:
   [Client thread/INFO]: Forge Mod Loader has successfully loaded X mods

and eventually:

   [Client thread/INFO]: Reloading ResourceManager
  1. Confirm cleanmix.log contains no ERROR or FATAL entries:
   grep -c "ERROR\|FATAL" /path/to/logs/cleanmix.log

Expected output: 0

  1. If the game crashes again, compare the new cleanmix.log against the original to confirm whether the error message changed — a changed error after removing a mod confirms that mod was implicated.

Rollback indicator: If the modification made the crash message change to a different error, revert the last change and re-test. A changed but still-crashing state means partial progress but not resolution.

Prevention

  • Build hygiene: Ensure HBM-NTM Reforged declares Mixin as a provided (compile-only) dependency in its build script so it is never shaded into the output jar. Add a CI check that fails the build if Mixin classes appear inside the published artifact:
  unzip -l build/libs/*.jar | grep "spongepowered/asm/mixin" && echo "FAIL: Mixin is shaded" && exit 1 || echo "OK"
  • Compatibility matrix: Maintain a documented list of tested mod combinations (HBM-NTM Reforged + CTM + Cleanroom version + Forge version) in the repository README. Update it on every release.
  • CI smoke test: Add a headless launch smoke test in CI that starts the game with the standard mod bundle under Cleanroom and fails the pipeline if cleanmix.log or latest.log contains ERROR or FATAL lines.
  • Dependency pinning: Lock Mixin Booter and Fugue versions in the instance configuration. Document which version combinations are known-good to prevent users from inadvertently upgrading to an incompatible build.
  • Issue template guidance: Update the bug report template to require users to paste the first 30 error lines from cleanmix.log directly into the issue body, rather than attaching opaque log files whose attachment links may expire or be inaccessible to maintainers.
Developer FirstBuilt for engineers solving real problems
Evidence DrivenTechnical claims tied to available evidence
Automation ReadyStructured for CLI, APIs, and workflows
Privacy FocusedNo unnecessary data collection in this article UI
STAY AHEAD OF ISSUES

Get new root-cause analyses in your inbox

Engineering-focused updates. No fake subscriber counts. Unsubscribe anytime.