Transfer API crashes are hard to follow
MissPotato opened this issue · 2 comments
Preface: I'm not a coder. Just a pack dev. In the attached crash log a hopper at 610,66,32 is trying to push items into a container. The container is claiming to have -1024 items in it. This results in the game seemingly blaming the hopper as the source of the crash, as it is the object ticking. While this may technically be true, the container is the one with the overflow. The actual overflow was caused by a rest config in Extended Drawers mod. Once I was able to figure out what block was being pushed into the fix was really easy.
That's the part I'm finding hard to follow. This log doesn't indicate at seemingly any point the container with the invalid size. I'm not even sure if it's possible, as again, I'm not a coder, but it would be very useful for us players to know what block is being pushed into / pulled from on top of the actual ticking block.
Specifically, I'm talking about the Details section, where it lists the same hopper twice. (I assume one is the block, and one is the entity.) The block entity being interacted with being printed here as well would make this crash far easier to understand, as it seems like everything in the stacktrace is Fabric API level.
This #2201 inspired me to look at the crash from a different light, and instead of figuring out why the hopper was pushing a negative stack, figure out what it was pushing into.
This was partially addressed in #3049. Mods can also add relevant logging code following a similar pattern. :)