You upgraded Fedora and the desktop vanished
You press the power button, the screen wakes, and the desktop is gone. The mouse cursor drifts over a black void, or the panel is missing, or the system hangs the moment you try to open a window. You are stuck in a session that looks alive but refuses to do work. This happens after a dnf upgrade, after a driver update, or sometimes for no reason at all. The underlying Linux kernel is usually still running. You can save the session by diagnosing from a TTY or SSH connection.
What is actually happening
KDE Plasma is not a single program. It is a stack of services running on top of your display server. KWin handles the windows, effects, and compositing. Plasmashell manages the panels, widgets, and system tray. SDDM handles the login screen. The GPU driver talks to the hardware. When Plasma crashes, one layer in that stack has failed.
The crash might be a corrupted configuration file that KWin cannot parse. It might be a graphics driver that sent a bad command to the GPU. It might be a third-party widget that caused a segmentation fault. The symptom is the same: the desktop environment stops responding.
Fedora ships with both X11 and Wayland sessions. The troubleshooting steps differ slightly depending on which display server you are using. X11 uses kwin_x11 for the window manager. Wayland uses kwin_wayland. If you are on Wayland, input handling is stricter and a crash can lock the keyboard and mouse more completely. Check your session type at the SDDM login screen before applying fixes.
Check logs first
Run journalctl to find the root cause. The logs tell you which component failed and why. Do not guess based on the symptom. A freeze caused by a GPU driver looks identical to a freeze caused by a bad config file until you read the logs.
Here is how to check the system journal for errors from the current boot.
# Show errors from the current boot with explanatory text
# -b selects the current boot, -p err filters for errors and above
# -x adds explanatory text from man pages, -e jumps to the end
journalctl -b -p err -xe
# Filter for Plasma-specific components if the output is too broad
# This isolates messages from the shell and window manager
journalctl -b -t plasmashell -t kwin_wayland -t kwin_x11
Look for segfault, aborted, or failed to start. If you see SELinux: Could not open policy file or denials, check the SELinux log. SELinux can block Plasma components from accessing required resources.
# Check for SELinux denials that might be blocking Plasma
journalctl -t setroubleshoot | tail -n 20
Read the actual error before guessing. The log line usually names the package or component that crashed.
Restart the display manager
If Plasma freezes but the system is still responsive, you can restart the display manager to drop back to the login screen. This clears the session state without rebooting. Switch to a TTY by pressing Ctrl+Alt+F2. Log in with your credentials.
Here is how to restart SDDM and return to the login prompt.
# Restart the display manager service
# This kills the current session and shows the login screen
sudo systemctl restart sddm
If you are on Wayland and the input is locked, you might need to use the magic SysRq keys to regain control. Press Alt+SysRq+K to kill the current X11/Wayland session, or Alt+SysRq+F to force a sync. These keys require sysrq to be enabled in the kernel parameters.
Restart SDDM to clear the session state. A fresh login often bypasses transient compositor locks.
Reset Plasma configuration
A corrupted config is a common culprit. Plasma stores user settings in ~/.config/. If a file gets truncated or contains invalid XML, KWin or Plasmashell may refuse to start. Back up the files before removing them. Plasma recreates defaults on startup.
Here is how to back up and remove the core Plasma configuration files.
# Back up the current configuration to a safe directory
# This preserves your settings in case you need to restore them
cp -r ~/.config/plasma* ~/.config/kwinrc ~/.config/plasmarc ~/plasma-config-backup/
# Remove the desktop layout file
# This resets panels, widgets, and system tray configuration
rm ~/.config/plasma-org.kde.plasma.desktop-appletsrc
# Remove the window manager configuration
# This resets window rules, effects, and compositing settings
rm ~/.config/kwinrc
# Remove the global Plasma configuration
# This resets themes, fonts, and general behavior
rm ~/.config/plasmarc
Config files in ~/.config/ are user-modified. Never edit files in /usr/lib/kde/. Those files ship with the package and will be overwritten on update.
Log out and back in. Plasma recreates default configs on startup.
Disable KWin compositing
If Plasma freezes shortly after login, the compositor may be conflicting with your GPU driver. Compositing draws windows and effects using the GPU. A driver bug can cause the compositor to hang or crash. You can disable compositing to test this theory.
Here is how to disable compositing in the KWin configuration.
# Disable compositing in the KWin configuration file
# This writes the setting to kwinrc in the user config directory
kwriteconfig5 --file kwinrc --group Compositing --key Enabled false
# Restart KWin to apply the change immediately
# Use kwin_x11 for X11 sessions, kwin_wayland for Wayland
kwin_x11 --replace &
If you are on Wayland, kwriteconfig5 may not control compositing in the same way. Use System Settings to disable effects, or switch to the "No Effects" style. You can also toggle compositing at runtime by pressing Alt+Shift+F12. This shortcut works on both X11 and Wayland.
If the desktop stabilizes after disabling compositing, your GPU driver is the culprit. Update the driver before re-enabling effects.
Update graphics drivers
Driver regressions cause crashes after kernel updates. Fedora updates the kernel frequently. Proprietary drivers must be rebuilt for each new kernel. If the module fails to build, the GPU falls back to a software renderer, which can cause instability.
Here is how to update the system and rebuild kernel modules.
# Refresh metadata and apply all pending updates
# --refresh forces dnf to fetch fresh repo data
sudo dnf upgrade --refresh
# Rebuild kernel modules for proprietary drivers
# This triggers the akmod build system for nvidia or fglrx
sudo akmods --force
# Check if the module loaded successfully
lsmod | grep nvidia
dnf upgrade --refresh is the normal weekly maintenance command. akmods rebuilds modules for the current kernel. The --force flag skips checks and rebuilds all modules. This is safe to run after a kernel update.
Reboot after a kernel or driver update. The new module must be loaded to take effect.
Rule out extensions and widgets
Third-party widgets and scripts can crash Plasmashell. If the crash started after installing a new widget, the extension is likely the cause. You can reset the session to remove third-party components.
Here is how to reset the Plasma session to a clean state.
# Reset the session to remove third-party widgets and scripts
# This clears the session cache and restores default components
plasma-session-restore --reset
You can also test with a fresh user account. Create a new user and log in. If the crash disappears, a local config or extension is breaking your session.
Test with a fresh user account. If the crash disappears, migrate your data carefully and avoid the offending extension.
Debugging and bug reports
If none of the above helps, you need a backtrace. Install debug symbols for Plasma and KWin. Reproduce the crash. Capture the core dump. This information is required for a useful bug report.
Here is how to install debug info and analyze a crash.
# Install debug symbols for Plasma and KWin
# These packages contain the symbols needed for gdb
sudo dnf install kwin-debuginfo plasma-workspace-debuginfo
# List available core dumps from recent crashes
# This shows the timestamp and command for each dump
coredumpctl list
# Debug the most recent crash with gdb
# This opens an interactive debugger with the backtrace
coredumpctl debug
In gdb, type bt to print the backtrace. Copy the output. Report findings to KDE Bugzilla with the backtrace. Include your Fedora version, kernel version, and driver details.
Report findings to KDE Bugzilla with the backtrace. Include your Fedora version and driver details.
Common pitfalls
You might see KWin crashed in the system tray. This is a notification, not the root cause. Check the logs for the signal that caused the crash. You might see QXcbConnection: Could not connect to display. This means the X11 server is not running or the socket is missing. Restarting SDDM usually fixes this.
If you see Transaction test error during a dnf upgrade, do not force the transaction. The error indicates a dependency conflict. Read the error message. It usually names the conflicting package. Remove the conflicting package or install the required dependency before retrying.
If you are using NVIDIA drivers on Wayland, expect issues. NVIDIA's Wayland support is improving but still has gaps. If you encounter persistent crashes on Wayland with an NVIDIA GPU, switch to the X11 session at the login screen.
If the boot menu is gone, GRUB rescue is your friend, not your enemy. Press Shift or Esc during boot to access the GRUB menu. Select the previous kernel to boot. This helps if a kernel update broke your driver.
When to use this vs alternatives
Use journalctl -b -p err -xe when you need to identify the component that failed during boot. Use systemctl restart sddm when the desktop is frozen but the system remains responsive over SSH or TTY. Use configuration reset when the crash started after a theme change or widget installation. Use compositing disable when the system hangs immediately after login or during window animations. Use akmods --force when you have updated the kernel and your proprietary GPU driver is no longer loading. Use a fresh user account when you suspect a corrupted home directory or a rogue extension. Use coredumpctl debug when the issue persists after all standard fixes and you need to file a bug report.