Skip to content

Crash using SFM to move items with Oritech Centrifuge #7723

@ben0x539

Description

@ben0x539

Modpack

FTB OceanBlock 2

Modpack version

1.9.0

Launcher

Prism

Has the pack been modified

No

Log Files

https://pste.ch/ledomoqawi

Details
[11May2025 00:53:10.213] [Server thread/FATAL] [sfm/]: SFM detected a problem while ticking a manager. You can set `disableProgramExecution = true` in C:\Users\Ben\AppData\Roaming\PrismLauncher\instances\FTB OceanBlock 2 1.9.0\minecraft\config\sfm-server.toml to help recover your world.
[11May2025 00:53:10.318] [Server thread/ERROR] [net.minecraft.server.MinecraftServer/]: Encountered an unexpected exception
net.minecraft.ReportedException: Ticking block entity
	at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1041) ~[client-1.21.1-20240808.144430-srg.jar%23476!/:?]
	at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:917) ~[client-1.21.1-20240808.144430-srg.jar%23476!/:?]
	at TRANSFORMER/minecraft@1.21.1/net.minecraft.client.server.IntegratedServer.tickServer(IntegratedServer.java:110) ~[client-1.21.1-20240808.144430-srg.jar%23476!/:?]
	at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:707) ~[client-1.21.1-20240808.144430-srg.jar%23476!/:?]
	at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:267) ~[client-1.21.1-20240808.144430-srg.jar%23476!/:?]
	at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
Caused by: java.lang.IllegalArgumentException: Transfer variant may not be blank.
	at TRANSFORMER/fabric_transfer_api_v1@5.4.1+628bf5e919/net.fabricmc.fabric.api.transfer.v1.storage.StoragePreconditions.notBlank(StoragePreconditions.java:33) ~[fabric-transfer-api-v1-5.4.1+628bf5e919.jar%23965!/:5.4.1+628bf5e919]
	at TRANSFORMER/fabric_transfer_api_v1@5.4.1+628bf5e919/net.fabricmc.fabric.api.transfer.v1.storage.StoragePreconditions.notBlankNotNegative(StoragePreconditions.java:52) ~[fabric-transfer-api-v1-5.4.1+628bf5e919.jar%23965!/:5.4.1+628bf5e919]
	at TRANSFORMER/fabric_transfer_api_v1@5.4.1+628bf5e919/net.fabricmc.fabric.api.transfer.v1.item.base.SingleStackStorage.insert(SingleStackStorage.java:101) ~[fabric-transfer-api-v1-5.4.1+628bf5e919.jar%23965!/:5.4.1+628bf5e919]
	at TRANSFORMER/fabric_transfer_api_v1@5.4.1+628bf5e919/net.fabricmc.fabric.impl.transfer.item.InventorySlotWrapper.insert(InventorySlotWrapper.java:82) ~[fabric-transfer-api-v1-5.4.1+628bf5e919.jar%23965!/:5.4.1+628bf5e919]
	at TRANSFORMER/fabric_transfer_api_v1@5.4.1+628bf5e919/net.fabricmc.fabric.impl.transfer.item.InventorySlotWrapper.insert(InventorySlotWrapper.java:41) ~[fabric-transfer-api-v1-5.4.1+628bf5e919.jar%23965!/:5.4.1+628bf5e919]
	at TRANSFORMER/fabric_transfer_api_v1@5.4.1+628bf5e919/org.sinytra.fabric.transfer_api.compat.SlottedItemStorageItemHandler.insertItem(SlottedItemStorageItemHandler.java:50) ~[fabric-transfer-api-v1-5.4.1+628bf5e919.jar%23965!/:5.4.1+628bf5e919]
	at TRANSFORMER/sfm@4.21.0/ca.teamdman.sfm.common.resourcetype.ItemResourceType.insert(ItemResourceType.java:139) ~[Super%20Factory%20Manager%20(SFM)-MC1.21.1-4.21.0.jar%23748!/:?]
	at TRANSFORMER/sfm@4.21.0/ca.teamdman.sfm.common.resourcetype.ItemResourceType.insert(ItemResourceType.java:17) ~[Super%20Factory%20Manager%20(SFM)-MC1.21.1-4.21.0.jar%23748!/:?]
	at TRANSFORMER/sfm@4.21.0/ca.teamdman.sfm.common.program.LimitedOutputSlot.insert(LimitedOutputSlot.java:83) ~[Super%20Factory%20Manager%20(SFM)-MC1.21.1-4.21.0.jar%23748!/:?]
	at TRANSFORMER/sfm@4.21.0/ca.teamdman.sfml.ast.OutputStatement.moveTo(OutputStatement.java:170) ~[Super%20Factory%20Manager%20(SFM)-MC1.21.1-4.21.0.jar%23748!/:?]
	at TRANSFORMER/sfm@4.21.0/ca.teamdman.sfml.ast.OutputStatement.tick(OutputStatement.java:389) ~[Super%20Factory%20Manager%20(SFM)-MC1.21.1-4.21.0.jar%23748!/:?]
	at TRANSFORMER/sfm@4.21.0/ca.teamdman.sfml.ast.Block.tick(Block.java:13) ~[Super%20Factory%20Manager%20(SFM)-MC1.21.1-4.21.0.jar%23748!/:?]
	at TRANSFORMER/sfm@4.21.0/ca.teamdman.sfml.ast.TimerTrigger.tick(TimerTrigger.java:25) ~[Super%20Factory%20Manager%20(SFM)-MC1.21.1-4.21.0.jar%23748!/:?]
	at TRANSFORMER/sfm@4.21.0/ca.teamdman.sfml.ast.Program.tick(Program.java:137) ~[Super%20Factory%20Manager%20(SFM)-MC1.21.1-4.21.0.jar%23748!/:?]
	at TRANSFORMER/sfm@4.21.0/ca.teamdman.sfml.ast.Program.tick(Program.java:73) ~[Super%20Factory%20Manager%20(SFM)-MC1.21.1-4.21.0.jar%23748!/:?]
	at TRANSFORMER/sfm@4.21.0/ca.teamdman.sfm.common.blockentity.ManagerBlockEntity.serverTick(ManagerBlockEntity.java:113) ~[Super%20Factory%20Manager%20(SFM)-MC1.21.1-4.21.0.jar%23748!/:?]
	at TRANSFORMER/minecraft@1.21.1/net.minecraft.world.level.chunk.LevelChunk$BoundTickingBlockEntity.tick(LevelChunk.java:706) ~[client-1.21.1-20240808.144430-srg.jar%23476!/:?]
	at TRANSFORMER/minecraft@1.21.1/net.minecraft.world.level.chunk.LevelChunk$RebindableTickingBlockEntityWrapper.tick(LevelChunk.java:783) ~[client-1.21.1-20240808.144430-srg.jar%23476!/:?]
	at TRANSFORMER/minecraft@1.21.1/net.minecraft.world.level.Level.tickBlockEntities(Level.java:559) ~[client-1.21.1-20240808.144430-srg.jar%23476!/:?]
	at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.level.ServerLevel.tick(ServerLevel.java:428) ~[client-1.21.1-20240808.144430-srg.jar%23476!/:?]
	at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1037) ~[client-1.21.1-20240808.144430-srg.jar%23476!/:?]
	... 5 more

