Summary
On a dedicated NeoForge 1.21.1 server, a running Mekanism Digital Miner targeting creatingspace:air_liquefier repeatedly crashed the server with a ticking block entity error.
The crash occurs because AirLiquefierBlockEntity.getFluidInvCapability(Direction face) receives face == null from an unsided block capability query and passes it to Create's DirectionalAxisKineticBlock.hasShaftTowards(...). That method then dereferences face.getAxis().
Environment
- Minecraft 1.21.1
- NeoForge 21.1.235
- Java 21
- Creating Space 1.7.20
- Create 6.0.10
- Mekanism 10.7.19.85
- Create: Pipes n Physics 2.1.1
- Create Aeronautics: Mekanism Compatibility 0.1.21
- Sable 2.0.3
Observed setup
- Digital Miner controller: overworld
(-2, 40, 1497)
- Digital Miner was running with radius 10, Y range 0-60, and an exact filter for
creatingspace:air_liquefier
- Target Air Liquefiers:
(2, 42, 1497) and (2, 42, 1498)
- The same crash occurred three times as soon as the affected chunk was loaded
Relevant call path
Mekanism TileEntityDigitalMiner.tryMineBlock / canMine
-> NeoForge BlockEvent.BreakEvent
-> Pipes n Physics NetworkEditHandler.onBreak / wakeAround / hasHandler
-> level.getCapability(Capabilities.FluidHandler.BLOCK, pos, null)
-> Creating Space AirLiquefierBlockEntity.getFluidInvCapability(null), line 60
-> Create DirectionalAxisKineticBlock.hasShaftTowards(..., null), line 144
-> NullPointerException: Cannot invoke Direction.getAxis() because "face" is null
Expected behavior
An unsided capability query should return the appropriate fluid handler or null without crashing.
Actual behavior
The Air Liquefier capability provider throws an NPE, which crashes the ticking Digital Miner and then the dedicated server.
Suspected fix
Please handle face == null in AirLiquefierBlockEntity.getFluidInvCapability before calling AirLiquefierBlock.hasShaftTowards(...), choosing the intended unsided behavior (return the handler or return null).
Crash Report
Time: 2026-07-15 03:47:40 UTC
Description: Ticking block entity
java.lang.NullPointerException: Cannot invoke "net.minecraft.core.Direction.getAxis()" because "face" is null
at TRANSFORMER/create@6.0.10/com.simibubi.create.content.kinetics.base.DirectionalAxisKineticBlock.hasShaftTowards(DirectionalAxisKineticBlock.java:144)
at TRANSFORMER/creatingspace@1.7.20/com.rae.creatingspace.content.recipes.air_liquefying.AirLiquefierBlockEntity.getFluidInvCapability(AirLiquefierBlockEntity.java:60)
at TRANSFORMER/neoforge@21.1.235/net.neoforged.neoforge.capabilities.BlockCapability.getCapability(BlockCapability.java:215)
at TRANSFORMER/neoforge@21.1.235/net.neoforged.neoforge.common.extensions.ILevelExtension.getCapability(ILevelExtension.java:79)
at TRANSFORMER/pipesnphysics@2.1.1/de.devin.pipesnphysics.handler.NetworkEditHandler.hasHandler(NetworkEditHandler.java:105)
at TRANSFORMER/pipesnphysics@2.1.1/de.devin.pipesnphysics.handler.NetworkEditHandler.wakeAround(NetworkEditHandler.java:64)
at TRANSFORMER/pipesnphysics@2.1.1/de.devin.pipesnphysics.handler.NetworkEditHandler.onBreak(NetworkEditHandler.java:45)
at net.neoforged.bus.EventBus.post(EventBus.java:360)
at TRANSFORMER/mekanism@10.7.19/mekanism.common.tile.machine.TileEntityDigitalMiner.canMine(TileEntityDigitalMiner.java:594)
at TRANSFORMER/mekanism@10.7.19/mekanism.common.tile.machine.TileEntityDigitalMiner.tryMineBlock(TileEntityDigitalMiner.java:498)
at TRANSFORMER/mekanism@10.7.19/mekanism.common.tile.machine.TileEntityDigitalMiner.redirect$ffk000$create_mekanism_compat$cmc$mineMounted(TileEntityDigitalMiner.java:2062)
at TRANSFORMER/mekanism@10.7.19/mekanism.common.tile.machine.TileEntityDigitalMiner.onUpdateServer(TileEntityDigitalMiner.java:267)
-- Block entity being ticked --
Name: mekanism:digital_miner
Block: Block{mekanism:digital_miner}[active=true,facing=west,fluid_logged=empty]
Block location: World: (-2,40,1497), chunk (-1,93), region (-1,2)
Minecraft Version: 1.21.1
NeoForge Version: 21.1.235
Java Version: 21.0.11
Server type: Dedicated Server
Summary
On a dedicated NeoForge 1.21.1 server, a running Mekanism Digital Miner targeting
creatingspace:air_liquefierrepeatedly crashed the server with a ticking block entity error.The crash occurs because
AirLiquefierBlockEntity.getFluidInvCapability(Direction face)receivesface == nullfrom an unsided block capability query and passes it to Create'sDirectionalAxisKineticBlock.hasShaftTowards(...). That method then dereferencesface.getAxis().Environment
Observed setup
(-2, 40, 1497)creatingspace:air_liquefier(2, 42, 1497)and(2, 42, 1498)Relevant call path
Expected behavior
An unsided capability query should return the appropriate fluid handler or
nullwithout crashing.Actual behavior
The Air Liquefier capability provider throws an NPE, which crashes the ticking Digital Miner and then the dedicated server.
Suspected fix
Please handle
face == nullinAirLiquefierBlockEntity.getFluidInvCapabilitybefore callingAirLiquefierBlock.hasShaftTowards(...), choosing the intended unsided behavior (return the handler or returnnull).Crash Report