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

Migration silently ignores failed systemd-resolved restart, breaking DNS

Reported by BrettKulp · 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

Migration silently ignores failed systemd-resolved restart, breaking DNSrevision 1 · captured 2026-09-28 21:24 UTC via poll

System details

  • Hardware: Intel T2 Mac (MacBookPro), Watanare T2 kernel (linux-t2 6.19.11-arch1-Watanare-T2-2-t2)
  • Filesystem: ext4 root on NVMe (/dev/nvme0n1p3)
  • Upgrade path: Omarchy 3.8.5 → 4.0.1 (omarchy upgrade to quattro)
  • Boot: rEFInd/GRUB (stale), transitioned to Limine during upgrade

What happened

During the quattro upgrade, DNS completely broke mid-pipeline — pacman could not resolve any Omarchy mirrors:

:: Checking for remaining system package updates
error: failed retrieving file 'core.db' from stable-mirror.omarchy.org : Could not resolve host: stable-mirror.omarchy.org
error: failed retrieving file 'extra.db' from stable-mirror.omarchy.org : Could not resolve host: stable-mirror.omarchy.org
error: failed to synchronize all databases (failed to retrieve some files)

Upgrade incomplete - do NOT reboot.

At the time of failure, /etc/resolv.conf was a symlink to /run/systemd/resolve/stub-resolv.conf (the standard quattro layout), but systemd-resolved was inactive — meaning the symlink target did not exist and all DNS resolution was broken.

Root cause

Migration 1782002156 (/usr/share/omarchy/migrations/1782002156.sh) explicitly restarts systemd-resolved twice (lines 58 and 88):

as_root systemctl restart systemd-resolved.service >/dev/null 2>&1 || true

The || true means if the restart fails for any reason, the failure is silently swallowed and the pipeline continues. On this system the restart failed silently, leaving resolved inactive for all subsequent steps — including the pacman database sync that follows.

Fix

sudo systemctl enable --now systemd-resolved

This restored DNS immediately and allowed the remaining upgrade steps to complete.

Why the restart likely failed

This T2 Mac had several non-standard conditions during the upgrade:
1. The root filesystem is ext4, not btrfs — the snapper snapshot steps failed and were manually skipped (related: #6683)
2. The EFI partition was never mounted and had no fstab entry — had to be mounted manually mid-upgrade

Any of these could have caused the systemctl restart to fail silently.

Suggestion

The || true on the resolved restart makes debugging impossible when it fails. Consider either:
- Checking resolved status after the restart and failing loudly if it did not come back up
- Or at minimum logging a warning when the restart returns non-zero

Recreation

Probably not possible to reliably recreate — it depends on the resolved restart failing silently, which is environment-dependent. A standard install on stable wired/Wi-Fi with btrfs would likely never hit this.

View raw text
## System details

- **Hardware:** Intel T2 Mac (MacBookPro), Watanare T2 kernel (`linux-t2 6.19.11-arch1-Watanare-T2-2-t2`)
- **Filesystem:** ext4 root on NVMe (`/dev/nvme0n1p3`)
- **Upgrade path:** Omarchy 3.8.5 → 4.0.1 (`omarchy upgrade to quattro`)
- **Boot:** rEFInd/GRUB (stale), transitioned to Limine during upgrade

## What happened

During the quattro upgrade, DNS completely broke mid-pipeline — pacman could not resolve any Omarchy mirrors:

```
:: Checking for remaining system package updates
error: failed retrieving file 'core.db' from stable-mirror.omarchy.org : Could not resolve host: stable-mirror.omarchy.org
error: failed retrieving file 'extra.db' from stable-mirror.omarchy.org : Could not resolve host: stable-mirror.omarchy.org
error: failed to synchronize all databases (failed to retrieve some files)

Upgrade incomplete - do NOT reboot.
```

At the time of failure, `/etc/resolv.conf` was a symlink to `/run/systemd/resolve/stub-resolv.conf` (the standard quattro layout), but `systemd-resolved` was **inactive** — meaning the symlink target did not exist and all DNS resolution was broken.

## Root cause

Migration 1782002156 (`/usr/share/omarchy/migrations/1782002156.sh`) explicitly restarts `systemd-resolved` twice (lines 58 and 88):

```bash
as_root systemctl restart systemd-resolved.service >/dev/null 2>&1 || true
```

The `|| true` means if the restart fails for any reason, the failure is silently swallowed and the pipeline continues. On this system the restart failed silently, leaving resolved inactive for all subsequent steps — including the pacman database sync that follows.

## Fix

```bash
sudo systemctl enable --now systemd-resolved
```

This restored DNS immediately and allowed the remaining upgrade steps to complete.

## Why the restart likely failed

This T2 Mac had several non-standard conditions during the upgrade:
1. The root filesystem is **ext4**, not btrfs — the snapper snapshot steps failed and were manually skipped (related: #6683)
2. The EFI partition was never mounted and had no fstab entry — had to be mounted manually mid-upgrade

Any of these could have caused the `systemctl restart` to fail silently.

## Suggestion

The `|| true` on the resolved restart makes debugging impossible when it fails. Consider either:
- Checking resolved status after the restart and failing loudly if it did not come back up
- Or at minimum logging a warning when the restart returns non-zero

## Recreation

Probably not possible to reliably recreate — it depends on the resolved restart failing silently, which is environment-dependent. A standard install on stable wired/Wi-Fi with btrfs would likely never hit this.

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:21 UTC