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

`omarchy setup security fingerprint` fails at enroll on readers libfprint can't drive (Validity VFS491, 138a:003d)

Reported by NianticBooks · filed Sep 8, 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 setup security fingerprint` fails at enroll on readers libfprint can't drive (Validity VFS491, 138a:003d)revision 1 · captured 2026-09-28 21:23 UTC via poll

What happened

omarchy setup security fingerprint cannot complete on a laptop whose fingerprint
reader is present on the USB bus but has no driver in libfprint at all. The
command's hardware gate passes, it proceeds to package install, and then dies at
the enroll step with a low-level D-Bus error that says nothing about the actual
cause:

Impossible to enroll: GDBus.Error:net.reactivated.Fprint.Error.NoSuchDevice: No devices available

The machine is an HP EliteBook 8470w with a Validity Sensors VFS491 (`138a:003d`)
swipe reader.

omarchy-hw-fingerprint returns 0 (reader present), because 138a is in
fingerprint_vendors and the device has no kernel driver bound to its interface —
exactly the vendor-ID heuristic the script documents. But stock libfprint 1.94.100
only carries Validity drivers for VFS0050, VFS101, VFS301, VFS5011 and VFS7552.
VFS491 is not among them, so fprintd enumerates zero devices and there is nothing
for fprintd-enroll to talk to.

omarchy-setup-security-fingerprint already anticipates this class of failure in a
comment:

Detection only proves a reader is there, not that libfprint can drive it — an Elan MOC sensor outside the elanmoc table gets this far and then fails to enroll.

That reasoning is used to justify deferring the PAM edits until after a successful
enroll and verify — which works correctly here, nothing in /etc/pam.d/ was touched.
But the same reasoning argues for failing before omarchy-pkg-add, with a message
that names the sensor.

Steps to reproduce

  1. Boot Omarchy on a machine with a libfprint-unsupported reader (here 138a:003d).
  2. Run omarchy setup security fingerprint.
  3. The sensor check passes — no "No fingerprint sensor detected." message.
  4. omarchy-pkg-add libfprint fprintd usbutils runs.
  5. Enrollment fails immediately with NoSuchDevice: No devices available.
  6. The script exits 1 after printing "Enrollment failed. Please try again." —

which is misleading advice, since retrying can never succeed.

Verified state on this machine:

$ omarchy-hw-fingerprint; echo $?
0

$ lsusb | grep 138a
Bus 004 Device 003: ID 138a:003d Validity Sensors, Inc. VFS491

$ systemctl start fprintd && fprintd-list $USER
No devices available

$ fprintd-enroll $USER
Impossible to enroll: GDBus.Error:net.reactivated.Fprint.Error.NoSuchDevice: No devices available

All three packages were already installed here, so step 4 was a no-op — the failure
is purely the enumeration gap, not a packaging problem.

What I expected

The command should detect that no libfprint-drivable device exists and abort before
installing anything, with a message naming the unsupported reader, e.g.:

Fingerprint reader 138a:003d (Validity VFS491) is not supported by libfprint.
No fingerprint device is available to enroll against.

Suggested fix

Gate on actual fprintd enumeration, not sysfs vendor-ID presence. After
omarchy-hw-fingerprint passes and packages are present, check that fprintd reports
at least one device before attempting enrollment:

if ! fprintd-list "$USER" &>/dev/null && \
   fprintd-list "$USER" 2>&1 | grep -q "No devices available"; then
  echo -e "\e[31mReader detected, but libfprint has no driver for it.\e[0m"
  lsusb | grep -iE "$(printf '%s|' $fingerprint_vendors)" >&2
  exit 1
fi

(Or query net.reactivated.Fprint.Manager.GetDevices over D-Bus directly, which
avoids parsing an error string.)

This would also turn the confusing failure in #10309 (EgisTec EH570) and #7006
(ThinkPad 06cb:009a) into a clear one, since both are the same shape: reader
present, libfprint unable to drive it.

No viable driver exists for this sensor

Noting this so the issue isn't triaged as "install the out-of-tree driver":

  • The only driver that lists 0x003d is the AUR libfprint-vfs_proprietary-git

(VALIDITY_PRODUCT_ID_491 = 0x003d in vfs_proprietary.h).
- It hard-depends on vfs495-daemon, which no longer exists in the AUR — the
package cannot be built.
- It is a libfprint 0.99.0 fork declaring conflicts=(libfprint). Installing it
would remove fprintd, which requires libfprint-2.so=2-64, defeating the purpose.

So on this hardware the correct outcome is a clean, early, informative failure —
which is what this issue asks for.

System details

Omarchy4.0.2-1
Kernel7.1.9-arch1-2
MachineHP EliteBook 8470w
CPUIntel Core i7-3630QM
GPUAMD Radeon HD 7550M/7570M/7650M (radeon)
Hyprland0.56.2
libfprint1.94.100-1
fprintd1.94.5-2
SensorValidity Sensors VFS491 138a:003d (bcdDevice 1.04, no iProduct string)

Related

  • #10309 — EgisTec EH570: detected, driver present but hangs during enroll.
  • #7006 — ThinkPad 06cb:009a: unsupported by libfprint, needs open-fprintd.
  • #10091 — Validity VFS5011: aborts before PAM when verify can't claim the reader.

Distinct from all three: here libfprint has no driver for the device whatsoever, so
fprintd enumerates zero devices — the cheapest possible case to detect up front.

View raw text
## What happened

`omarchy setup security fingerprint` cannot complete on a laptop whose fingerprint
reader is present on the USB bus but has **no driver in libfprint at all**. The
command's hardware gate passes, it proceeds to package install, and then dies at
the enroll step with a low-level D-Bus error that says nothing about the actual
cause:

```
Impossible to enroll: GDBus.Error:net.reactivated.Fprint.Error.NoSuchDevice: No devices available
```

The machine is an HP EliteBook 8470w with a **Validity Sensors VFS491 (`138a:003d`)**
swipe reader.

`omarchy-hw-fingerprint` returns 0 (reader present), because `138a` is in
`fingerprint_vendors` and the device has no kernel driver bound to its interface —
exactly the vendor-ID heuristic the script documents. But stock `libfprint 1.94.100`
only carries Validity drivers for VFS0050, VFS101, VFS301, VFS5011 and VFS7552.
VFS491 is not among them, so `fprintd` enumerates zero devices and there is nothing
for `fprintd-enroll` to talk to.

`omarchy-setup-security-fingerprint` already anticipates this class of failure in a
comment:

> Detection only proves a reader is there, not that libfprint can drive it — an Elan
> MOC sensor outside the elanmoc table gets this far and then fails to enroll.

That reasoning is used to justify deferring the PAM edits until after a successful
enroll and verify — which works correctly here, nothing in `/etc/pam.d/` was touched.
But the same reasoning argues for failing *before* `omarchy-pkg-add`, with a message
that names the sensor.

## Steps to reproduce

1. Boot Omarchy on a machine with a `libfprint`-unsupported reader (here `138a:003d`).
2. Run `omarchy setup security fingerprint`.
3. The sensor check passes — no "No fingerprint sensor detected." message.
4. `omarchy-pkg-add libfprint fprintd usbutils` runs.
5. Enrollment fails immediately with `NoSuchDevice: No devices available`.
6. The script exits 1 after printing "Enrollment failed. Please try again." —
   which is misleading advice, since retrying can never succeed.

Verified state on this machine:

```
$ omarchy-hw-fingerprint; echo $?
0

