Ok, that was the net outcome. After some analysis, I found three small bugs in libaccountsservice, in how the state machine for is-loaded is advanced as data arrives from the bus. I hope that the patches are clear enough. They fix the visibile part of the bug here.
Created attachment 57828 [details] [review] UserManager: fix advancing seat loading state machine Because the session proxy creating happened synchronously, seat loading state was incremented, but nothing called load_seat_incrementally() again, meaning that it never advanced to next step. Making it async like the other operations fixes it.
Created attachment 57829 [details] [review] ActUser: set loaded status even if an error occurs Not doing so confuses the UserManager, which still considers the user pending and blocks the emission of user-added/user-removed signals.
Created attachment 57830 [details] [review] ActUser: use -1 to indicate default DBus timeout Passing 0 means 0 milliseconds, which is quite too short even on modern computers.
Thanks.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.