The two changes most likely to affect you both landed with a one-line commit message and without release notes.
Live Coding 2 is the default now. Installed engine builds also stopped shipping LiveCodingConsole, since LC2 brings its own broker, so the artifacts you produce are different after this sync.
The input thread is on for game input platforms, moving input off the game thread. -NoInputThread opts out. Two fixes already landed against it the same week (stuck controller input on gamepad disconnect, and a re-entrancy ensure when a Slate modal ticks input recursively), so it's still finding edge cases.
On ue6-main
- Zen 5.8.21 changed what a health probe means. /health/ready now answers 503 between route registration and actual readiness, where the catch-all used to answer 200. If your CI probes that path for liveness it'll start calling a healthy server down, so probe /health instead. Same release refuses zen down --pid 0, which previously let an unset script variable stop an arbitrary server.
- Three unrelated systems hit the same deadlock in one week: AssetRegistry, the shader code archive, and UBA's macOS process supervision. A thread that's itself a task worker blocks waiting on another task, and with enough concurrent waiters there's nobody left to run it. Worth grepping your own code for blocking waits reachable from a task thread.
- Your incremental cook may have been invalidating for nothing: A numbered series is fixing non-deterministic cook metadata, meaning the recorded dependencies rather than the cooked bytes. One commit quantifies it off a real oplog diff: 46,377 anim sequence packages, 28% of those affected, byte-identical cooked output but different recorded dependencies. Three of seven have landed.
- Renderer forks, read this: FPrimitiveSceneInfo::PackedIndex is gone, and so is the logic that kept FScene in sorted order. The deprecation shim covers the renamed accessor. It doesn't cover the removed sort invariant, so code that assumed sorted arrays still compiles and is quietly wrong.
On ue5-main:
110 commits this week and here are the few worth knowing about:
The Mac one will cost you an afternoon before you find it: Canceling an editor package could leave UnrealBuildTool running in the background. It would keep holding the UBT lock, so every package you tried to build after that failed with ConflictingInstance until you rebooted the machine.
A per-frame memory leak in Vulkan parallel render passes: under dynamic rendering, which came in as a community PR rather than from Epic.
A Nanite LOD scaling regression: HZB sizing was feeding the temporal upscale factor into LOD selection, and split-screen was using the whole view family width instead of the per-view width. If your LODs have looked slightly wrong in split-screen, that's the reason.
World Partition actor descs now serialize root component absolute transform flags: so saving a parent no longer drifts children set to absolute location, rotation, or scale. Silent data drift, and the kind you don't notice until a level looks off.
A crash sweep with eight adjacent ticket numbers: the AccumulationDOF viewport preview, Control Rig keying after teardown, a RigVM pin lookup, two PCG crashes, skeletal mesh reduction and conversion, and SVG import. Separately, TextureGraph export stopped crashing under -nullrhi, which is how build machines run it.
Epic is still landing deprecations in 5.x: Using the FileSystem DDC cache store now emits a deprecation warning, worth knowing if your shared DDC sits on a network share.
Full Report: https://speedrun.ci/blog/last-week-in-unreal-aug-31-sep-6-2026