Bug 508247 - kscreenlocker fingerprint authentication fails after suspend/resume
Summary: kscreenlocker fingerprint authentication fails after suspend/resume
Status: RESOLVED WORKSFORME
Alias: None
Product: plasmashell
Classification: Plasma
Component: Screen locking (other bugs)
Version First Reported In: 6.3.6
Platform: NixOS Linux
: NOR major
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-08-14 14:32 UTC by willemvanhulle
Modified: 2025-08-14 19:13 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
fingerprint.nix (almost working NixOS fingerprint configuration) (2.19 KB, text/plain)
2025-08-14 14:32 UTC, willemvanhulle
Details

Note You need to log in before you can comment on or make changes to this bug.
Description willemvanhulle 2025-08-14 14:32:05 UTC
Created attachment 184074 [details]
fingerprint.nix (almost working NixOS fingerprint configuration)

SUMMARY

kscreenlocker fails to authenticate using fingerprint (pam_fprintd) after system suspend/resume cycles. PAM module pam_fprintd is not invoked at all after resume, forcing password-only authentication.

STEPS TO REPRODUCE
1. Configure fingerprint authentication with pam_fprintd and verify it works with kscreenlocker (see attachment for a configuration for NixOS)
2. Lock the screen and confirm fingerprint authentication works normally
3. Suspend the system (or wait until it suspends automatically)
4. Wait more than a few minutes (it varies)
5. Resume 
6. Touch the fingerprint sensor


OBSERVED RESULT

After resume from suspend:
- kscreenlocker UI appears to offer fingerprint authentication
- pam_fprintd is never invoked (confirmed via system logs)
- Authentication attempts skip directly to pam_unix (password authentication)
- Only password authentication works until user session (or kscreenlocker_greet) restart

EXPECTED RESULT

Fingerprint authentication should continue working after suspend/resume cycles, with pam_fprintd being invoked normally as it was before suspend.

SOFTWARE/OS VERSIONS
Windows: N/A
macOS: N/A
Linux/KDE Plasma: NixOS 25.05
KDE Plasma Version: 6.3.6
KDE Frameworks Version: 6.14.0
Qt Version: 6.9.1

ADDITIONAL INFORMATION

kscreenlocker seems to establish its PAM session context at startup and does not reinitialize after resume. When fprintd restarts after resume (required for  USB device reinitialization), the existing kscreenlocker process retains a stale PAM session that cannot communicate with the restarted fprintd service.

System logs show:
- Before suspend: kscreenlocker_greet[PID]:  pam_fprintd(kde-fingerprint:auth): [normal fingerprint activity]
- After resume: kscreenlocker_greet[SAME_PID]: pam_unix(kde-fingerprint:auth): authentication failure
  (pam_fprintd never called)

Workaround:
1. Use password authentication
2. Add a system services that restarts the lockscreen greeter:
    pkill -TERM kscreenlocker_greet
Comment 1 Bug Janitor Service 2025-08-14 14:33:42 UTC
Thank you for the bug report!

However Plasma 6.3.6 no longer receives updates or maintenance from KDE; active versions are 6.4 or newer. Please upgrade to an active version as soon as your distribution makes it available to you. Plasma is a fast-moving project, and bugs in one version are often fixed in the next one.

If you need help with Plasma 6.3.6, please contact your distribution, who bears the responsibility of providing help for older releases that are no longer receiving updates from KDE.

If you can reproduce the issue after upgrading to an active version, feel free to re-open this bug report.
Comment 2 willemvanhulle 2025-08-14 15:01:03 UTC
I have tested it in plasmashell 6.4.4 and it still doesnt work.
Comment 3 willemvanhulle 2025-08-14 19:13:47 UTC
I removed some tweaks and I got it working with a more minimal setup. I will update if it breaks again. It takes a lot of time to debug this.