RadioBlockEntity opens a network audio stream synchronously on the client main thread. When the remote endpoint accepts the TCP connection but never delivers data, the main thread parks forever inside AsyncInputStream. and the game becomes permanently unresponsive.
There is no crash, no exception and no crash report — Windows eventually terminates the process and logs Application Hang (Event ID 1002). This makes the issue very hard to diagnose from logs alone; the client log simply stops mid-line.
Critically, no player interaction is required. Merely loading a chunk that contains a radio block with a bad URL is enough to freeze every client that comes within render distance. On a multiplayer server, a single misconfigured radio block placed by any player can repeatedly hang other players.
Environment
Etched - 5.1.0
Minecraft - 1.21.1
Loader - NeoForge 21.1.244
Java - 21.0.7 (Microsoft), Windows 10 x64
Context - Multiplayer, ~300 mod pack
Symptoms
Client freezes hard; window becomes "Not Responding" and never recovers.
No crash report and no hs_err_pid*.log is produced.
latest.log ends abruptly on an unrelated line.
Windows Application log records Application Hang, Event ID 1002, javaw.exe, hang type Unknown.
The server sees the client drop with Connection reset by peer a few minutes later, once the OS kills the process.
Reproduction
Place a radio block and set its URL to an endpoint that completes the TCP handshake but never sends response data (a black-holed host, a dead stream, or a deliberately stalling endpoint).
Leave the area so the chunk unloads.
Re-enter render distance of that chunk (flying in quickly makes this trivial to hit).
The client freezes as soon as the block entity ticks for the first time.
Root cause (presumably)
I attached a txt file that AI wrote about problem, maybe this will help
etched-hang-report-rootcause.txt
RadioBlockEntity opens a network audio stream synchronously on the client main thread. When the remote endpoint accepts the TCP connection but never delivers data, the main thread parks forever inside AsyncInputStream. and the game becomes permanently unresponsive.
There is no crash, no exception and no crash report — Windows eventually terminates the process and logs Application Hang (Event ID 1002). This makes the issue very hard to diagnose from logs alone; the client log simply stops mid-line.
Critically, no player interaction is required. Merely loading a chunk that contains a radio block with a bad URL is enough to freeze every client that comes within render distance. On a multiplayer server, a single misconfigured radio block placed by any player can repeatedly hang other players.
Environment
Etched - 5.1.0
Minecraft - 1.21.1
Loader - NeoForge 21.1.244
Java - 21.0.7 (Microsoft), Windows 10 x64
Context - Multiplayer, ~300 mod pack
Symptoms
Client freezes hard; window becomes "Not Responding" and never recovers.
No crash report and no hs_err_pid*.log is produced.
latest.log ends abruptly on an unrelated line.
Windows Application log records Application Hang, Event ID 1002, javaw.exe, hang type Unknown.
The server sees the client drop with Connection reset by peer a few minutes later, once the OS kills the process.
Reproduction
Place a radio block and set its URL to an endpoint that completes the TCP handshake but never sends response data (a black-holed host, a dead stream, or a deliberately stalling endpoint).
Leave the area so the chunk unloads.
Re-enter render distance of that chunk (flying in quickly makes this trivial to hit).
The client freezes as soon as the block entity ticks for the first time.
Root cause (presumably)
I attached a txt file that AI wrote about problem, maybe this will help
etched-hang-report-rootcause.txt