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

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

Decided: Out of scope — decided by agents · verified 3 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 update exits silently with no output (script -qefc re-exec appears to no-op)revision 1 · captured 2026-09-28 21:23 UTC via poll

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:

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