isXander / isXander/Controlify
[Bug] crash after server closes and player gets kicked
Open
@isXander is already working on this.
Since Jun 28, 2026.
bug
- Dominant language
- Java
- Stars
- 341
- Forks
- 97
- Avg merge
- 1h
- Merged PRs (30d)
- 1
Description
Current Behaviour
i opened 2 minecraft instances, one hosted a singleplayer world with LAN, the other joined. then i closed LAN on the world so the other instance got kicked for reason "Server closed"
but then a few seconds later it crashed
Expected Behaviour
no crash and instead lets me do whatever i want,
Screenshots
No response
Reproduction Steps
- launch 2 instances of minecraft
- use the 1st instance to open a singleplayer world to LAN
- join the LAN world with the other instance.
- close the LAN world, causing the other instance to get kicked cuz server closed
- wait a bit. or click around using the controller.
- crash
Logs
[17:21:39] [Render thread] [FATAL] net.minecraft.ReportedException: Ticking current controller
at knot//dev.isxander.controlify.utils.ControllerUtils.wrapControllerError(ControllerUtils.java:35)
at knot//dev.isxander.controlify.Controlify.lambda$tick$1(Controlify.java:468)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at knot//dev.isxander.controlify.Controlify.tick(Controlify.java:467)
at knot//net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents.lambda$static$1(ClientTickEvents.java:34)
at knot//net.minecraft.client.Minecraft.handler$ckh000$fabric-lifecycle-events-v1$onStartTick(Minecraft.java:14157)
at knot//net.minecraft.client.Minecraft.tick(Minecraft.java)
at knot//net.minecraft.client.Minecraft.runTick(Minecraft.java:1250)
at knot//net.minecraft.client.Minecraft.run(Minecraft.java:959)
at knot//net.minecraft.client.main.Main.main(Main.java:292)
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:514)
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:72)
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
Caused by: java.util.ConcurrentModificationException
at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1096)
at java.base/java.util.ArrayList$Itr.next(ArrayList.java:1050)
at knot//net.minecraft.client.server.IntegratedServer.updateCommandsAllowedForOtherPlayers(IntegratedServer.java:303)
at knot//net.minecraft.client.server.IntegratedServer.teardownPublishedState(IntegratedServer.java:321)
at knot//net.minecraft.client.server.IntegratedServer.unpublishServer(IntegratedServer.java:350)
at knot//net.minecraft.client.gui.screens.MultiplayerOptionsScreen.changeMultiplayerScope(MultiplayerOptionsScreen.java:189)
at knot//net.minecraft.client.gui.screens.MultiplayerOptionsScreen.lambda$init$2(MultiplayerOptionsScreen.java:99)
at knot//net.minecraft.client.gui.components.Button.onPress(Button.java:109)
at knot//dev.isxander.controlify.screenop.compat.vanilla.AbstractButtonComponentProcessor.overrideControllerButtons(AbstractButtonComponentProcessor.java:25)
at knot//dev.isxander.controlify.screenop.ScreenProcessor.handleComponentButtonOverride(ScreenProcessor.java:215)
at knot//dev.isxander.controlify.screenop.ScreenProcessor.onControllerUpdate(ScreenProcessor.java:62)
at knot//dev.isxander.controlify.Controlify.tickActiveController(Controlify.java:534)
at knot//dev.isxander.controlify.Controlify.lambda$tick$2(Controlify.java:469)
at knot//dev.isxander.controlify.utils.ControllerUtils.wrapControllerError(ControllerUtils.java:28)
Mod Version
3.0.2+26.2
Controller
Dualsense
Bluetooth
- Yes
Operating System
Linux/SteamOS
ARM
- Yes
Additional Information
i had 1 controller via bluetooth and the other via USB cable.
both worked fine.
Just to make sure...
- I have made sure I am using the latest version of Controlify for the latest version of Minecraft.
- I have made sure there are no other issues describing the same problem on the issue tracker.
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.
Assessment
This issue has not been assessed yet.