Context
Bug Report
Sable version: 1.2.2
NeoForge version: 21.1.230
Minecraft version: 1.21.1
Java: OpenJDK 64-Bit Server VM 21.0.11-internal (Oracle Corporation)
OS: Android 13 (Linux arch amd64, Android-13) via MojoLauncher Hebe
Launcher: Hebe 20260509 [883123a] v3_openjdk
Device: Google Zork (Chromebook)
CPU Architecture (reported by launcher): x86_64 (running under Android translation layer)
GPU: AMD Radeon Graphics RADV RAVEN2 via Virtio-GPU Venus / Vulkan 1.3.269 / Mesa 25.0.7
RAM allocated: 3096 MB
Other relevant mods: Create Aeronautics 1.2.1 (bundled), Sinytra Connector 2.0.0-beta.14
Description
The game fully loads the main menu and all mods without issue. When creating or loading a world, the server thread crashes immediately during world initialization while Sable attempts to initialize its Rapier physics pipeline. The native library fails to link, throwing an UnsatisfiedLinkError.
The crash happens 100% of the time on this device. Removing Sable (and Create Aeronautics, which hard-requires it) allows the game to reach the world without crashing.
Steps to Reproduce
Install Minecraft 1.21.1 with NeoForge 21.1.230 on MojoLauncher (Hebe) on a Chromebook/Android device
Add sable-neoforge-1.21.1-1.2.2.jar and create-aeronautics-bundled-1.21.1-1.2.1.jar to the mods folder
Launch the game — main menu loads fine
Create or load any world
Crash occurs immediately during world initialization
Crash Log (relevant lines)
Code
`[17:06:29] [Server thread/ERROR] [de.ry.sa.Sable/]: Sable has failed to link with the natives for its Rapier pipeline. Please report with system details to https://github.com/ryanhcode/sable/issues
[17:06:31] [Server thread/ERROR] [minecraft/MinecraftServer]: Encountered an unexpected exception
net.minecraft.ReportedException: Sable linking with Rapier natives
at dev.ryanhcode.sable.physics.impl.rapier.RapierPhysicsPipeline.init(RapierPhysicsPipeline.java:120)
at dev.ryanhcode.sable.sublevel.system.SubLevelPhysicsSystem.initialize(SubLevelPhysicsSystem.java:159)
at dev.ryanhcode.sable.Sable.defaultSubLevelContainerInitializer(Sable.java:76)
at net.minecraft.server.level.ServerLevel.sable$createPlotContainer(ServerLevel.java:12985)
at net.minecraft.server.level.ServerLevel.(ServerLevel.java:222)
at net.minecraft.server.MinecraftServer.createLevels(MinecraftServer.java:367)
at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:337)
at net.minecraft.client.server.IntegratedServer.initServer(IntegratedServer.java:77)
Caused by: java.lang.UnsatisfiedLinkError: 'void dev.ryanhcode.sable.physics.impl.rapier.Rapier3D.initialize(int, double, double, double, double)'
at dev.ryanhcode.sable.physics.impl.rapier.Rapier3D.initialize(Native Method)
at dev.ryanhcode.sable.physics.impl.rapier.RapierPhysicsPipeline.init(RapierPhysicsPipeline.java:116)`
Crash Report UUID: d4221e43-8baf-4471-9d72-620a00f62e84
Analysis
The Rapier3D native library bundled inside sable-neoforge-1.21.1-1.2.2.jar does not appear to include a native binary compatible with the Android/ARM64 environment. The launcher reports the architecture as x86_64 (via Android's translation layer), but the underlying hardware and OS ABI is ARM64 (Android 13). The native .so extraction and linking fails silently until Rapier3D.initialize() is called, at which point the JVM throws UnsatisfiedLinkError.
The game ran for approximately 4 minutes loading all 60+ mods successfully before crashing at this exact point. Everything else in the modpack works.
Expected Behavior
Sable should either:
Ship an ARM64 native binary so the mod works on Android/Chromebook devices, OR
Detect that no compatible native is available and fail gracefully (log an error, disable physics, continue loading) instead of crashing the entire game
Workaround
None currently. Removing Sable also requires removing Create Aeronautics (all three of its bundled sub-mods — aeronautics, offroad, simulated — hard-require Sable with type="required").
Full Log
latestlog.txt
Crash Report
https://mclo.gs/xH64ldi
Context
Bug Report
Sable version: 1.2.2
NeoForge version: 21.1.230
Minecraft version: 1.21.1
Java: OpenJDK 64-Bit Server VM 21.0.11-internal (Oracle Corporation)
OS: Android 13 (Linux arch amd64, Android-13) via MojoLauncher Hebe
Launcher: Hebe 20260509 [883123a] v3_openjdk
Device: Google Zork (Chromebook)
CPU Architecture (reported by launcher): x86_64 (running under Android translation layer)
GPU: AMD Radeon Graphics RADV RAVEN2 via Virtio-GPU Venus / Vulkan 1.3.269 / Mesa 25.0.7
RAM allocated: 3096 MB
Other relevant mods: Create Aeronautics 1.2.1 (bundled), Sinytra Connector 2.0.0-beta.14
Description
The game fully loads the main menu and all mods without issue. When creating or loading a world, the server thread crashes immediately during world initialization while Sable attempts to initialize its Rapier physics pipeline. The native library fails to link, throwing an UnsatisfiedLinkError.
The crash happens 100% of the time on this device. Removing Sable (and Create Aeronautics, which hard-requires it) allows the game to reach the world without crashing.
Steps to Reproduce
Install Minecraft 1.21.1 with NeoForge 21.1.230 on MojoLauncher (Hebe) on a Chromebook/Android device
Add sable-neoforge-1.21.1-1.2.2.jar and create-aeronautics-bundled-1.21.1-1.2.1.jar to the mods folder
Launch the game — main menu loads fine
Create or load any world
Crash occurs immediately during world initialization
Crash Log (relevant lines)
Code
`[17:06:29] [Server thread/ERROR] [de.ry.sa.Sable/]: Sable has failed to link with the natives for its Rapier pipeline. Please report with system details to https://github.com/ryanhcode/sable/issues
[17:06:31] [Server thread/ERROR] [minecraft/MinecraftServer]: Encountered an unexpected exception
net.minecraft.ReportedException: Sable linking with Rapier natives
at dev.ryanhcode.sable.physics.impl.rapier.RapierPhysicsPipeline.init(RapierPhysicsPipeline.java:120)
at dev.ryanhcode.sable.sublevel.system.SubLevelPhysicsSystem.initialize(SubLevelPhysicsSystem.java:159)
at dev.ryanhcode.sable.Sable.defaultSubLevelContainerInitializer(Sable.java:76)
at net.minecraft.server.level.ServerLevel.sable$createPlotContainer(ServerLevel.java:12985)
at net.minecraft.server.level.ServerLevel.(ServerLevel.java:222)
at net.minecraft.server.MinecraftServer.createLevels(MinecraftServer.java:367)
at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:337)
at net.minecraft.client.server.IntegratedServer.initServer(IntegratedServer.java:77)
Caused by: java.lang.UnsatisfiedLinkError: 'void dev.ryanhcode.sable.physics.impl.rapier.Rapier3D.initialize(int, double, double, double, double)'
at dev.ryanhcode.sable.physics.impl.rapier.Rapier3D.initialize(Native Method)
at dev.ryanhcode.sable.physics.impl.rapier.RapierPhysicsPipeline.init(RapierPhysicsPipeline.java:116)`
Crash Report UUID: d4221e43-8baf-4471-9d72-620a00f62e84
Analysis
The Rapier3D native library bundled inside sable-neoforge-1.21.1-1.2.2.jar does not appear to include a native binary compatible with the Android/ARM64 environment. The launcher reports the architecture as x86_64 (via Android's translation layer), but the underlying hardware and OS ABI is ARM64 (Android 13). The native .so extraction and linking fails silently until Rapier3D.initialize() is called, at which point the JVM throws UnsatisfiedLinkError.
The game ran for approximately 4 minutes loading all 60+ mods successfully before crashing at this exact point. Everything else in the modpack works.
Expected Behavior
Sable should either:
Ship an ARM64 native binary so the mod works on Android/Chromebook devices, OR
Detect that no compatible native is available and fail gracefully (log an error, disable physics, continue loading) instead of crashing the entire game
Workaround
None currently. Removing Sable also requires removing Create Aeronautics (all three of its bundled sub-mods — aeronautics, offroad, simulated — hard-require Sable with type="required").
Full Log
latestlog.txt
Crash Report
https://mclo.gs/xH64ldi