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.
omarchy update exits silently with no output (script -qefc re-exec appears to no-op)
Reported by kostadinoff · filed Sep 13, 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
Summary
omarchy update (and omarchy update -y) exits silently and immediately with status 0, doing nothing — no free-space check output, no confirmation prompt, no package sync, and no /tmp/omarchy-update.log file is ever created. This happens even with -y, which bypasses the interactive gum confirm step entirely, so it isn't a TUI/terminal-capability issue with gum.
Reproduced on two separate machines.
Environment
- Omarchy: 4.0.3-1
- util-linux
script: 2.42.3 - Kernel: 7.2.3-arch1-3
- Reproduced both inside a
herdr(0.9.0) pane and in a plain terminal outside herdr — same result in both, so herdr is not the cause.
Steps to reproduce
omarchy updateor
omarchy update -yExpected
Either the confirmation prompt (without -y) or, with -y, the update proceeding straight to free-space check, package cache pruning, snapshot creation, pacman -Syu, etc. — as documented in /usr/bin/omarchy-update.
Actual
The shell prompt returns immediately with exit code 0. No output at all. No /tmp/omarchy-update.log is created, even though /usr/bin/omarchy-update unconditionally re-execs itself through:
if [[ -z ${OMARCHY_UPDATE_LOGGED:-} ]]; then
script_command=$(printf '%q ' "$0" "$@")
exec env OMARCHY_UPDATE_LOGGED=1 script -qefc "$script_command" "/tmp/omarchy-update.log"
fibefore doing anything else. Since script normally creates/opens its log file immediately on start (verified independently — a plain script -qefc 'echo hi' /tmp/test.log works fine and produces the log), the fact that no log file appears at all suggests this script re-exec is failing or no-oping silently rather than anything later in the update logic being at fault.
Workaround
Setting OMARCHY_UPDATE_LOGGED=1 manually skips the script-wrapping block entirely and the update runs correctly, with full output (confirmation prompt, free-space check, pruning, snapshot, pacman -Syu, AUR builds, etc.):
OMARCHY_UPDATE_LOGGED=1 omarchy update -yThis strongly points to the script -qefc ... /tmp/omarchy-update.log re-exec itself as the broken step, rather than anything downstream in the update logic.
Diagnostics already ruled out
- Not a stale update lock (
omarchy-update-lock heldreturns false; no lock file present). - Not a leaked
OMARCHY_UPDATE_LOGGED/OMARCHY_UPDATE_LOCK_FDenv var (checked, absent). - Not disk space (
omarchy-update-requires-free-spacelogic checked, well above the 10 GiB threshold). - Not
gum/TUI-related, sinceomarchy update -ybypassesgum confirmentirely and still fails identically. - Not specific to the
herdrterminal multiplexer — reproduced in a plain terminal outside it too. scriptitself works fine for trivial commands (script -qefc 'echo hi' /tmp/test.log) run directly, on the same machine.
View raw text
## Summary
`omarchy update` (and `omarchy update -y`) exits silently and immediately with status 0, doing nothing — no free-space check output, no confirmation prompt, no package sync, and no `/tmp/omarchy-update.log` file is ever created. This happens even with `-y`, which bypasses the interactive `gum confirm` step entirely, so it isn't a TUI/terminal-capability issue with `gum`.
Reproduced on two separate machines.
## Environment
- Omarchy: 4.0.3-1
- util-linux `script`: 2.42.3
- Kernel: 7.2.3-arch1-3
- Reproduced both inside a `herdr` (0.9.0) pane and in a plain terminal outside herdr — same result in both, so herdr is not the cause.
## Steps to reproduce
```
omarchy update
```
or
```
omarchy update -y
```
## Expected
Either the confirmation prompt (without `-y`) or, with `-y`, the update proceeding straight to free-space check, package cache pruning, snapshot creation, `pacman -Syu`, etc. — as documented in `/usr/bin/omarchy-update`.
## Actual
The shell prompt returns immediately with exit code 0. No output at all. No `/tmp/omarchy-update.log` is created, even though `/usr/bin/omarchy-update` unconditionally re-execs itself through:
```bash
if [[ -z ${OMARCHY_UPDATE_LOGGED:-} ]]; then
script_command=$(printf '%q ' "$0" "$@")
exec env OMARCHY_UPDATE_LOGGED=1 script -qefc "$script_command" "/tmp/omarchy-update.log"
fi
```
before doing anything else. Since `script` normally creates/opens its log file immediately on start (verified independently — a plain `script -qefc 'echo hi' /tmp/test.log` works fine and produces the log), the fact that no log file appears at all suggests this `script` re-exec is failing or no-oping silently rather than anything later in the update logic being at fault.
## Workaround
Setting `OMARCHY_UPDATE_LOGGED=1` manually skips the `script`-wrapping block entirely and the update runs correctly, with full output (confirmation prompt, free-space check, pruning, snapshot, `pacman -Syu`, AUR builds, etc.):
```
OMARCHY_UPDATE_LOGGED=1 omarchy update -y
```
This strongly points to the `script -qefc ... /tmp/omarchy-update.log` re-exec itself as the broken step, rather than anything downstream in the update logic.
## Diagnostics already ruled out
- Not a stale update lock (`omarchy-update-lock held` returns false; no lock file present).
- Not a leaked `OMARCHY_UPDATE_LOGGED`/`OMARCHY_UPDATE_LOCK_FD` env var (checked, absent).
- Not disk space (`omarchy-update-requires-free-space` logic checked, well above the 10 GiB threshold).
- Not `gum`/TUI-related, since `omarchy update -y` bypasses `gum confirm` entirely and still fails identically.
- Not specific to the `herdr` terminal multiplexer — reproduced in a plain terminal outside it too.
- `script` itself works fine for trivial commands (`script -qefc 'echo hi' /tmp/test.log`) run directly, on the same machine.
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
- Related PRpr/14601· confirmed
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 12:32 UTC