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-4886GitHub issuePublicReceived

omarchy-windows-vm launch silently fails after VM restart due to setgid bit on shared-folder mount

Reported by KiloNiner · filed Sep 4, 2026Closed upstream on 2026-09-04 by its own reporter KiloNiner, as a duplicate of #9334 (R-1173). GitHub close reason: completed.

Received and recorded verbatim. Nothing has been checked yet.

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?
Not yet mapped to any requirement or component.
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?
Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. No decision has been recorded yet.

Original report

omarchy-windows-vm launch silently fails after VM restart due to setgid bit on shared-folder mountrevision 1 · captured 2026-10-04 12:10 UTC via poll

What happened

After stopping and relaunching the Windows VM, omarchy-windows-vm launch
fails with no useful information:

Starting Windows VM (this may prompt for authorization)...
❌ Failed to start Windows VM!
Try checking: omarchy-windows-vm status

omarchy-windows-vm status then reports "Windows VM container not found."
No further diagnostic output is produced anywhere (stdout, stderr, or the
journal) — pkexec authorization succeeds every time, so it isn't an
authorization problem.

Root cause

Two compounding issues in /usr/share/omarchy/bin/omarchy-windows-vm:

  1. The `dockurr/windows` container sets the setgid bit on `/shared` as

part of its own Samba-share setup on every start. Since /shared is bind
-mounted straight through to the user's real ~/Windows directory, that
bit lands on the host directory and persists after the container stops.

  1. **prepare_caller_mounts's mode-verification step has no diagnostic

output.** It chmod 0700s the pinned source directories and then requires
an exact string match against "700":

   chmod 0700 -- "/proc/$BASHPID/fd/$storage_fd" "/proc/$BASHPID/fd/$shared_fd" || {
     exec {storage_fd}<&-
     exec {shared_fd}<&-
     return 1
   }
   storage_mode=$(stat -Lc '%a' "/proc/$BASHPID/fd/$storage_fd" 2>/dev/null) || storage_mode=""
   shared_mode=$(stat -Lc '%a' "/proc/$BASHPID/fd/$shared_fd" 2>/dev/null) || shared_mode=""
   if [[ $storage_mode != 700 || $shared_mode != 700 ]]; then
     exec {storage_fd}<&-
     exec {shared_fd}<&-
     return 1
   fi

With the leftover setgid bit, stat -Lc '%a' reports 2700, which fails
this check — and unlike almost every other failure branch in this script,
this one has no echo before return 1, so the failure is completely
silent all the way up through launch_windows.

Separately (and worth checking on its own): a plain chmod 0700 ~/Windows
run directly on the path did not reliably clear the setgid bit in testing
here, while chmod g-s ~/Windows did — worth double-checking whether the
chmod call above against the /proc/$BASHPID/fd/N form actually clears
setgid reliably on directories.

Steps to reproduce

  1. omarchy-windows-vm install and let Windows finish installing.
  2. omarchy-windows-vm launch, confirm it connects, then close RDP (or run

omarchy-windows-vm stop) so the container stops.
3. stat -c '%a' ~/Windows — now shows 2700 instead of 700.
4. omarchy-windows-vm launch again — fails silently as above.

Expected

Either the script should strip the setgid bit itself before the check (since
that's exactly what the chmod 0700 step is meant to guarantee), or at
minimum the failure should print a specific, actionable message instead of
silently returning 1.

Workaround

chmod g-s ~/Windows before each launch restores it.

System info

  • omarchy version: 4.0.2-1

Filed by Claude Sonnet 5 via Claude Code.

View raw text
## What happened

After stopping and relaunching the Windows VM, `omarchy-windows-vm launch`
fails with no useful information:

    Starting Windows VM (this may prompt for authorization)...
    ❌ Failed to start Windows VM!
       Try checking: omarchy-windows-vm status

`omarchy-windows-vm status` then reports "Windows VM container not found."
No further diagnostic output is produced anywhere (stdout, stderr, or the
journal) — pkexec authorization succeeds every time, so it isn't an
authorization problem.

## Root cause

Two compounding issues in `/usr/share/omarchy/bin/omarchy-windows-vm`:

1. **The `dockurr/windows` container sets the setgid bit on `/shared`** as
   part of its own Samba-share setup on every start. Since `/shared` is bind
   -mounted straight through to the user's real `~/Windows` directory, that
   bit lands on the host directory and persists after the container stops.

2. **`prepare_caller_mounts`'s mode-verification step has no diagnostic
   output.** It `chmod 0700`s the pinned source directories and then requires
   an *exact* string match against `"700"`:

   ```bash
   chmod 0700 -- "/proc/$BASHPID/fd/$storage_fd" "/proc/$BASHPID/fd/$shared_fd" || {
     exec {storage_fd}<&-
     exec {shared_fd}<&-
     return 1
   }
   storage_mode=$(stat -Lc '%a' "/proc/$BASHPID/fd/$storage_fd" 2>/dev/null) || storage_mode=""
   shared_mode=$(stat -Lc '%a' "/proc/$BASHPID/fd/$shared_fd" 2>/dev/null) || shared_mode=""
   if [[ $storage_mode != 700 || $shared_mode != 700 ]]; then
     exec {storage_fd}<&-
     exec {shared_fd}<&-
     return 1
   fi
   ```

   With the leftover setgid bit, `stat -Lc '%a'` reports `2700`, which fails
   this check — and unlike almost every other failure branch in this script,
   this one has no `echo` before `return 1`, so the failure is completely
   silent all the way up through `launch_windows`.

   Separately (and worth checking on its own): a plain `chmod 0700 ~/Windows`
   run directly on the path did not reliably clear the setgid bit in testing
   here, while `chmod g-s ~/Windows` did — worth double-checking whether the
   `chmod` call above against the `/proc/$BASHPID/fd/N` form actually clears
   setgid reliably on directories.

## Steps to reproduce

1. `omarchy-windows-vm install` and let Windows finish installing.
2. `omarchy-windows-vm launch`, confirm it connects, then close RDP (or run
   `omarchy-windows-vm stop`) so the container stops.
3. `stat -c '%a' ~/Windows` — now shows `2700` instead of `700`.
4. `omarchy-windows-vm launch` again — fails silently as above.

## Expected

Either the script should strip the setgid bit itself before the check (since
that's exactly what the `chmod 0700` step is meant to guarantee), or at
minimum the failure should print a specific, actionable message instead of
silently returning 1.

## Workaround

`chmod g-s ~/Windows` before each `launch` restores it.

## System info

- `omarchy version`: 4.0.2-1

---
Filed by Claude Sonnet 5 via Claude Code.

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.

No decision has been recorded yet.