$ lsusb | grep 138a
Bus 004 Device 003: ID 138a:003d Validity Sensors, Inc. VFS491

$ systemctl start fprintd && fprintd-list $USER
No devices available

$ fprintd-enroll $USER
Impossible to enroll: GDBus.Error:net.reactivated.Fprint.Error.NoSuchDevice: No devices available
```

All three packages were already installed here, so step 4 was a no-op — the failure
is purely the enumeration gap, not a packaging problem.

## What I expected

The command should detect that no libfprint-drivable device exists and abort before
installing anything, with a message naming the unsupported reader, e.g.:

```
Fingerprint reader 138a:003d (Validity VFS491) is not supported by libfprint.
No fingerprint device is available to enroll against.
```

## Suggested fix

Gate on **actual fprintd enumeration**, not sysfs vendor-ID presence. After
`omarchy-hw-fingerprint` passes and packages are present, check that fprintd reports
at least one device before attempting enrollment:

```bash
if ! fprintd-list "$USER" &>/dev/null && \
   fprintd-list "$USER" 2>&1 | grep -q "No devices available"; then
  echo -e "\e[31mReader detected, but libfprint has no driver for it.\e[0m"
  lsusb | grep -iE "$(printf '%s|' $fingerprint_vendors)" >&2
  exit 1
fi
```

(Or query `net.reactivated.Fprint.Manager.GetDevices` over D-Bus directly, which
avoids parsing an error string.)

This would also turn the confusing failure in #10309 (EgisTec EH570) and #7006
(ThinkPad `06cb:009a`) into a clear one, since both are the same shape: reader
present, libfprint unable to drive it.

## No viable driver exists for this sensor

Noting this so the issue isn't triaged as "install the out-of-tree driver":

- The only driver that lists `0x003d` is the AUR `libfprint-vfs_proprietary-git`
  (`VALIDITY_PRODUCT_ID_491 = 0x003d` in `vfs_proprietary.h`).
- It hard-depends on `vfs495-daemon`, which **no longer exists in the AUR** — the
  package cannot be built.
- It is a `libfprint` **0.99.0** fork declaring `conflicts=(libfprint)`. Installing it
  would remove `fprintd`, which requires `libfprint-2.so=2-64`, defeating the purpose.

So on this hardware the correct outcome is a clean, early, informative failure —
which is what this issue asks for.

## System details

| | |
|---|---|
| Omarchy | 4.0.2-1 |
| Kernel | 7.1.9-arch1-2 |
| Machine | HP EliteBook 8470w |
| CPU | Intel Core i7-3630QM |
| GPU | AMD Radeon HD 7550M/7570M/7650M (radeon) |
| Hyprland | 0.56.2 |
| libfprint | 1.94.100-1 |
| fprintd | 1.94.5-2 |
| Sensor | Validity Sensors VFS491 `138a:003d` (bcdDevice 1.04, no iProduct string) |

## Related

- #10309 — EgisTec EH570: detected, driver present but hangs during enroll.
- #7006 — ThinkPad `06cb:009a`: unsupported by libfprint, needs open-fprintd.
- #10091 — Validity VFS5011: aborts before PAM when verify can't claim the reader.

Distinct from all three: here libfprint has no driver for the device whatsoever, so
fprintd enumerates zero devices — the cheapest possible case to detect up front.

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 11:15 UTC