Skip to content

[1.21.1 / NeoForge] Air Liquefier crashes on a valid unsided fluid capability query triggered during Digital Miner BreakEvent` #123

Description

@reasure3

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions