Cinnamon is stuck in a loop on the login screen [Worked around]

Hello everyone,

I stopped using EndeavourOS months ago—back in January 2026, I believe.

Following an update, I’ve been stuck in a continuous loop at the login screen (LightDm, it seems).

I am able to log in via chroot, and I recently performed all the necessary updates, but that hasn’t resolved the issue.

Note: I recall seeing a post about this back then, but I never got around to addressing it. Interestingly, the same problem also occurred when I was using Debian Sid (which was also buggy at the time).

I’ve included my graphics card specifications below. Thanks for your help!

Graphics:
Device-1: Intel HD Graphics 6000 vendor: Apple driver: i915 v: kernel
arch: Gen-8 ports: active: HDMI-A-1,eDP-1 empty: DP-1,DP-2,HDMI-A-2
bus-ID: 00:02.0 chip-ID: 8086:1626 class-ID: 0300
Display: x11 server: X.Org v: 21.1.11 with: Xwayland v: 23.2.6 driver: X:
loaded: modesetting unloaded: fbdev,vesa dri: iris gpu: i915 display-ID: :0
screens: 1

Maybe a timeshift has stolen your free space? I remember in LinuxMint a lot of people had those ligin loops because of not enough free space.

hello, I don’t think so,

root@falke-MacBookAir /]# df -h
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
/dev/nvme0n1p2 931G 528G 403G 57% /
/dev/nvme0n1p2 931G 528G 403G 57% /home
/dev/nvme0n1p2 931G 528G 403G 57% /var/log
/dev/nvme0n1p2 931G 528G 403G 57% /var/cache
udev 3,7G 0 3,7G 0% /dev
tmpfs 3,9G 8,0K 3,9G 1% /dev/shm
tmpfs 785M 9,8M 775M 2% /run
tmpfs 5,0M 12K 5,0M 1% /run/lock
tmpfs 785M 196K 785M 1% /run/user/1000
/dev/nvme0n1p1 1022M 739M 284M 73% /boot/efi

Hey, I run your issue via my LLM agent, this is the solution:

Since disk space is clearly fine (~400 GB free), a LightDM login loop after a long update hiatus (January until now) and maintenance in chroot is typically caused by one of two things:

#### 1. Session Authority / Permissions owned by Root

When doing updates or rescue work in chroot or running commands with sudo, root frequently takes ownership of session token files in your user’s home directory. If LightDM cannot write or lock .Xauthority, it immediately bounces back to the greeter:

From a TTY (Ctrl+Alt+F3) or chroot:

ls -la /home/<your-username>/.Xauthority /home/<your-username>/.ICEauthority 

If either is owned by root:root, reclaim ownership:

sudo chown <your-username>:<your-username> /home/<your-username>/.Xauthority /home/<your-username>/.ICEauthority 
# Also ensure \~/.cache is owned by you: 
sudo chown <your-username>:<your-username> /home/<your-username>/.cache 

#### 2. Unmerged PAM .pacnew files

A 10-month gap in updates on Arch/EndeavourOS almost certainly dropped .pacnew files in PAM (pambase updates). If /etc/pam.d/system-login.pacnew or lightdm.pacnew was left unmerged, pam_open_session fails during login while LightDM itself appears “active (running)”:

# Check if you have unmerged PAM configs: 
ls -la /etc/pam.d/\*.pacnew 

If found, review and merge them using pacdiff or meld.

#### 3. Inspect the session error log

To see the exact reason LightDM or Cinnamon aborted:

journalctl -u lightdm -b 0 -n 50 
cat /home/<your-username>/.xsession-errors 

──────
*(Tip: If you’d rather run a quick, automated health check across your system from TTY/chroot, you can check out the read-only sys-health https://github.com/Gbur79/Sys-Health diagnostic utility: sys-health --audit. It specifically tests for root-owned desktop authority files, PAM .pacnew collisions,
broken drivers, and systemd session failures).

Hello ,

So,

ov. 02 20:04:26 falke-MacBookAir systemd[1]: Starting lightdm.service - Light Display Manager...
nov. 02 20:04:26 falke-MacBookAir systemd[1]: Started lightdm.service - Light Display Manager.
nov. 02 20:04:27 falke-MacBookAir lightdm[1085]: pam_unix(lightdm-greeter:session): session opened for user lightdm(uid=116) by (uid=0)
nov. 02 20:04:28 falke-MacBookAir lightdm[1085]: gkr-pam: couldn't unlock the login keyring.
nov. 02 20:04:29 falke-MacBookAir lightdm[1198]: pam_succeed_if(lightdm:auth): requirement "user ingroup nopasswdlogin" not met by user "falke"
nov. 02 20:05:18 falke-MacBookAir lightdm[1198]: gkr-pam: unable to locate daemon control file
nov. 02 20:05:18 falke-MacBookAir lightdm[1198]: gkr-pam: stashed password to try later in open session
nov. 02 20:05:18 falke-MacBookAir lightdm[1198]: pam_unix(lightdm:session): session opened for user falke(uid=1000) by (uid=0)
nov. 02 20:05:18 falke-MacBookAir lightdm[1198]: gkr-pam: unlocked login keyring

and

⚙️ chroot-EndeavourOS) root@falke-MacBookAir:~$ cat /home/falke/.xsession-errors
[cinnamon-settings-daemon-smartcard] Failed to start: no suitable smartcard driver could be found
[cinnamon-settings-daemon-smartcard] Failed to start: no suitable smartcard driver could be found
dbus-daemon[976]: Activating service name='org.a11y.atspi.Registry' requested by ':1.2' (uid=1000 pid=1003 comm="/usr/bin/csd-background")
dbus-daemon[976]: Successfully activated service 'org.a11y.atspi.Registry'
/usr/bin/cinnamon-launcher:56: DeprecationWarning: This process (pid=1096) is multi-threaded, use of fork() may lead to deadlocks in the child.
  self.cinnamon_pid = os.fork()

(csd-media-keys:997): csd-media-keys-WARNING **: 12:56:01.133: Unable to get default sink
Cjs-Message: 12:56:01.754: JS LOG: About to start Cinnamon (X11 backend)

(cinnamon:1162): Cjs-WARNING **: 12:56:01.755: Gio.DesktopAppInfo has been moved to a separate platform-specific library. Please update your code to use GioUnix.DesktopAppInfo instead.
0 get() ["resource:///org/cinnamon/cjs/modules/core/overrides/Gio.js":525:46]
1 start() ["/usr/share/cinnamon/js/ui/main.js":315:5]
2 <TOP LEVEL> ["<main>":1:47]

Cjs-Message: 12:56:01.832: JS LOG: [LookingGlass/info] Cinnamon.AppSystem.get_default() started in 0 ms
Cjs-Message: 12:56:01.835: JS LOG: [LookingGlass/info] loading user theme: /usr/share/themes/Arc-Dark/cinnamon/cinnamon.css
Cjs-Message: 12:56:01.850: JS LOG: [LookingGlass/info] added icon directory: /usr/share/themes/Arc-Dark/cinnamon
Cjs-Message: 12:56:02.201: JS LOG: [LookingGlass/info] NetworkManager agent: enabled
Cjs-Message: 12:56:02.205: JS LOG: [LookingGlass/info] Polkit agent: enabled
Cjs-Message: 12:56:02.206: JS LOG: [LookingGlass/info] SSH agent: enabled
Cjs-Message: 12:56:02.220: JS LOG: [LookingGlass/info] loaded at Sun Dec 21 2025 12:56:02 GMT+0100 (heure normale d’Europe centrale)
Cjs-Message: 12:56:02.220: JS LOG: Cinnamon started at Sun Dec 21 2025 12:56:02 GMT+0100 (heure normale d’Europe centrale)
Cjs-Message: 12:56:02.231: JS LOG: [LookingGlass/info] ExtensionSystem started in 0 ms
Cjs-Message: 12:56:02.231: JS LOG: [LookingGlass/info] DeskletManager started in 1 ms
Cjs-Message: 12:56:02.231: JS LOG: [LookingGlass/info] SearchProviderManager started in 1 ms
Cjs-Message: 12:56:02.313: JS LOG: [LookingGlass/info] Loaded applet separator@cinnamon.org in 25 ms
Cjs-Message: 12:56:02.381: JS LOG: [LookingGlass/info] Loaded applet calendar@cinnamon.org in 68 ms
Cjs-Message: 12:56:02.411: JS LOG: [LookingGlass/info] Loaded applet favorites@cinnamon.org in 30 ms

** (at-spi2-registryd:1075): WARNING **: 12:56:02.464: Failed to register client: GDBus.Error:org.gnome.SessionManager.AlreadyRegistered: Unable to register client

** (at-spi2-registryd:1075): WARNING **: 12:56:02.464: Unable to register client with session manager
Cjs-Message: 12:56:02.617: JS LOG: [LookingGlass/info] Loaded applet keyboard@cinnamon.org in 206 ms
Cjs-Message: 12:56:02.661: JS LOG: [LookingGlass/info] Loaded applet removable-drives@cinnamon.org in 44 ms
Cjs-Message: 12:56:02.692: JS LOG: [LookingGlass/info] Loaded applet cornerbar@cinnamon.org in 31 ms
Cjs-Message: 12:56:02.706: JS LOG: [LookingGlass/info] Role locked: tray
Cjs-Message: 12:56:02.716: JS LOG: [LookingGlass/info] Loaded applet systray@cinnamon.org in 24 ms
Cjs-Message: 12:56:02.758: JS LOG: [LookingGlass/info] Role locked: notifications
Cjs-Message: 12:56:02.791: JS LOG: [LookingGlass/info] Loaded applet notifications@cinnamon.org in 75 ms
Nemo-Message: 12:56:02.981: nemo-desktop: session is cinnamon, establishing proxy
Cannot register authentication agent: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: An authentication agent already exists for the given subject
Cjs-Message: 12:56:03.112: JS LOG: [LookingGlass/info] Loaded applet printers@cinnamon.org in 318 ms
Cjs-Message: 12:56:03.152: JS LOG: [LookingGlass/info] Loaded applet xapp-status@cinnamon.org in 40 ms
Cjs-Message: 12:56:03.207: JS LOG: [LookingGlass/info] Loaded applet power@cinnamon.org in 54 ms
Cjs-Message: 12:56:03.290: JS LOG: [LookingGlass/info] Role locked: panellauncher
Cjs-Message: 12:56:03.293: JS LOG: [LookingGlass/info] Role locked: windowattentionhandler
Cjs-Message: 12:56:03.301: JS LOG: [LookingGlass/info] Monitor Watch List updated: [0]
Cjs-Message: 12:56:03.302: JS LOG: [LookingGlass/info] Loaded applet grouped-window-list@cinnamon.org in 95 ms
csd-power-Message: 12:56:03.496: gnome-rr not supported for display backlight, using backlight-helper for future calls
Cjs-Message: 12:56:03.904: JS LOG: [LookingGlass/info] Loaded applet sound@cinnamon.org in 602 ms
Cjs-Message: 12:56:03.984: JS LOG: [LookingGlass/info] Loaded applet network@cinnamon.org in 80 ms
Cjs-Message: 12:56:04.307: JS LOG: [LookingGlass/info] Loaded applet menu@cinnamon.org in 323 ms
Cjs-Message: 12:56:04.309: JS LOG: [LookingGlass/info] AppletManager started in 2087 ms
Cjs-Message: 12:56:04.315: JS LOG: [LookingGlass/info] Cinnamon took 2561 ms to start
Cjs-Message: 12:56:04.342: JS LOG: Unknown network device type, is 32
Cjs-Message: 12:56:04.404: JS LOG: calendar@cinnamon.org: Calendar events supported.

(cinnamon:1162): XApp-WARNING **: 12:56:04.595: Switcheroo-control doesn't appear to be running, checking for Ubuntu support...
/usr/lib/warpinator/server.py:9: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.
  import pkg_resources
Cjs-Message: 12:56:04.753: JS LOG: [LookingGlass/info] GPU offload supported: false
Cjs-Message: 12:56:05.745: JS LOG: [LookingGlass/info] Adding XAppStatusIcon: org.x.StatusIcon.warpinator (:1.50/org/x/StatusIcon/Icon)
Cjs-Message: 12:56:06.093: JS LOG: Enabling WindowAttentionHandler

(nemo-desktop:1220): Nemo-WARNING **: 12:56:06.460: Action 'mount-archive.nemo_action' is missing dependency: gnome-disk-image-mounter
Nemo-Share-Message: 12:56:07.337: Called "net usershare info" but it failed: « net usershare » a retourné l'erreur 255 : Can't load /etc/samba/smb.conf - run testparm to debug it
net usershare: usershares are currently disabled

Cjs-Message: 12:56:24.058: JS LOG: [LookingGlass/info] Adding XAppStatusIcon: :1.80 (:1.40/org/x/StatusIcon/Icon)
JavaScript error: , line 0: uncaught exception: undefined
JavaScript error: resource://gre/modules/JSONFile.sys.mjs, line 432: TypeError: can't access property "toJSONSafe", this._data is null

(nemo-desktop:1220): GLib-CRITICAL **: 12:59:28.339: g_ascii_strdown: assertion 'str != NULL' failed
Nemo-Message: 12:59:29.021: nemo-desktop: session is cinnamon, establishing proxy

(nemo-desktop:5187): GLib-GIO-ERROR **: 12:59:29.057: Settings schema 'org.nemo.preferences' does not contain a key named 'show-toggle-extra-pane-toolbar'
cinnamon-session-binary[944]: WARNING: t+209.94943s: App 'nemo-autostart.desktop' respawning too quickly
cinnamon-session-binary[944]: CRITICAL: t+209.94977s: Unable to start session: A program required by the session failed to start. App ID: 'nemo-autostart.desktop'. Startup ID: '104cb5ff9b345cb59176631815970493900000009440002'.

(csd-print-notifications:978): GLib-CRITICAL **: 13:08:23.181: Source ID 3 was not found when attempting to remove it
cinnamon-session-binary[944]: WARNING: t+743.67670s: Application 'cinnamon-settings-daemon-wacom.desktop' killed by signal 1
cinnamon-session-binary[944]: WARNING: t+743.67792s: Application 'cinnamon.desktop' killed by signal 15
/usr/bin/cinnamon-launcher:61: DeprecationWarning: This process (pid=58979) is multi-threaded, use of fork() may lead to deadlocks in the child.
  self.cinnamon_pid = os.fork()

(cinnamon:58988): muffin-WARNING **: 13:08:23.773: Failed to create backend: Unable to open display ':0'
(⚙️ chroot-EndeavourOS) root@falke-MacBookAir:~$ 

:thinking:

LLM analysis:

There are two huge clues in what you posted:

### 1. The smoking gun in `.xsession-errors` (GSettings Schema Crash)

Look at these lines right before the session dies:

> `(nemo-desktop:5187): GLib-GIO-ERROR **: Settings schema ‘org.nemo.preferences’ does not contain a key named ‘show-toggle-extra-pane-toolbar’`

> `cinnamon-session-binary[944]: CRITICAL: Unable to start session: A program required by the session failed to start. App ID: ‘nemo-autostart.desktop’`

In GLib/GTK, a missing GSettings schema key triggers an immediate fatal `SIGTRAP` abort. Because `nemo-autostart` is a required component of Cinnamon, when it crashes in a loop, `cinnamon-session` aborts the entire login and kicks you back to LightDM.

This happens when `gschemas.compiled` is out of sync after a broken/chroot update, when `/usr/local/share/glib-2.0/schemas` overrides system schemas, or when `nemo` and `cinnamon` versions are mismatched (e.g., an AUR/git package mixed with repo packages).

### 2. Notice the timestamp in `.xsession-errors`

Your `.xsession-errors` timestamp says **`Sun Dec 21 2025`**, whereas your `journalctl` log is from today (**`Nov 02 20:05`**).

This means today’s login attempt either didn’t write to `.xsession-errors` at all (because the file is locked/owned by root, or you are booting into the Wayland session which logs to the systemd journal instead), or it died before `Xsession` initialized.

-–

### How to fix both from your `chroot`:

**Step 1: Reinstall Cinnamon & Nemo packages and rebuild GSettings schemas**

```bash

pacman -Syu cinnamon nemo cinnamon-session cinnamon-settings-daemon cjs muffin
glib-compile-schemas /usr/share/glib-2.0/schemas/

(Also check if you have stale local schemas overriding system ones: ls -la /usr/local/share/glib-2.0/schemas/ — if that folder exists and has old files, remove them).

Step 2: Clear/fix .xsession-errors and check permissions

If .xsession-errors is owned by root, Xsession cannot overwrite it:

rm -f /home/falke/.xsession-errors
chown -R falke:falke /home/falke/.Xauthority /home/falke/.ICEauthority /home/falke/.cache /home/falke/.config /home/falke/.local

lStep 3: Check what happens right after 20:05:18 in today’s journal

Your journalctl output only showed lightdm unit lines up to the moment the session opened (20:05:18). To see what crashed a second later today, run (outside chroot after a failed login, or inside chroot using -b -1):

journalctl -b -1 -p 4..0 -n 50

hi, thanks,

but unfortunately all this didn’t work,

I did a fresh install again.

“Smoking gun” :wink: