Storage Drawers

Storage Drawers

193M Downloads

[1.21.8] Client kicked: Failed to encode packet 'clientbound/minecraft:container_set_slot'

narc0tiq opened this issue · 1 comments

commented

What I did: I used the drawer puller for the first time. Target was a locked drawer with cobblestone inside.

What happened: exception as shown below. Client was kicked out and upon reconnecting the drawer contents were gone (the player's inventory did not receive the drawer with 447 cobblestone inside). The drawer frame remains in the world with no drawer inside.

What should happen: I assume the player should receive a drawer item with 447 cobblestone that can be inserted back into an empty drawer frame.

(best guess: there's a stack size validation added somewhere between 1.21.2 to .8 and we ran into it)

[11:24:54] [Netty Server IO #11/ERROR] [minecraft/Connection]: Exception caught in connection
io.netty.handler.codec.EncoderException: Failed to encode packet 'clientbound/minecraft:container_set_slot'
	at TRANSFORMER/[email protected]/net.minecraft.network.codec.IdDispatchCodec.encode(IdDispatchCodec.java:60) ~[server-1.21.8-20250717.133445-srg.jar%23176!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.network.codec.IdDispatchCodec.encode(IdDispatchCodec.java:13) ~[server-1.21.8-20250717.133445-srg.jar%23176!/:?]
	at TRANSFORMER/[email protected]/net.neoforged.neoforge.network.filters.GenericPacketSplitter.encode(GenericPacketSplitter.java:104) ~[neoforge-21.8.27-universal.jar%23177!/:?]
	at TRANSFORMER/[email protected]/net.neoforged.neoforge.network.filters.GenericPacketSplitter.encode(GenericPacketSplitter.java:39) ~[neoforge-21.8.27-universal.jar%23177!/:?]
	at MC-BOOTSTRAP/[email protected]/io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:90) ~[netty-codec-4.1.118.Final.jar%23126!/:4.1.118.Final]
	at MC-BOOTSTRAP/[email protected]/io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:893) ~[netty-transport-4.1.118.Final.jar%23130!/:4.1.118.Final]
	at MC-BOOTSTRAP/[email protected]/io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) ~[netty-transport-4.1.118.Final.jar%23130!/:4.1.118.Final]
	at MC-BOOTSTRAP/[email protected]/io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) ~[netty-transport-4.1.118.Final.jar%23130!/:4.1.118.Final]
	at MC-BOOTSTRAP/[email protected]/io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) ~[netty-transport-4.1.118.Final.jar%23130!/:4.1.118.Final]
	at MC-BOOTSTRAP/[email protected]/io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:113) ~[netty-codec-4.1.118.Final.jar%23126!/:4.1.118.Final]
	at MC-BOOTSTRAP/[email protected]/io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:893) ~[netty-transport-4.1.118.Final.jar%23130!/:4.1.118.Final]
	at MC-BOOTSTRAP/[email protected]/io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) ~[netty-transport-4.1.118.Final.jar%23130!/:4.1.118.Final]
	at MC-BOOTSTRAP/[email protected]/io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) ~[netty-transport-4.1.118.Final.jar%23130!/:4.1.118.Final]
	at MC-BOOTSTRAP/[email protected]/io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) ~[netty-transport-4.1.118.Final.jar%23130!/:4.1.118.Final]
	at MC-BOOTSTRAP/[email protected]/io.netty.channel.ChannelOutboundHandlerAdapter.write(ChannelOutboundHandlerAdapter.java:113) ~[netty-transport-4.1.118.Final.jar%23130!/:4.1.118.Final]
	at TRANSFORMER/[email protected]/net.minecraft.network.Connection$2.write(Connection.java:519) ~[server-1.21.8-20250717.133445-srg.jar%23176!/:?]
	at MC-BOOTSTRAP/[email protected]/io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:893) ~[netty-transport-4.1.118.Final.jar%23130!/:4.1.118.Final]
	at MC-BOOTSTRAP/[email protected]/io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) ~[netty-transport-4.1.118.Final.jar%23130!/:4.1.118.Final]
	at MC-BOOTSTRAP/[email protected]/io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) ~[netty-transport-4.1.118.Final.jar%23130!/:4.1.118.Final]
	at MC-BOOTSTRAP/[email protected]/io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) ~[netty-transport-4.1.118.Final.jar%23130!/:4.1.118.Final]
	at MC-BOOTSTRAP/[email protected]/io.netty.channel.DefaultChannelPipeline.write(DefaultChannelPipeline.java:964) ~[netty-transport-4.1.118.Final.jar%23130!/:4.1.118.Final]
	at MC-BOOTSTRAP/[email protected]/io.netty.channel.AbstractChannel.write(AbstractChannel.java:300) ~[netty-transport-4.1.118.Final.jar%23130!/:4.1.118.Final]
	at TRANSFORMER/[email protected]/net.minecraft.network.Connection.doSendPacket(Connection.java:369) ~[server-1.21.8-20250717.133445-srg.jar%23176!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.network.Connection.lambda$sendPacket$12(Connection.java:358) ~[server-1.21.8-20250717.133445-srg.jar%23176!/:?]
	at MC-BOOTSTRAP/[email protected]/io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173) ~[netty-common-4.1.118.Final.jar%23127!/:4.1.118.Final]
	at MC-BOOTSTRAP/[email protected]/io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166) ~[netty-common-4.1.118.Final.jar%23127!/:4.1.118.Final]
	at MC-BOOTSTRAP/[email protected]/io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) ~[netty-common-4.1.118.Final.jar%23127!/:4.1.118.Final]
	at MC-BOOTSTRAP/[email protected]/io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) ~[netty-transport-4.1.118.Final.jar%23130!/:4.1.118.Final]
	at MC-BOOTSTRAP/[email protected]/io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998) ~[netty-common-4.1.118.Final.jar%23127!/:4.1.118.Final]
	at MC-BOOTSTRAP/[email protected]/io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.118.Final.jar%23127!/:4.1.118.Final]
	at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
