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-1441GitHub issuePublicDecided· Out of scope

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

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

After omarchy update + reboot: 'failed to get hyprland version string (bad json)' — NVIDIA initramfs migration may break bootrevision 1 · captured 2026-09-28 21:24 UTC via poll

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.

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