-
Notifications
You must be signed in to change notification settings - Fork 7
Description
DisplayTags: v1.1.2
PacketEvents: v2.11.2
Server: purpur-1.21.11-2561
Changing a player's team has the possibility to disconnect players with a network protocol error, for Cannot remove from team '<team>'
no error occurs on the server. The only error occurs on clients. Which is:
---- Minecraft Network Protocol Error Report ----
// Could be worse, I guess
Time: 2026-02-16 02:12:11
Description: Packet handling error
java.lang.IllegalStateException: Player is either on another team or not on any team. Cannot remove from team '01_admins'.
at fur.b(SourceFile:302)
at hig.a(SourceFile:2227)
at agz.a(SourceFile:131)
at agz.a(SourceFile:19)
at xl$a.a(SourceFile:55)
at xl.b(SourceFile:38)
at gfj.d(SourceFile:1337)
at gfj.j(SourceFile:966)
at net.minecraft.client.main.Main.main(SourceFile:250)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Thread: Render thread
Stacktrace:
at fur.b(SourceFile:302)
-- Incoming Packet --
Details:
Type: clientbound/minecraft:set_player_team
Is Terminal: false
Is Skippable: false
Stacktrace:
at abb.a(SourceFile:41)
at hia.a(SourceFile:146)
at hia.a(SourceFile:125)
at xl$a.a(SourceFile:60)
at xl.b(SourceFile:38)
at gfj.d(SourceFile:1337)
at gfj.j(SourceFile:966)
at net.minecraft.client.main.Main.main(SourceFile:250)
-- Connection --
Details:
Protocol: play
Flow: CLIENTBOUND
Is Local: false
Server type: OTHER
Server brand: Purpur
The easiest setup to replicate is
Set the command block set to /team join <team> <player>, and just rapidly pulse it with the observer clock.
It will then disconnect anyone who observes that player close enough to see the billboard above their head. If another player is close enough to see the player model, but not the name, they will not disconnect.
It can occur without the command block setup, but it seems to occur randomly. Sometimes when a team change occurs it'll occur, while other times it does not, so it seems to be completely to timing.
I originally ran into this error while setting up my own custom player list for my server via skript and addons since I was using it to sort the player list whether a player was AFK or not, by assigning players their own unique teams, and found spamming /afk was enough to DC players.
But was able to verify it will only occur when DisplayTags and PacketEvents are the only two plugins installed with just /teams join <team>. Sometimes just sending the command once will do it, sometimes it requires multiple, but the command block setup is the sure fire way to make it occur.
All the server sees:
(Note, player SoraHjort was slightly out of range when the command block pulsing was started before IslandGhost moved into view.)
[02:12:00] [Server thread/INFO]: IslandGhost issued server command: /team add 01_admins Admins
[02:12:00] [Server thread/INFO]: [IslandGhost: Created team [Admins]]
[02:12:08] [Server thread/INFO]: [@: Added IslandGhost to team [Admins]]
[02:12:08] [Server thread/INFO]: [@: Added IslandGhost to team [Admins]]
[02:12:09] [Server thread/INFO]: [@: Added IslandGhost to team [Admins]]
[02:12:09] [Server thread/INFO]: [@: Added IslandGhost to team [Admins]]
[02:12:09] [Server thread/INFO]: [@: Added IslandGhost to team [Admins]]
[02:12:10] [Server thread/INFO]: [@: Added IslandGhost to team [Admins]]
[02:12:10] [Server thread/INFO]: [@: Added IslandGhost to team [Admins]]
[02:12:10] [Server thread/INFO]: [@: Added IslandGhost to team [Admins]]
[02:12:11] [Server thread/INFO]: [@: Added IslandGhost to team [Admins]]
[02:12:11] [Server thread/INFO]: [@: Added IslandGhost to team [Admins]]
[02:12:11] [Server thread/INFO]: [@: Added IslandGhost to team [Admins]]
[02:12:11] [Server thread/INFO]: SoraHjort lost connection: Disconnected
[02:12:11] [Server thread/INFO]: SoraHjort left the game
[02:12:11] [Server thread/INFO]: [@: Added IslandGhost to team [Admins]]
[02:12:12] [Server thread/INFO]: [@: Added IslandGhost to team [Admins]]