Skip to content

Fingerprint verify session not retried after suspend/resume disconnects the reader #538

Description

@ShaneBreazeale

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

  1. Lock the screen (fingerprint works fine here).
  2. Suspend (deep/S3) and resume.
  3. 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions