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.
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.
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.logis 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
- Mixin service conflict. Cleanroom provides its own Mixin environment (hence
cleanmix.log). HBM-NTM Reforged may declare aMixinBooterorIFMLLoadingPlugintweaker that attempts to register a second, incompatible Mixin platform or re-initialize the Mixin subsystem after Cleanroom has already claimed it.
- 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, orIncompatibleMixinExceptionat startup.
- 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.
- 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
@Mixintarget class (e.g., targeting a class that Cleanroom has already transformed or renamed). - A missing
refmapor 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.logandlatest.log(look forMixinException,ClassCastException,NoSuchMethodError,IncompatibleClassChangeError, orIllegalArgumentExceptionnear Mixin service initialization). - The line in
debug.logshowing 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.
- 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.
- 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.
- Do not add both Fugue and Mixin Booter simultaneously.
Open the mod jar and inspect its contents:
- Check whether HBM-NTM Reforged shades Mixin internally.
unzip -l HBM-NTM-Reforged-1.0.7.jar | grep -i mixinIf 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.
- 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.
- 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.
- 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.
- 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.MFSearch 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
doneExtract and inspect Cleanroom's Mixin log for the first fatal line:
grep -n "ERROR\|FATAL\|Exception\|Caused by" /path/to/logs/cleanmix.log | head -40Verification
After applying a fix, verify a successful launch as follows:
- Start the instance through PrismLauncher and press Relaunch.
- Monitor
logs/latest.login real time:
tail -f /path/to/instance/logs/latest.log- A healthy launch reaches a line similar to:
[Client thread/INFO]: Forge Mod Loader has successfully loaded X modsand eventually:
[Client thread/INFO]: Reloading ResourceManager- Confirm
cleanmix.logcontains noERRORorFATALentries:
grep -c "ERROR\|FATAL" /path/to/logs/cleanmix.logExpected output: 0
- If the game crashes again, compare the new
cleanmix.logagainst 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.logorlatest.logcontainsERRORorFATALlines.
- 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.logdirectly into the issue body, rather than attaching opaque log files whose attachment links may expire or be inaccessible to maintainers.