[BUG] io.netty.buffer.EmptyByteBuf.readByte(EmptyByteBuf.java:523)
- Dominant language
- Java
- Stars
- 238
- Forks
- 125
- PR merge metrics
- No merged PRs in 30d
Description
One of the plugins has an issue when connecting a player from a browser (branded Eagler).
An "Internal Error" occurs on the client.
Velocity server logs:
[15:03:18 INFO] [limboapi]: Test (/127.0.0.1:50500) has connected to the LimboAuth Limbo
[15:03:18 ERROR]: java.lang.IndexOutOfBoundsException
[15:03:18 ERROR]: at io.netty.buffer.EmptyByteBuf.readByte(EmptyByteBuf.java:523)
[15:03:18 ERROR]: at net.lax1dude.eaglercraft.backend.server.base.pipeline.BufferUtils.readVarInt(BufferUtils.java:50)
[15:03:18 ERROR]: at net.lax1dude.eaglercraft.backend.server.base.handshake.VanillaInitializer.handleInbound(VanillaInitializer.java:107)
[15:03:18 ERROR]: at net.lax1dude.eaglercraft.backend.server.base.pipeline.WebSocketEaglerInitialHandler.encode(WebSocketEaglerInitialHandler.java:606)
[15:03:18 ERROR]: at net.lax1dude.eaglercraft.backend.server.base.pipeline.WebSocketEaglerInitialHandler.encode(WebSocketEaglerInitialHandler.java:51)
[15:03:18 ERROR]: at io.netty.handler.codec.MessageToMessageCodec$2.encode(MessageToMessageCodec.java:85)
[15:03:18 ERROR]: at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:90)
[15:03:18 ERROR]: at io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:130)
[15:03:18 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:798)
[15:03:18 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:737)
[15:03:18 ERROR]: at io.netty.handler.timeout.IdleStateHandler.write(IdleStateHandler.java:306)
[15:03:18 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:798)
[15:03:18 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:737)
[15:03:18 ERROR]: at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:116)
[15:03:18 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:800)
[15:03:18 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:737)
[15:03:18 ERROR]: at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:120)
[15:03:18 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:800)
[15:03:18 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:737)
[15:03:18 ERROR]: at net.elytrium.limboapi.thirdparty.fastprepare.handler.PreparedPacketEncoder.write(PreparedPacketEncoder.java:66)
[15:03:18 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:800)
[15:03:18 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:737)
[15:03:18 ERROR]: at io.netty.channel.DefaultChannelPipeline.write(DefaultChannelPipeline.java:1036)
[15:03:18 ERROR]: at io.netty.channel.Channel.write(Channel.java:267)
[15:03:18 ERROR]: at com.velocitypowered.proxy.connection.MinecraftConnection.delayedWrite(MinecraftConnection.java:253)
[15:03:18 ERROR]: at net.elytrium.limboapi.server.LimboImpl.onSpawn(LimboImpl.java:572)
[15:03:18 ERROR]: at net.elytrium.limboapi.server.LimboImpl.spawnPlayerLocal(LimboImpl.java:462)
[15:03:18 ERROR]: at net.elytrium.limboapi.server.LimboImpl.lambda$spawnPlayerLocal$1(LimboImpl.java:551)
[15:03:18 ERROR]: at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148)
[15:03:18 ERROR]: at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:141)
[15:03:18 ERROR]: at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:535)
[15:03:18 ERROR]: at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:201)
[15:03:18 ERROR]: at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1195)
[15:03:18 ERROR]: at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
[15:03:18 ERROR]: at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
[15:03:18 ERROR]: at java.base/java.lang.Thread.run(Thread.java:1583)
[15:03:18 INFO]: [connected player] Test (/127.0.0.1:50500) has disconnected: ?? ???????? ????????????? ?????????? ?????????????????? ??????? ???????!
[15:03:18 INFO] [limboapi]: Test (/127.0.0.1:50500) has disconnected from the LimboAuth Limbo
[15:03:18 INFO]: [initial connection] /127.0.0.1:50500 has disconnected
Also
[15:03:07 WARN]: The server channel initializer has been replaced by java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
Velocity info:
velocity-3.5.0-SNAPSHOT-605
Velocity plugins:
[15:11:55 INFO]: Plugins: velocity, luckperms, maintenance, advancedserverlist, skinsrestorer, eaglerxserver, limboapi, limboauth, packetevents, pl-hide-pro, velocity-tools
Removing any plugin from the chain works, but if you use this specific combination:
limboapi
limboauth
packetevents
eaglerx breaks.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by tracing BufferUtils.readVarInt and VanillaInitializer.handleInbound in the stack trace, then inspect WebSocketEaglerInitialHandler.encode while reproducing the connection with limboapi, limboauth, packetevents, and eaglerxserver enabled. Compare the pipeline behavior with plugins removed; done means the browser connection no longer raises EmptyByteBuf.readByte or disconnects with an internal error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend, networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100