1.21.4 discovey recipe invalid packet
Nobody has claimed this yet.
- Dominant language
- Shell
- Stars
- 4.4k
- Forks
- 621
- PR merge metrics
- No merged PRs in 30d
Description
Stack trace
[04:57:02 ERROR]: Error sending packet clientbound/minecraft:recipe_book_add (skippable? false)
io.netty.handler.codec.EncoderException: Failed to encode packet 'clientbound/minecraft:recipe_book_add'
at net.minecraft.network.codec.IdDispatchCodec.encode(IdDispatchCodec.java:53) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.codec.IdDispatchCodec.encode(IdDispatchCodec.java:20) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:26) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:12) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:107) ~[netty-codec-4.1.115.Final.jar:4.1.115.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:893) ~[netty-transport-4.1.115.Final.jar:4.1.115.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) ~[netty-transport-4.1.115.Final.jar:4.1.115.Final]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) ~[netty-transport-4.1.115.Final.jar:4.1.115.Final]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) ~[netty-transport-4.1.115.Final.jar:4.1.115.Final]
at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:113) ~[netty-codec-4.1.115.Final.jar:4.1.115.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:893) ~[netty-transport-4.1.115.Final.jar:4.1.115.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) ~[netty-transport-4.1.115.Final.jar:4.1.115.Final]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) ~[netty-transport-4.1.115.Final.jar:4.1.115.Final]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) ~[netty-transport-4.1.115.Final.jar:4.1.115.Final]
at io.netty.channel.ChannelOutboundHandlerAdapter.write(ChannelOutboundHandlerAdapter.java:113) ~[netty-transport-4.1.115.Final.jar:4.1.115.Final]
at net.minecraft.network.Connection$2.write(Connection.java:819) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:893) ~[netty-transport-4.1.115.Final.jar:4.1.115.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) ~[netty-transport-4.1.115.Final.jar:4.1.115.Final]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) ~[netty-transport-4.1.115.Final.jar:4.1.115.Final]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) ~[netty-transport-4.1.115.Final.jar:4.1.115.Final]
at io.netty.channel.ChannelDuplexHandler.write(ChannelDuplexHandler.java:115) ~[netty-transport-4.1.115.Final.jar:4.1.115.Final]
at ItemJoin.jar/me.RockinChaos.itemjoin.core.utils.protocol.TinyProtocol$PacketInterceptor.write(TinyProtocol.java:480) ~[ItemJoin.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) ~[netty-transport-4.1.115.Final.jar:4.1.115.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:956) ~[netty-transport-4.1.115.Final.jar:4.1.115.Final]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:982) ~[netty-transport-4.1.115.Final.jar:4.1.115.Final]
at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:950) ~[netty-transport-4.1.115.Final.jar:4.1.115.Final]
at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:1000) ~[netty-transport-4.1.115.Final.jar:4.1.115.Final]
at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:974) ~[netty-transport-4.1.115.Final.jar:4.1.115.Final]
at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:305) ~[netty-transport-4.1.115.Final.jar:4.1.115.Final]
at net.minecraft.network.Connection.doSendPacket(Connection.java:540) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.Connection.lambda$sendPacket$13(Connection.java:525) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173) ~[netty-common-4.1.115.Final.jar:4.1.115.Final]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166) ~[netty-common-4.1.115.Final.jar:4.1.115.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) ~[netty-common-4.1.115.Final.jar:4.1.115.Final]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:405) ~[netty-transport-classes-epoll-4.1.115.Final.jar:4.1.115.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.115.Final.jar:4.1.115.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.115.Final.jar:4.1.115.Final]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
Caused by: java.lang.RuntimeException: Error encoding component minecraft:equippable
at net.minecraft.core.component.DataComponentPatch$1.encodeComponent(DataComponentPatch.java:151) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.core.component.DataComponentPatch$1.encode(DataComponentPatch.java:128) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.core.component.DataComponentPatch$1.encode(DataComponentPatch.java:66) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.world.item.ItemStack$1.encode(ItemStack.java:191) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.world.item.ItemStack$1.encode(ItemStack.java:155) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.world.item.ItemStack$2.encode(ItemStack.java:214) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.world.item.ItemStack$2.encode(ItemStack.java:199) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.codec.StreamCodec$7.encode(StreamCodec.java:124) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.codec.StreamCodec$6.encode(StreamCodec.java:109) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.codec.StreamCodec$11.encode(StreamCodec.java:235) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.codec.StreamCodec$6.encode(StreamCodec.java:109) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.codec.StreamCodec$11.encode(StreamCodec.java:233) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.codec.StreamCodec$8.encode(StreamCodec.java:142) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.codec.ByteBufCodecs$21.encode(ByteBufCodecs.java:441) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.codec.ByteBufCodecs$21.encode(ByteBufCodecs.java:423) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.codec.StreamCodec$8.encode(StreamCodec.java:142) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.codec.StreamCodec$5.encode(StreamCodec.java:90) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.codec.StreamCodec$5.encode(StreamCodec.java:80) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
... 38 more
Caused by: java.lang.NullPointerException: Cannot invoke "java.util.Optional.isPresent()" because "optional" is null
at net.minecraft.network.codec.ByteBufCodecs$20.encode(ByteBufCodecs.java:389) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.codec.ByteBufCodecs$20.encode(ByteBufCodecs.java:381) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.codec.StreamCodec$14.encode(StreamCodec.java:360) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.core.component.DataComponentPatch$1.encodeComponent(DataComponentPatch.java:149) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.core.component.DataComponentPatch$1.encode(DataComponentPatch.java:128) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.core.component.DataComponentPatch$1.encode(DataComponentPatch.java:66) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.world.item.ItemStack$1.encode(ItemStack.java:191) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.world.item.ItemStack$1.encode(ItemStack.java:155) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.world.item.ItemStack$2.encode(ItemStack.java:214) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.world.item.ItemStack$2.encode(ItemStack.java:199) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.codec.StreamCodec$7.encode(StreamCodec.java:124) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.codec.StreamCodec$6.encode(StreamCodec.java:109) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.codec.StreamCodec$11.encode(StreamCodec.java:235) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.codec.StreamCodec$6.encode(StreamCodec.java:109) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.codec.StreamCodec$11.encode(StreamCodec.java:233) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.codec.StreamCodec$8.encode(StreamCodec.java:142) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.codec.ByteBufCodecs$21.encode(ByteBufCodecs.java:441) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.codec.ByteBufCodecs$21.encode(ByteBufCodecs.java:423) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.codec.StreamCodec$8.encode(StreamCodec.java:142) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.codec.StreamCodec$5.encode(StreamCodec.java:90) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
at net.minecraft.network.codec.StreamCodec$5.encode(StreamCodec.java:80) ~[folia-1.21.4.jar:1.21.4-DEV-d4bc338]
... 38 more
Plugin and Datapack List
[04:59:39 INFO]: Server Plugins (70):
[04:59:39 INFO]: Paper Plugins:
[04:59:39 INFO]: - help, MvndiAchievements, MvndiBattle, MvndiCombat, MvndiCore, MvndiCrafting, MvndiEquipment, MvndiHolders, MvndiHunters, MvndiMisc
[04:59:39 INFO]: MvndiMMO, MvndiMounts, MvndiPlayers, MvndiRPG, MvndiStats, MvndiTowny, MvndiUI, TownyWaypoints
[04:59:39 INFO]: Bukkit Plugins:
[04:59:39 INFO]: - Backuper, BetterGUI, BetterHud, BetterRTP, BigDoors, BreweryX, BukkitGreentext, ChatFilter, ChestShop, ChestShop-towny
[04:59:39 INFO]: Chunky, ChunkyBorder, CommandBlocker, DarkerNights, FarmControl, FlagsH, FreedomChat, HeadDrop, HexNicks, iConomyUnlocked
[04:59:39 INFO]: InventoryRollbackPlus, InvSeePlusPlus, ItemJoin, LiteBans, LuckPerms, MapTowny, MinecraftSSH, MvndiBanHooks, MvndiChisel, MvndiGUI
[04:59:39 INFO]: MvndiMenus, MvndiMobs, MvndiSiege, OPItemsRemover, packetevents, PlaceholderAPI, PotionEffectsRemover, SiegeWar, SmoothTimber, spark
[04:59:39 INFO]: squaremap, SuperVanish, TAB, Towny, TownyBlockGlitch, TownyChat, TownyMenus, TownyResources, UltimateAdvancementAPI, Vault
[04:59:39 INFO]: VoidWorldGenerator, ZAutoBroadcast
player gets kicked and cant join server
no datapacks
Actions to reproduce (if known)
this is the method in our plugin that causes out (if the discover recipes line is commented out then players can join)
@org.bukkit.event.EventHandler(priority = EventPriority.LOW)
public void onPlayerJoin(PlayerJoinEvent e) {
RecipeManager.setCraftMenuView(e.getPlayer(), CraftMenuView.NONE);
e.getPlayer().discoverRecipes(recipe_manager.getVanillaRecipes());
}
Folia version
This server is running Folia version 1.21.4-DEV-dev/1.21.4@d4bc338 (2024-12-05T04:54:20Z) (Implementing API version 1.21.4-R0.1-SNAPSHOT)
Other
it doesnt happen on bb4fb5334e7f7231c86c6ef9951d3eb24db9e6ea
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the stack trace for clientbound/minecraft:recipe_book_add and the minecraft:equippable component, then investigate which listed plugin or datapack produces the invalid item data. Reproduce the player kick in the reported Folia 1.21.4 environment; done means the packet encodes successfully and the player can join without the exception.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100