[Linux][5.7.x&5.8.x] Keyboard permanently freezes after some time in Editor — Root cause found & workaround available

Summary

There is a bug in the Linux version of Unreal Engine where the keyboard input will randomly and permanently stop working in the editor after some time of use. This includes playing the game in editor (PIE), modifying blueprints, renaming files, typing in search boxes, etc. Once it happens, all key presses are swallowed — the application receives nothing until the engine is restarted. Mouse input remains normal. No relevant errors appear in the UE logs.
This has been bisected to a race condition in the XIM protocol handling (via SDL’s X11 backend + fcitx5 / xcb-imdkit). When an XIM_DESTROY_IC arrives while a synchronous key-forward is still in flight, the input-method server’s client->sync flag is never cleared. Subsequent keys are permanently queued and never dispatched, so XFilterEvent always returns True and SDL discards every key.
A reliable workaround exists (disable XIM sync mode in fcitx5) and a proper one-line fix for xcb-imdkit has been verified. Full technical analysis, logs, time-aligned client/server traces, and patches are available here:

What Type of Bug are you experiencing?

Editor

Steps to Reproduce

  1. Run Unreal Editor on Linux under X11 (or XWayland) with fcitx5 as the input method (SDL_VIDEODRIVER=x11 recommended).

  2. Use the editor normally for a while (renaming assets, editing blueprints, typing in search fields, Chinese/English input, etc.).

  3. After a random interval (minutes to an hour), the keyboard suddenly stops responding completely.

The freeze is permanent until the editor is restarted.

The race is timing-dependent and hard to force on demand, but it occurs regularly under normal interactive use.

Expected Result

Keyboard input continues to work indefinitely.

Observed Result

Keyboard input permanently stops working; every key is consumed by the input method and never reaches Unreal Engine / SDL. Only a restart restores functionality.

Affects Versions

5.8
5.7

Platform(s)

Linux

Additional Notes

Related: Keyboard Input failing in Editor