EzLogin Disconnect Fix
A focused server bugfix for EzLogin 1.0.0.
The problem
A player disconnecting during the authentication tick can change the player list while EzLogin is iterating it, causing a ConcurrentModificationException and a server crash.
Why it happens
EzLogin iterates the live player list. Disconnecting an expired or unauthenticated player can change the underlying list before the iterator finishes.
Scope of the fix
- Iterates an immutable snapshot of the current player list for this authentication tick.
- Leaves arrivals for the next tick and lets normal disconnect handling proceed.
- Detects the existing equivalent snapshot patch and avoids applying it again.
Registration, passwords, authentication requirements, session expiry, login timeouts, blindness, commands and player data retain their original behaviour. No authentication protection is disabled.
Compatibility
- Minecraft 1.21.1
- NeoForge 21.1.235
- Java 21
- EzLogin 1.0.0
Install on the dedicated server. Clients do not require this addon. Replace no upstream JAR: this is a separate addon. An already patched EzLogin with the equivalent list snapshot is preserved.
From Steam & Steel
The addon originated in Steam & Steel SMP, our custom Minecraft 1.21.1 NeoForge server modpack. It is available independently of the full modpack.
The original required mod is installed separately. SteamSteelCore and the full Steam & Steel modpack are not required.
Acknowledgements
EzLogin is by Kuben1.
This is an independent community addon.
Beta / Feedback
This is a beta release. It originated in problems encountered on our Steam & Steel SMP server within a specific modpack. The public addon has local checks; compatibility with other modpacks still needs feedback.
If you encounter a crash, an error or unexpected behaviour, please leave a comment with your Minecraft, NeoForge, original-mod and addon versions and the relevant error or crash report, plus steps to reproduce the problem. We will investigate reported bugs and work on fixes.
The original tick bytecode and the real Mixin-transformed tick are checked with disconnect, timeout, session, arrival and empty-list scenarios. Minecraft accounts, password records and a live server are not accessed by those fixtures.
License
Addon code is licensed under BSD 3-Clause. Copyright (c) 2026, DanielBasov (Steam & Steel). Forks, fixes and redistribution are permitted; retain the author attribution, license conditions and disclaimer in source distributions and in the materials accompanying binary distributions. A fork may not imply endorsement by the original author.
Original voxel artwork and pixel textures for this addon are licensed under BSD 3-Clause. No original EzLogin assets are redistributed.

