Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

A 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.

Inbox
ReportR-1396GitHub issuePublicDecided· Out of scope

Omarchy shell stays alive but stops rendering after resume-time EGL_BAD_CONTEXT

Reported by Marlos001 · filed Aug 27, 2026 · open at source

Decided: Out of scope — decided by agents · verified 4 days ago.

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?
AreaOutside the audited area· Decided by agents · verified
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

Omarchy shell stays alive but stops rendering after resume-time EGL_BAD_CONTEXTrevision 1 · captured 2026-09-28 21:24 UTC via poll

System details

ASUS ROG Zephyrus G14 GA402XV, AMD Ryzen 9 7940HS, NVIDIA RTX 4060 Mobile in ASUS MUX dGPU mode, Omarchy 4.0.1-1, Quickshell 0.3.1-1, Qt 6.11.2, Hyprland 0.56.2, Linux 7.1.9, NVIDIA 610.57.04

What's wrong?

After resume, omarchy-shell sometimes loses its EGL context and never renders another frame. The process remains alive and answers system activity, but the bar stays on a stale frame until omarchy restart shell replaces the process.

On Aug 26, the kernel logged PM: suspend exit at 12:21:16. At 12:22:14, PID 2287 logged:

QRhiGles2: Context is lost.
Graphics device lost, cleaning up scenegraph and releasing RHIs
QWaylandGLContext::makeCurrent: eglError: 0x3006
QRhiGles2: Failed to make context current. Expect bad things to happen.
Failed to start frame

It then logged 3,149 matching context/frame failures through 22:10:44. There was no Quickshell coredump. Running omarchy restart shell replaced PID 2287 with PID 1998087; the new process has logged zero matching render errors and the bar works again.

This has happened after resume on four dates in the retained journal:

2026-08-19: suspend exit 12:40:54, context lost 12:41:06, 2 warnings, recovered
2026-08-21: suspend exit 15:36:52, context lost 15:37:20, 3,371 failures through Aug 22 until shell restart
2026-08-25: suspend exit 07:25:19, context lost 07:25:31, 2 warnings, recovered
2026-08-26: suspend exit 12:21:16, context lost 12:22:14, 3,149 failures until shell restart

So the graphics context loss is intermittent, but a failed recovery leaves the shell permanently stale. Two of the four recorded events recovered; two required a restart.

Expected behavior: Qt/Quickshell recovers the scene graph, or the Omarchy shell supervisor detects repeated unrecoverable context failures and restarts the shell.

Actual behavior: the shell stays alive indefinitely while every attempted frame fails.

Steps that have produced it on this machine:

  1. Suspend with the Omarchy shell and lock screen active.
  2. Resume and unlock.
  3. Intermittently, the bar is visible but frozen.
  4. Confirm with journalctl --user -b SYSLOG_IDENTIFIER=omarchy-shell | grep -E 'Context is lost|Failed to make context current|Failed to start frame'.
  5. omarchy restart shell restores the bar immediately.

The low-level context loss may belong to Qt, Quickshell, or NVIDIA. The Omarchy-specific failure is that its long-running shell remains in a permanently non-rendering state instead of self-recovering.

This differs from #4891 because Hyprland and other windows remained usable, and from #8453 because this is persistent EGL_BAD_CONTEXT with a live process rather than EGL_BAD_ALLOC followed by a crash loop.

Built-in omarchy debug --no-sudo log, uploaded after removing unrelated network identifiers: https://logs.omarchy.org/qnC9gl

The debug-log link expires after 24 hours; the durable failure signature and timeline are included above.

View raw text
### System details

ASUS ROG Zephyrus G14 GA402XV, AMD Ryzen 9 7940HS, NVIDIA RTX 4060 Mobile in ASUS MUX dGPU mode, Omarchy 4.0.1-1, Quickshell 0.3.1-1, Qt 6.11.2, Hyprland 0.56.2, Linux 7.1.9, NVIDIA 610.57.04

### What's wrong?

After resume, `omarchy-shell` sometimes loses its EGL context and never renders another frame. The process remains alive and answers system activity, but the bar stays on a stale frame until `omarchy restart shell` replaces the process.

On Aug 26, the kernel logged `PM: suspend exit` at 12:21:16. At 12:22:14, PID 2287 logged:

```text
QRhiGles2: Context is lost.
Graphics device lost, cleaning up scenegraph and releasing RHIs
QWaylandGLContext::makeCurrent: eglError: 0x3006
QRhiGles2: Failed to make context current. Expect bad things to happen.
Failed to start frame
```

It then logged 3,149 matching context/frame failures through 22:10:44. There was no Quickshell coredump. Running `omarchy restart shell` replaced PID 2287 with PID 1998087; the new process has logged zero matching render errors and the bar works again.

This has happened after resume on four dates in the retained journal:

```text
2026-08-19: suspend exit 12:40:54, context lost 12:41:06, 2 warnings, recovered
2026-08-21: suspend exit 15:36:52, context lost 15:37:20, 3,371 failures through Aug 22 until shell restart
2026-08-25: suspend exit 07:25:19, context lost 07:25:31, 2 warnings, recovered
2026-08-26: suspend exit 12:21:16, context lost 12:22:14, 3,149 failures until shell restart
```

So the graphics context loss is intermittent, but a failed recovery leaves the shell permanently stale. Two of the four recorded events recovered; two required a restart.

Expected behavior: Qt/Quickshell recovers the scene graph, or the Omarchy shell supervisor detects repeated unrecoverable context failures and restarts the shell.

Actual behavior: the shell stays alive indefinitely while every attempted frame fails.

Steps that have produced it on this machine:

1. Suspend with the Omarchy shell and lock screen active.
2. Resume and unlock.
3. Intermittently, the bar is visible but frozen.
4. Confirm with `journalctl --user -b SYSLOG_IDENTIFIER=omarchy-shell | grep -E 'Context is lost|Failed to make context current|Failed to start frame'`.
5. `omarchy restart shell` restores the bar immediately.

The low-level context loss may belong to Qt, Quickshell, or NVIDIA. The Omarchy-specific failure is that its long-running shell remains in a permanently non-rendering state instead of self-recovering.

This differs from #4891 because Hyprland and other windows remained usable, and from #8453 because this is persistent `EGL_BAD_CONTEXT` with a live process rather than `EGL_BAD_ALLOC` followed by a crash loop.

Built-in `omarchy debug --no-sudo` log, uploaded after removing unrelated network identifiers: https://logs.omarchy.org/qnC9gl

The debug-log link expires after 24 hours; the durable failure signature and timeline are included above.

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.

  • Out of scopeDecided by agents · verified · 2026-10-09 09:22 UTC