Summary
Since the 5.8.2 hotfix, the Unreal Editor main window is never displayed on macOS 26 (Tahoe). The editor launches and runs (splash shows, native menu bar responds, secondary windows like the Message Log and the -log console display normally), but the main frame is created off-screen, attached to no Space, and can never be brought up. Reproduces 100 percent of the time, on every launch, with every project. The same machine runs UE 5.7 perfectly, and the same projects opened fine in 5.8.0 and 5.8.1 before the 5.8.2 upgrade.
What Type of Bug are you experiencing?
UI / Tools
Steps to Reproduce
- On macOS 26 (tested 26.6.2, build 25G83, MacBook Pro M4 Max, built-in display only), install UE 5.8.2 (CL 56702186) from the Epic Games Launcher.
- Open any project (reproduced with a Cinematic template project, and with a completely clean Saved/Config/MacEditor, so saved settings are not involved).
- Wait for loading to finish.
Expected Result
The editor main window appears, as it does with UE 5.7 on the same machine.
Observed Result
An untitled window flashes on screen for about one second when loading completes, then nothing. The process keeps running with no visible main window.
Instrumented with CGWindowListCopyWindowInfo polled at 400 ms (timelines attached):
- The main window (“MyProject - Unreal Editor”) is created with kCGWindowIsOnscreen=false, alpha 1.0, layer 0, at the full work-area size (0,44 2336x1466), even when [RootWindow] in EditorPerProjectUserSettings.ini specifies ScreenPosition (100,100), WindowSize 2000x1200, InitiallyMaximized=False. The saved geometry is ignored.
- A second untitled window is briefly onscreen at (228,88) 2108x1422 (anchored bottom-right), resizes once, and is destroyed after about one second. That is the visible flash.
- CGSCopySpacesForWindows reports the main window attached to NO Space; it is never ordered in.
- The Accessibility API reports zero windows for the process, so nothing can recover it from outside: the Window menu entries (Zoom, Minimize, the window’s own item) execute without error but change nothing. Cmd+Q quits cleanly.
Ruled out by A/B testing, all failing identically:
- Clean Saved/Config/MacEditor (deleted entirely)
- InitiallyMaximized=False with a small saved window size
- All project plugins disabled via -DisablePlugins
- A different map at startup (/Engine/Maps/Entry on the command line)
- No third-party window manager running (AeroSpace quit, Stage Manager off)
- Finder launch vs direct CLI launch, with -log -stdout, and with -NoSplash
- NSAutomaticWindowAnimationsEnabled=NO
Affects Versions
5.8
Platform(s)
Mac
Upload an image
ue-582-invisible-window-evidence.zip (48.2 KB)
For crash reports, include your callstack
Not a crash, so no Crash Reporter callstack exists. Pasting instead the CGWindowList timelines that document the failure (the full editor log of a failing session is available on request; I will also try to attach both files in a reply, since this form only accepts images):
CGWindowList timelines of UE 5.8.2 editor startup on macOS 26.6.2 (MacBook Pro M4 Max, built-in display 2336x1510 pt, work area (0,44)-(2336,1510)).
Method: CGWindowListCopyWindowInfo(.optionAll) polled every 400 ms; only state transitions are printed. Format per window: [windowNumber] ‘title’ onscreen= X,Y WxH
The [RootWindow] section of Saved/Config/MacEditor/EditorPerProjectUserSettings.ini contained ScreenPosition (100,100), WindowSize 2000x1200, InitiallyMaximized=False for every run below, verified on disk immediately before each launch. The main window is nevertheless always created at the full work area (0,44) 2336x1466 and never ordered in. The untitled ~2100x1420 window anchored bottom-right is the one-second “flash” visible to the user before everything disappears.
=== Run 1: launched via Finder association (open MyProject.uproject), AeroSpace quit, all other window managers absent ===
0.0s (no UE windows)
0.4s [1500] ‘’ onscreen=false 0,0 2336x44 | [1499] ‘’ onscreen=false 0,0 2336x44 | [1498] ‘’ onscreen=false 0,0 2336x44 | [1497] ‘’ onscreen=false 0,0 2336x44
1.3s [1501] ‘’ onscreen=true 808,318 720x370 (splash) | menu-bar windows unchanged
13.9s [1503] ‘MyProject - Unreal Editor’ onscreen=false 0,44 2336x1466 | splash still visible
14.3s [1504] ‘’ onscreen=true 228,88 2108x1422 ← the visible flash
14.7s [1504] destroyed; [1503] remains onscreen=false 0,44 2336x1466
15.2s [1506] ‘’ onscreen=false 844,708 648x135 (notification toast)
20.9s steady state: [1503] onscreen=false, never shown again
=== Run 2: same, but with Saved/Config/MacEditor deleted entirely (virgin config) ===
0.9s four menu-bar windows created offscreen
1.7s [1540] ‘’ onscreen=true 807,318 722x370 (splash)
14.3s [1542] ‘MyProject - Unreal Editor’ onscreen=false 0,44 2336x1466
[1543] ‘’ onscreen=true 228,88 2108x1422 ← flash
14.7s [1543] resized to 245,99 2074x1400, still onscreen
15.1s [1545] ‘’ onscreen=true 844,708 648x135 (toast)
15.6s [1543] destroyed
100.5s steady state: [1542] onscreen=false, never shown
=== Run 3: direct CLI launch of the UnrealEditor binary with -log -stdout ===
1.3s [1571] ‘’ onscreen=true 768,253 800x632 (the -log console window, which displays PERFECTLY and stays visible: window display in general works, only the main frame fails)
1.7s splash [1574] onscreen=true
14.7s [1582] ‘MyProject - Unreal Editor’ onscreen=false 0,44 2336x1466
[1583] ‘’ onscreen=true 228,88 2108x1422 ← flash
15.9s [1583] destroyed; steady state, main window never shown
=== Run 4: -DisablePlugins=<all 22 project plugins> → identical failure
=== Run 5: map override /Engine/Maps/Entry on command line → identical failure
=== Run 6: -NoSplash → identical failure ([1702]/[1703], same geometry)
=== Run 7: NSAutomaticWindowAnimationsEnabled=NO → identical failure
Additional observations on a failing session:
- CGSCopySpacesForWindows reports the main window attached to NO Space.
- The Accessibility API (AXUIElement) reports zero windows for the process; System Events “windows of process” returns an empty list.
- The native menu bar responds; Window > Zoom / Minimize / the window’s own entry execute without error but the window stays offscreen.
- Quitting via Cmd+Q shuts the editor down cleanly, and on shutdown it writes InitiallyMaximized=True back to the ini (isZoomed=YES because the frame equals the work area), re-arming the maximized path for the next launch.
Control run: UE 5.7 (launcher build) on the same machine, same day, a 5.7 project opens its main window onscreen at exactly (100,99) 2000x1200, i.e. the geometry from the ini, proving both the machine and the method are sound.
Additional Notes
Aggravating side effect: on shutdown the editor saves InitiallyMaximized = IsWindowMaximized(), which on Mac returns the cached [NSWindow isZoomed]. Because the never-shown window’s frame equals the work area, isZoomed is YES, so InitiallyMaximized=True is written back even though the window was never displayed and the user never maximized anything. Hand-fixing the ini therefore does not survive a single session.
Possible lead, from the sources shipped with the launcher build: between 5.7 and 5.8, CocoaWindow.cpp changed the GameThreadCall in windowDidBecomeMain / windowDidResignMain from blocking (bWaitForThread=true) to non-blocking (bWaitForThread=false). A timing race around ordering the root window in would be consistent with the observations: deterministic failure here, but the window did appear once shortly after the upgrade, which suggests a race rather than a hard failure.
Nothing unusual in the logs at the moment of failure (full editor log and the CGWindowList timelines attached). Happy to provide more data or test candidate fixes.
Platform: macOS 26.6.2 (25G83), MacBook Pro M4 Max, built-in display 2336x1510 pt. UE 5.8.2 launcher build, CL 56702186. UE 5.7 launcher build on the same machine: not affected.