Caused by: io.netty.handler.codec.EncoderException: Failed to encode: Value must be within range [1;99]: 447 DetachedDrawerContents [item=447 minecraft:cobblestone, stackLimit=32, heavy=false]
	at TRANSFORMER/[email protected]/net.minecraft.network.codec.ByteBufCodecs$25.lambda$encode$1(ByteBufCodecs.java:384) ~[server-1.21.8-20250717.133445-srg.jar%23176!/:?]
	at MC-BOOTSTRAP/[email protected]/com.mojang.serialization.DataResult$Error.getOrThrow(DataResult.java:287) ~[datafixerupper-8.0.16.jar%23119!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.network.codec.ByteBufCodecs$25.encode(ByteBufCodecs.java:384) ~[server-1.21.8-20250717.133445-srg.jar%23176!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.network.codec.ByteBufCodecs$25.encode(ByteBufCodecs.java:374) ~[server-1.21.8-20250717.133445-srg.jar%23176!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.core.component.DataComponentPatch$3.encodeComponent(DataComponentPatch.java:147) ~[server-1.21.8-20250717.133445-srg.jar%23176!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.core.component.DataComponentPatch$3.encode(DataComponentPatch.java:131) ~[server-1.21.8-20250717.133445-srg.jar%23176!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.core.component.DataComponentPatch$3.encode(DataComponentPatch.java:78) ~[server-1.21.8-20250717.133445-srg.jar%23176!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.world.item.ItemStack$2.encode(ItemStack.java:201) ~[server-1.21.8-20250717.133445-srg.jar%23176!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.world.item.ItemStack$2.encode(ItemStack.java:183) ~[server-1.21.8-20250717.133445-srg.jar%23176!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.network.protocol.game.ClientboundContainerSetSlotPacket.write(ClientboundContainerSetSlotPacket.java:36) ~[server-1.21.8-20250717.133445-srg.jar%23176!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.network.codec.StreamCodec$2.encode(StreamCodec.java:42) ~[server-1.21.8-20250717.133445-srg.jar%23176!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.network.codec.StreamCodec$5.encode(StreamCodec.java:90) ~[server-1.21.8-20250717.133445-srg.jar%23176!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.network.codec.StreamCodec$5.encode(StreamCodec.java:82) ~[server-1.21.8-20250717.133445-srg.jar%23176!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.network.codec.IdDispatchCodec.encode(IdDispatchCodec.java:55) ~[server-1.21.8-20250717.133445-srg.jar%23176!/:?]
	... 30 more
[11:24:54] [Server thread/INFO] [minecraft/ServerGamePacketListenerImpl]: narc0tiq lost connection: Internal Exception: io.netty.handler.codec.EncoderException: Failed to encode packet 'clientbound/minecraft:container_set_slot'
[11:24:54] [Server thread/INFO] [minecraft/MinecraftServer]: narc0tiq left the game
commented

Oof yeah, easy to reproduce. I'll have to change the codec to store the count separate.