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.
Shell lock client dies on resume from suspend, showing Hyprland 'screensaver died' failsafe
Reported by MartinNielsen · filed Aug 30, 2026 · open at source
R-1659 is the earliest report of this defect — filed Aug 19, 2026, open upstream. This report (filed Aug 30, 2026) describes the same defect, so it is folded under it in the inbox. It was marked as a duplicate of R-709, which is itself a duplicate of R-1659.
Decided by agents · verified· Oct 8, 2026
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?
- 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?
- Decided by agents and verified by a second, independent agent — see the decision.
Original report
Summary
When the system resumes from suspend while the Omarchy shell holds the session lock (auto-lock after idle), the shell's Wayland connection dies with a protocol error. The lock client disappears while the session is still locked, so Hyprland shows its crashed-lockscreen failsafe ("Oops, looks like your screensaver died..."). The launcher then relaunches the shell, which re-acquires the lock and the user must unlock. Intermittent but recurring on every suspend cycle.
Expected behavior
The shell should survive resume from suspend without dropping its session-lock connection (or the lock state should be handled gracefully), so a resume never lands the user on Hyprland's failsafe screen.
What happens
Journal excerpt from the most recent occurrence (2026-08-30):
13:32:14 systemd[1]: Finished System Suspend.
13:32:14 systemd[1]: Starting NVIDIA system resume actions... # hybrid NVIDIA laptop
13:32:16 systemd[890]: Started Lock Omarchy before suspend.
13:32:20 omarchy-shell[1089]: There are no outputs - creating placeholder screen
13:32:20 omarchy-shell[1089]: DEBUG: Not creating lock surface for screen QScreen(...) as it is not backed by a valid wayland output.
13:32:20 omarchy-shell[1089]: WARN: Layershell screen does not correspond to a real screen. Letting the compositor pick.
13:32:21 omarchy-shell[1089]: WARN quickshell.hyprland.ipc: Got removal for monitor "FALLBACK" which was not previously tracked.
13:32:21 uwsm_hyprland.desktop[1021]: error in client communication (pid 1089)
13:32:21 omarchy-shell[1089]: WARN: The Wayland connection experienced a fatal error: Invalid argument
13:32:22 omarchy-shell[62182]: Omarchy shell exited with status 255; relaunching.
13:32:23 omarchy-shell[62309]: INFO: Launching config: "/usr/share/omarchy/shell/shell.qml"
13:32:23 omarchy-shell[62309]: DEBUG qml: omarchy lock ... lock-stranded: recovering
13:32:23 omarchy-shell[62309]: DEBUG qml: omarchy lock ... lock-requested
13:32:24 omarchy-shell[62309]: DEBUG qml: omarchy lock ... secure=true
13:32:48 omarchy-shell[62309]: DEBUG qml: omarchy lock ... unlocked # after user authSame pattern on a previous resume (2026-08-29 17:44:18 Finished System Suspend → 17:44:23 error in client communication (pid 1097) → Wayland connection experienced a fatal error: Invalid argument). Other resumes (e.g. 06:45, 13:30, 13:31) did not crash, so it is intermittent.
Likely trigger: the shell presents/reconfigures its lock surfaces (org.omarchy.screensaver, ext-session-lock) while Hyprland is still rebuilding outputs after resume (FALLBACK monitor, "no outputs", invalid wayland output warnings), and the compositor kills the connection during that window. omarchy-launch-shell already documents and supervises exactly this failure mode ("Qt leaves through _exit() when the Wayland connection fails ... no crash report, no relaunch, no bar") — it recovers, but the recovery path surfaces Hyprland's failsafe on screen and leaves the session locked, requiring re-authentication.
Steps to reproduce (intermittent)
- Hybrid NVIDIA (optimus) laptop, e.g. Dell XPS 9570 class.
- Let the system auto-lock (
idle.lock) or lock, then suspend. - Resume the system.
- Sometimes: Hyprland failsafe "Oops, screensaver died" screen; shell relaunches; re-type password.
System details
- Omarchy version: 4.0.1-1
- Hyprland: 0.56.2 (commit efb50993780079460b0cbed1363e2166a2de1d9f)
- Kernel: 7.1.9-arch1-2
- GPU: Intel HD 630 (Kaby Lake-H) + NVIDIA GTX 1050 Mobile (hybrid,
nvidia-resume.serviceruns on resume) - Shell: quickshell via
omarchy-launch-shell(systemd-cat tagomarchy-shell)
View raw text
## Summary
When the system resumes from suspend while the Omarchy shell holds the session lock (auto-lock after idle), the shell's Wayland connection dies with a protocol error. The lock client disappears while the session is still locked, so Hyprland shows its crashed-lockscreen failsafe ("Oops, looks like your screensaver died..."). The launcher then relaunches the shell, which re-acquires the lock and the user must unlock. Intermittent but recurring on every suspend cycle.
## Expected behavior
The shell should survive resume from suspend without dropping its session-lock connection (or the lock state should be handled gracefully), so a resume never lands the user on Hyprland's failsafe screen.
## What happens
Journal excerpt from the most recent occurrence (2026-08-30):
```
13:32:14 systemd[1]: Finished System Suspend.
13:32:14 systemd[1]: Starting NVIDIA system resume actions... # hybrid NVIDIA laptop
13:32:16 systemd[890]: Started Lock Omarchy before suspend.
13:32:20 omarchy-shell[1089]: There are no outputs - creating placeholder screen
13:32:20 omarchy-shell[1089]: DEBUG: Not creating lock surface for screen QScreen(...) as it is not backed by a valid wayland output.
13:32:20 omarchy-shell[1089]: WARN: Layershell screen does not correspond to a real screen. Letting the compositor pick.
13:32:21 omarchy-shell[1089]: WARN quickshell.hyprland.ipc: Got removal for monitor "FALLBACK" which was not previously tracked.
13:32:21 uwsm_hyprland.desktop[1021]: error in client communication (pid 1089)
13:32:21 omarchy-shell[1089]: WARN: The Wayland connection experienced a fatal error: Invalid argument
13:32:22 omarchy-shell[62182]: Omarchy shell exited with status 255; relaunching.
13:32:23 omarchy-shell[62309]: INFO: Launching config: "/usr/share/omarchy/shell/shell.qml"
13:32:23 omarchy-shell[62309]: DEBUG qml: omarchy lock ... lock-stranded: recovering
13:32:23 omarchy-shell[62309]: DEBUG qml: omarchy lock ... lock-requested
13:32:24 omarchy-shell[62309]: DEBUG qml: omarchy lock ... secure=true
13:32:48 omarchy-shell[62309]: DEBUG qml: omarchy lock ... unlocked # after user auth
```
Same pattern on a previous resume (2026-08-29 17:44:18 `Finished System Suspend` → 17:44:23 `error in client communication (pid 1097)` → `Wayland connection experienced a fatal error: Invalid argument`). Other resumes (e.g. 06:45, 13:30, 13:31) did not crash, so it is intermittent.
Likely trigger: the shell presents/reconfigures its lock surfaces (`org.omarchy.screensaver`, ext-session-lock) while Hyprland is still rebuilding outputs after resume (`FALLBACK` monitor, "no outputs", invalid wayland output warnings), and the compositor kills the connection during that window. `omarchy-launch-shell` already documents and supervises exactly this failure mode ("Qt leaves through _exit() when the Wayland connection fails ... no crash report, no relaunch, no bar") — it recovers, but the recovery path surfaces Hyprland's failsafe on screen and leaves the session locked, requiring re-authentication.
## Steps to reproduce (intermittent)
1. Hybrid NVIDIA (optimus) laptop, e.g. Dell XPS 9570 class.
2. Let the system auto-lock (`idle.lock`) or lock, then suspend.
3. Resume the system.
4. Sometimes: Hyprland failsafe "Oops, screensaver died" screen; shell relaunches; re-type password.
## System details
- Omarchy version: 4.0.1-1
- Hyprland: 0.56.2 (commit efb50993780079460b0cbed1363e2166a2de1d9f)
- Kernel: 7.1.9-arch1-2
- GPU: Intel HD 630 (Kaby Lake-H) + NVIDIA GTX 1050 Mobile (hybrid, `nvidia-resume.service` runs on resume)
- Shell: quickshell via `omarchy-launch-shell` (systemd-cat tag `omarchy-shell`)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
- Duplicate ofR-709omarchy-shell crashes (exit 255) on resume when FALLBACK monitor is removed, briefly showing Hyprland's lock-crashed screen· decided by agents · verified
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.