Summary
Fingerprint unlock works reliably on a manual lock, but reliably fails after suspend/resume. cosmic-greeter opens one fprintd verify session when the lock screen appears; if that session dies (e.g. because the reader USB-disconnects during resume), cosmic-greeter never retries it, leaving fingerprint dead until the screen is locked again.
Hardware
- Lenovo ThinkPad X1 Carbon 7th Gen (20QD001UUS)
- Synaptics Prometheus MIS Touch Fingerprint Reader (06cb:00bd)
- Pop!_OS 24.04, COSMIC, cosmic-greeter 0.1.0~1788969713
Repro
- Lock the screen (fingerprint works fine here).
- Suspend (deep/S3) and resume.
- Try fingerprint on the lock screen — no response, no error shown to user, falls back to password only.
Root cause (from journalctl)
On every resume, the xHC controller needs a reinit, which briefly drops the fingerprint reader off the USB bus:
kernel: xhci_hcd 0000:2d:00.0: xHC error in resume, USBSTS 0x401, Reinit
This kills the verify session cosmic-greeter opened before suspend:
fprintd[...]: Device reported an error during verify: device was disconnected
cosmic-greeter[...]: pam_fprintd(cosmic-greeter:auth): ReleaseDevice failed: Release failed with error: This device has been removed from the system.
The device re-enumerates successfully within ~1s (lsusb shows it back immediately), and restarting fprintd.service alone does not help, since cosmic-greeter doesn't open a new verify session — it just silently has no working fingerprint prompt until the next fresh lock.
Expected behavior
cosmic-greeter should retry/reopen the fprintd verify session if it errors out (at least once), rather than leaving fingerprint dead for the rest of that lock-screen instance.
Workaround
Lock the screen again (without suspending) after waking — that opens a fresh verify session against the now-stable device and works immediately.
Summary
Fingerprint unlock works reliably on a manual lock, but reliably fails after suspend/resume. cosmic-greeter opens one fprintd verify session when the lock screen appears; if that session dies (e.g. because the reader USB-disconnects during resume), cosmic-greeter never retries it, leaving fingerprint dead until the screen is locked again.
Hardware
Repro
Root cause (from journalctl)
On every resume, the xHC controller needs a reinit, which briefly drops the fingerprint reader off the USB bus:
This kills the verify session cosmic-greeter opened before suspend:
The device re-enumerates successfully within ~1s (
lsusbshows it back immediately), and restartingfprintd.servicealone does not help, since cosmic-greeter doesn't open a new verify session — it just silently has no working fingerprint prompt until the next fresh lock.Expected behavior
cosmic-greeter should retry/reopen the fprintd verify session if it errors out (at least once), rather than leaving fingerprint dead for the rest of that lock-screen instance.
Workaround
Lock the screen again (without suspending) after waking — that opens a fresh verify session against the now-stable device and works immediately.