--- a/net/minecraft/world/level/block/DoubleBlockCombiner.java
+++ b/net/minecraft/world/level/block/DoubleBlockCombiner.java
@@ -25,7 +25,12 @@
                 return new DoubleBlockCombiner.NeighborCombineResult.Single<>(blockEntity);
             } else {
                 BlockPos blockPos = pos.relative(function.apply(state));
-                BlockState blockState = world.getBlockState(blockPos);
+                // Paper start
+                BlockState blockState = world.getBlockStateIfLoaded(blockPos);
+                if (blockState == null) {
+                    return new DoubleBlockCombiner.NeighborCombineResult.Single<>(blockEntity);
+                }
+                // Paper end
                 if (blockState.is(state.getBlock())) {
                     DoubleBlockCombiner.BlockType blockType2 = typeMapper.apply(blockState);
                     if (blockType2 != DoubleBlockCombiner.BlockType.SINGLE && blockType != blockType2 && blockState.getValue(directionProperty) == state.getValue(directionProperty)) {
