Skip to content

Changing a player's team can cause Network Protocol Error #18

@SoraHjort

Description

@SoraHjort

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

Image

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]]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions