Proof Portal
Omarchy
ProbeLabs65 findings · 95 requirementsA proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.
omarchy-shell crashes and relaunches on every wake from idle lock (FALLBACK monitor removal, fatal Wayland error)
Reported by mcjansen · filed Aug 18, 2026Closed upstream on 2026-09-21 by bjarneo via an automated message, as a duplicate of #6628 (R-1882). GitHub close reason: completed.
At a glance
- 1 · What is claimed?
- Only the report text below — no validator has restated it as checkable claims yet.
- 2 · What does it affect?
- Not yet mapped to any requirement or component.
- 3 · Is it reproducible?
- No validation has been run yet.
- 4 · What remains unclear?
- Not validated yet: no claims, no reproducer.
- 5 · What happens next?
- Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. No decision has been recorded yet.
Original report
What happened
Every time the screen unlocks after an idle lock (hypridle lock + DPMS wake), the omarchy-shell (Quickshell) process crashes and is immediately relaunched by its supervisor. It self-heals in about a second, so it shows up as a brief error/flash right as the system wakes, rather than a lasting freeze. Session security is not affected — secure=true holds throughout and unlock only completes via the real PAM prompt.
This is 100% reproducible on this machine: it happened on every single wake-from-idle-lock over the last 3 days of uptime (12+ occurrences checked in the journal), not an occasional fluke.
Expected behavior
The shell should survive a wake-from-idle-lock without crashing/relaunching.
Steps to reproduce
- Let the screen idle-lock (
idle.lockin~/.config/omarchy/shell.json, default 300s). - Wake the screen (move the mouse / press a key).
- Watch
journalctl --user -f(or just the screen) around the wake moment.
Log excerpt (journalctl -b 0)
Aug 18 13:51:36.456103 omarchydesktop omarchy-shell[2797450]: DEBUG qml: omarchy idle 2026-08-18T11:51:36.456Z idle-monitor: active
Aug 18 13:51:38.357684 omarchydesktop omarchy-shell[2797450]: INFO qt.qpa.wayland: There are no outputs - creating placeholder screen
Aug 18 13:51:38.430386 omarchydesktop omarchy-shell[2797450]: DEBUG: Not creating lock surface for screen QScreen(0x7eff83c27970, name="") as it is not backed by a valid wayland output.
Aug 18 13:51:39.242525 omarchydesktop omarchy-shell[2797450]: INFO qt.qpa.wayland: There are no outputs - creating placeholder screen
Aug 18 13:51:40.224861 omarchydesktop uwsm_hyprland.desktop[2133]: error in client communication (pid 2797450)
Aug 18 13:51:40.304037 omarchydesktop omarchy-shell[2797450]: WARN quickshell.hyprland.ipc: Got removal for monitor "FALLBACK" which was not previously tracked.
Aug 18 13:51:40.367684 omarchydesktop omarchy-shell[2797450]: WARN: The Wayland connection experienced a fatal error: Invalid argument
Aug 18 13:51:40.440390 omarchydesktop omarchy-shell[2888127]: Omarchy shell exited with status 255; relaunching.
Aug 18 13:51:41.458452 omarchydesktop omarchy-shell[2888220]: INFO: Launching config: "/usr/share/omarchy/shell/shell.qml"
Aug 18 13:51:41.630341 omarchydesktop omarchy-shell[2888220]: WARN qt.qpa.services: Failed to register with host portal QDBusError("org.freedesktop.portal.Error.Failed", "Could not register app ID: Connection already associated with an application ID")
Aug 18 13:51:41.851609 omarchydesktop omarchy-shell[2888220]: DEBUG qml: omarchy lock 2026-08-18T11:51:41.852Z lock-stranded: recoveringAlso seen separately from xdg-desktop-portal-hyprland around a wake at 08:15:
Aug 18 08:15:06 omarchydesktop xdg-desktop-portal-hyprland[2621]: [LOG] Found output name FALLBACK(repeated 10x in the same second)
My read on the cause
During the DPMS wake handshake, Hyprland briefly represents a transitional output as a placeholder monitor named FALLBACK. Quickshell's Hyprland-IPC layer receives a removal event for that monitor without ever having recorded it as added, which appears to desync its internal output/surface bookkeeping enough to trip a fatal Wayland protocol error (Invalid argument) and kill the whole shell client. The supervisor relaunches it immediately, and the lock state recovers (lock-stranded: recovering), but the crash-and-restart is visible on screen.
System info
- Omarchy: 4.0.0-1
- Hyprland: 0.56.2 (v0.56.2, commit efb50993780079460b0cbed1363e2166a2de1d9f)
- quickshell-git: 0.3.0.r20.g28771c7-1
- Kernel: 7.1.8-arch1-3
- CPU: 12th Gen Intel(R) Core(TM) i7-12700
- GPU: Intel Alder Lake-S GT1 [UHD Graphics 770] (rev 0c)
- Monitor setup: single monitor (HDMI-A-1, 3840x2160@60, scale 1.5)
- Idle config (
~/.config/omarchy/shell.json):lock: 300,screensaver: 150(defaults)
View raw text
## What happened
Every time the screen unlocks after an idle lock (`hypridle` lock + DPMS wake), the omarchy-shell (Quickshell) process crashes and is immediately relaunched by its supervisor. It self-heals in about a second, so it shows up as a brief error/flash right as the system wakes, rather than a lasting freeze. Session security is not affected — `secure=true` holds throughout and unlock only completes via the real PAM prompt.
This is 100% reproducible on this machine: it happened on every single wake-from-idle-lock over the last 3 days of uptime (12+ occurrences checked in the journal), not an occasional fluke.
## Expected behavior
The shell should survive a wake-from-idle-lock without crashing/relaunching.
## Steps to reproduce
1. Let the screen idle-lock (`idle.lock` in `~/.config/omarchy/shell.json`, default 300s).
2. Wake the screen (move the mouse / press a key).
3. Watch `journalctl --user -f` (or just the screen) around the wake moment.
## Log excerpt (journalctl -b 0)
```
Aug 18 13:51:36.456103 omarchydesktop omarchy-shell[2797450]: DEBUG qml: omarchy idle 2026-08-18T11:51:36.456Z idle-monitor: active
Aug 18 13:51:38.357684 omarchydesktop omarchy-shell[2797450]: INFO qt.qpa.wayland: There are no outputs - creating placeholder screen
Aug 18 13:51:38.430386 omarchydesktop omarchy-shell[2797450]: DEBUG: Not creating lock surface for screen QScreen(0x7eff83c27970, name="") as it is not backed by a valid wayland output.
Aug 18 13:51:39.242525 omarchydesktop omarchy-shell[2797450]: INFO qt.qpa.wayland: There are no outputs - creating placeholder screen
Aug 18 13:51:40.224861 omarchydesktop uwsm_hyprland.desktop[2133]: error in client communication (pid 2797450)
Aug 18 13:51:40.304037 omarchydesktop omarchy-shell[2797450]: WARN quickshell.hyprland.ipc: Got removal for monitor "FALLBACK" which was not previously tracked.
Aug 18 13:51:40.367684 omarchydesktop omarchy-shell[2797450]: WARN: The Wayland connection experienced a fatal error: Invalid argument
Aug 18 13:51:40.440390 omarchydesktop omarchy-shell[2888127]: Omarchy shell exited with status 255; relaunching.
Aug 18 13:51:41.458452 omarchydesktop omarchy-shell[2888220]: INFO: Launching config: "/usr/share/omarchy/shell/shell.qml"
Aug 18 13:51:41.630341 omarchydesktop omarchy-shell[2888220]: WARN qt.qpa.services: Failed to register with host portal QDBusError("org.freedesktop.portal.Error.Failed", "Could not register app ID: Connection already associated with an application ID")
Aug 18 13:51:41.851609 omarchydesktop omarchy-shell[2888220]: DEBUG qml: omarchy lock 2026-08-18T11:51:41.852Z lock-stranded: recovering
```
Also seen separately from `xdg-desktop-portal-hyprland` around a wake at 08:15:
```
Aug 18 08:15:06 omarchydesktop xdg-desktop-portal-hyprland[2621]: [LOG] Found output name FALLBACK
```
(repeated 10x in the same second)
## My read on the cause
During the DPMS wake handshake, Hyprland briefly represents a transitional output as a placeholder monitor named `FALLBACK`. Quickshell's Hyprland-IPC layer receives a *removal* event for that monitor without ever having recorded it as *added*, which appears to desync its internal output/surface bookkeeping enough to trip a fatal Wayland protocol error (`Invalid argument`) and kill the whole shell client. The supervisor relaunches it immediately, and the lock state recovers (`lock-stranded: recovering`), but the crash-and-restart is visible on screen.
## System info
- Omarchy: 4.0.0-1
- Hyprland: 0.56.2 (v0.56.2, commit efb50993780079460b0cbed1363e2166a2de1d9f)
- quickshell-git: 0.3.0.r20.g28771c7-1
- Kernel: 7.1.8-arch1-3
- CPU: 12th Gen Intel(R) Core(TM) i7-12700
- GPU: Intel Alder Lake-S GT1 [UHD Graphics 770] (rev 0c)
- Monitor setup: single monitor (HDMI-A-1, 3840x2160@60, scale 1.5)
- Idle config (`~/.config/omarchy/shell.json`): `lock: 300`, `screensaver: 150` (defaults)
Validation
Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.
Linked
Not linked to any known issue, other report or change yet.
Decision
Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.
No decision has been recorded yet.