Describe the bug

I set up a SFM super factory manager to pipe items into and out of Oritech centrifuges, including an EAST SIDE modifier on the INPUT statement applying to a centrifuge. The game (server I guess but I'm singleplayer) crashes with "java.lang.IllegalArgumentException: Transfer variant may not be blank."

Steps to reproduce

  • Place an Oritech Centrifuge, put an Oritech (eg Primitive) Machine Core over it, rightclick the Centrifuge so it unfolds.
  • Put some items into the centrifuge's input slot.
  • Place an SFM Factory Manager adjacent to the Centrifuge, take an SFM Disk and rightlick the Factory Manger to insert the disk in the UI
  • In the Factory Manager UI, click Edit and paste
    EVERY 20 TICKS DO
      INPUT * FROM a EAST SIDE
      OUTPUT * TO a
    END
    
    then click Done and exit the UI
  • With an SFM Label Gun, sneak+rightclick the Factory Manager to retrieve labels, sneak+mousewheel to select the label "a", rightclick the Centrifuge block to assign the label, then (non-sneak) rightclick the Factory Manager to send the labels back.
  • It should crash within 20 ticks

Expected behaviour

It should not crash, in this simplified test case it should honestly not do anything.

Screenshots

Image

Additional information

The EAST SIDE appears to the critical to this crash. It shouldn't make any difference for Oritech machines, in my non-simplified setup where I originally ran into this, I was extracting items from an Immersive Engineering Garden Cloche which is sensitive to the side, and writing my SFM script in a too janky way so the side attribute accidentally also applied to the Centrifuge. It took me like two hours trying to narrow it down to that, rip.

A crash with FTB OceanBlock 2 between SFM and Oritech with the same exception message seems to have been reported at TeamDman/SuperFactoryManager#264 and supposedly addressed in Sinytra/ForgifiedFabricAPI#201, but, well, I guess it's still happening so it must be something else. I also tried updating ForgifiedFabricAPI to the latest version on Curseforge from May 5 to no avail.

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions