Just boot into the faulty environment, try the log in a couple of times (perhaps even on a TTY), reboot into recovery, inspect the journald and/or syslog records of the events, if any. Optionally enable debug logging on libpam. The answers should present themselves.