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.
After omarchy update + reboot: 'failed to get hyprland version string (bad json)' — NVIDIA initramfs migration may break boot
Reported by mayounderrated · filed Aug 26, 2026 · open at source
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
Problem
After running omarchy update (no apparent errors during the update) and rebooting, running start-hyprland from TTY fails with:
failed to get hyprland version string (bad json)Hyprland does not start. The system must be restored via snapper to recover.
Environment
- Omarchy: 4.0.0-1
- Hyprland: 0.56.0 (before update), updated to 0.56.2 during the failed update
- GPU: NVIDIA RTX 4060 Max-Q (AD107M), driver 610.57.04
- Laptop: Acer Nitro ANV15-51
- Bootloader: Limine
- Initramfs: mkinitcpio with Limine hooks
Analysis
The error comes from /usr/bin/start-hyprland — the Hyprland watchdog binary. After launching Hyprland, it calls hyprctl version -j and parses the JSON output. If Hyprland failed to start (IPC socket not ready), hyprctl returns an error, and the watchdog reports "bad json".
Suspected root cause: Migration 1786605598.sh runs sudo limine-mkinitcpio to rebuild initramfs (removes nouveau GSP firmware on proprietary NVIDIA systems). If this rebuild produces a broken initramfs — for example, if the nvidia kernel modules are not properly included, or the kms hook removal interacts badly with the NVIDIA driver setup — then after reboot:
- NVIDIA driver fails to load (or loads without proper modesetting)
- Hyprland cannot start (needs working GPU/rendering)
- Watchdog gets no valid response from
hyprctl version -j - Reports "failed to get hyprland version string (bad json)"
I did not capture boot logs from the failed state (restored via snapper before investigating), so this is a hypothesis based on the migration code and the error behavior.
Secondary issue: stale start-hyprland binary
/usr/local/bin/start-hyprland exists (built by hyprpm, 323KB unstripped) and shadows the correct /usr/bin/start-hyprland (289KB, from pacman) in PATH. The desktop entry uses the absolute path /usr/bin/start-hyprland so SDDM login is unaffected, but bare start-hyprland from TTY would use the stale version.
This may also contribute to version mismatch issues if hyprpm rebuilt the binary against newer headers while the system package is different.
Steps to reproduce
- Have an NVIDIA system (RTX 4060) with proprietary driver and Limine bootloader
- Run
omarchy update - Reboot
- Try
start-hyprlandfrom TTY
What I expect
omarchy update should either:
- Ensure the initramfs rebuild is reliable on NVIDIA + Limine systems, or
- Skip the migration and warn the user if the rebuild might fail, or
- Provide a fallback path if Hyprland fails to start after the rebuild
Logs
No logs from the failed boot are available (restored via snapper). If I reproduce this again, I will capture journalctl -b -1 output before restoring.
View raw text
## Problem After running `omarchy update` (no apparent errors during the update) and rebooting, running `start-hyprland` from TTY fails with: ``` failed to get hyprland version string (bad json) ``` Hyprland does not start. The system must be restored via snapper to recover. ## Environment - **Omarchy:** 4.0.0-1 - **Hyprland:** 0.56.0 (before update), updated to 0.56.2 during the failed update - **GPU:** NVIDIA RTX 4060 Max-Q (AD107M), driver 610.57.04 - **Laptop:** Acer Nitro ANV15-51 - **Bootloader:** Limine - **Initramfs:** mkinitcpio with Limine hooks ## Analysis The error comes from `/usr/bin/start-hyprland` — the Hyprland watchdog binary. After launching Hyprland, it calls `hyprctl version -j` and parses the JSON output. If Hyprland failed to start (IPC socket not ready), `hyprctl` returns an error, and the watchdog reports "bad json". **Suspected root cause:** Migration `1786605598.sh` runs `sudo limine-mkinitcpio` to rebuild initramfs (removes nouveau GSP firmware on proprietary NVIDIA systems). If this rebuild produces a broken initramfs — for example, if the nvidia kernel modules are not properly included, or the kms hook removal interacts badly with the NVIDIA driver setup — then after reboot: 1. NVIDIA driver fails to load (or loads without proper modesetting) 2. Hyprland cannot start (needs working GPU/rendering) 3. Watchdog gets no valid response from `hyprctl version -j` 4. Reports "failed to get hyprland version string (bad json)" I did not capture boot logs from the failed state (restored via snapper before investigating), so this is a hypothesis based on the migration code and the error behavior. ## Secondary issue: stale `start-hyprland` binary `/usr/local/bin/start-hyprland` exists (built by `hyprpm`, 323KB unstripped) and shadows the correct `/usr/bin/start-hyprland` (289KB, from pacman) in PATH. The desktop entry uses the absolute path `/usr/bin/start-hyprland` so SDDM login is unaffected, but bare `start-hyprland` from TTY would use the stale version. This may also contribute to version mismatch issues if `hyprpm` rebuilt the binary against newer headers while the system package is different. ## Steps to reproduce 1. Have an NVIDIA system (RTX 4060) with proprietary driver and Limine bootloader 2. Run `omarchy update` 3. Reboot 4. Try `start-hyprland` from TTY ## What I expect `omarchy update` should either: - Ensure the initramfs rebuild is reliable on NVIDIA + Limine systems, or - Skip the migration and warn the user if the rebuild might fail, or - Provide a fallback path if Hyprland fails to start after the rebuild ## Logs No logs from the failed boot are available (restored via snapper). If I reproduce this again, I will capture `journalctl -b -1` output before restoring.
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:11 UTC