Troubleshooting¶
Solutions for the most common problems encountered during and after setup.
Machine boots to Gaming Mode after install¶
Symptom: After Phase 0 installation, the machine boots straight into Steam's Gaming Mode. SSH isn't available yet.
Fix: This is the expected first-boot state for bazzite-deck. You need to complete Phase 1:
- In Steam's Gaming Mode, press the Power icon → Switch to Desktop
- Open Konsole and complete all steps in Phase 1
start-kde.sh / start-gaming.sh says "session already active" but nothing is visible¶
Symptom: Running a start script returns ERROR: A graphical session is already active, but no session is visible on the screen.
Cause: A session is stuck in the loginctl session list — often left over from an interrupted stop.
Fix:
loginctl list-sessions # Note the stuck session ID
loginctl terminate-session ID # Replace ID with the number from above
sleep 2
sudo start-kde.sh # Or start-gaming.sh
SDDM shows the login screen instead of autologging in¶
Symptom: After running sudo start-kde.sh, the physical screen shows the SDDM login screen instead of autologging into KDE.
Diagnose:
# Check that both session desktop files exist
ls /usr/share/wayland-sessions/
# Expected: plasma.desktop AND gamescope-session.desktop (or gamescope-session-steam.desktop)
# Check SDDM logs
journalctl -u sddm -n 50 --no-pager
Common causes:
- Session desktop file name doesn't match — check the exact filename with
lsand update theSESSION_NAMEvariable instart-kde.sh - A Bazzite update moved the autologin conf — check
/etc/sddm.conf.d/for conflicting files
Sunshine not streaming / Moonlight can't connect¶
Work through this checklist in order:
1. Check WireGuard is connected:
If this fails, the VPN isn't connected or the server's wg-easy container isn't running.
2. Check a session is actually running on the server:
If empty, no graphical session was launched. Run sudo start-kde.sh or sudo start-gaming.sh.
3. Check Sunshine is running:
4. Check Sunshine's firewall ports are open:
sudo firewall-cmd --list-ports
# Expected: 47984/tcp 47989/tcp 48010/tcp 47998/udp 47999/udp 48000/udp 48002/udp 48010/udp
5. Restart Sunshine:
6. Check the Sunshine web UI for errors:
ssh -N -L 47990:127.0.0.1:47990 -p 22022 username@192.168.1.50
# Open https://localhost:47990 → Logs tab
Docker containers not running after a reboot¶
Symptom: After rebooting the server, some or all Docker containers aren't running.
Diagnose:
Fix: Start all services:
cd ~/docker/duckdns && docker compose up -d
cd ~/docker/npm && docker compose up -d
cd ~/docker/nextcloud && docker compose up -d
cd ~/docker/wireguard && docker compose up -d
cd ~/docker/watchtower && docker compose up -d
If Docker itself isn't starting, check for errors:
Data drive not mounting — system boots to emergency shell¶
Symptom: Server won't boot normally; drops to an emergency shell asking for root password.
Cause: The data drive is missing, failed, or the fstab entry is wrong. The nofail option in fstab (set in Phase 6) should prevent this — check if it's present.
Fix: At the emergency shell:
Find the /srv/nextcloud-data line. Make sure the options column contains nofail. Example:
Save, then reboot:
Nextcloud shows 502 Bad Gateway¶
Symptom: Visiting yourname.duckdns.org shows a 502 error from Nginx Proxy Manager.
Possible causes and fixes:
- Nextcloud AIO containers aren't running — Open the AIO panel (
https://localhost:9443via SSH tunnel) and check container status. Click Start if they're stopped. - NPM proxy host is misconfigured — Check that the forward hostname is exactly
nextcloud-aio-apacheand port is11000 - NPM and Nextcloud aren't on the same Docker network — Both must use the
nextcloud-aionetwork:
Lost SSH access after Phase 4 (locked out)¶
Symptom: Can't connect with ssh -p 22022 username@server-ip.
Recovery options (requires physical access to the server):
- Connect a monitor and keyboard to the server
- Log in locally and check sshd status:
sudo systemctl status sshd - Check if the SELinux label is on port 22022:
sudo semanage port -l | grep ssh - Check the firewall:
sudo firewall-cmd --list-ports - Check the sshd config for syntax errors:
sudo sshd -t
If SELinux is blocking: sudo semanage port -a -t ssh_port_t -p tcp 22022
If the firewall blocked it: sudo firewall-cmd --permanent --add-port=22022/tcp && sudo firewall-cmd --reload