Summary
The Epic Games Launcher AppImage does not open a web browser when the user clicks the “login” button on a system running KDE Plasma 6 (Wayland). The launcher appears to do nothing and logs no errors. The root cause is an outdated bundled xdg-open script (version 1.1.3) that only supports KDE_SESSION_VERSION 4 and 5, and silently exits on Plasma 6. The AppImage’s internal PATH causes this bundled script to be used even when the system’s working xdg-open is available.
Environment
- Distribution: Bazzite 44 (Fedora Atomic-based)
- Desktop Environment: KDE Plasma 6.7.5 (Wayland)
- Hardware: AMD Ryzen 7 5700X, 31.2 GB RAM
- AppImage:
epic_games_launcher.appimage - AppImage version:
release=0.95.2+gfa9ad49 channel=release - Browser: Brave (Flatpak,
com.brave.Browser), though the issue is browser-agnostic.
Steps to Reproduce
- Download, Install and Open the Epic Games Launcher Preview AppImage.
- Wait for the launcher window to appear.
- Click the “login” button (or any action expected to open a browser).
Expected Behavior
The default web browser should open to the Epic Games login page.
Actual Behavior
Nothing happens. No browser window opens. If opened from the terminal, it shows only the normal startup logs and a clean shutdown; no error messages are printed.
Root Cause Analysis
1. Bundled xdg-open is outdated
Extracting the AppImage reveals a bundled xdg-open script:
./epic_games_launcher.appimage --appimage-extract
find squashfs-root -name 'xdg-open'
# Output: squashfs-root/usr/bin/xdg-open
Inspecting the script for KDE session handling:
grep -n 'KDE_SESSION_VERSION' squashfs-root/usr/bin/xdg-open
# Output: 7:# 1.1.3 — its open_kde() handles KDE_SESSION_VERSION 4 and 5 only. On Plasma 6
The bundled script is from xdg-utils 1.1.3, which does not recognize KDE_SESSION_VERSION=6. On Plasma 6, the script falls through all cases and exits without doing anything.
2. The AppImage uses its own bundled xdg-open first
The AppImage runtime sets its internal PATH to prioritize its own /usr/bin directory. Therefore, even when the system’s xdg-open is correct (e.g., xdg-utils 1.2.0+), the launcher calls the bundled outdated version. Overriding PATH externally (via a wrapper script) does not affect the environment inside the AppImage.
3. The launcher ignores the BROWSER environment variable
Setting BROWSER="flatpak run com.brave.Browser" (or any other browser command) before launching the AppImage had no effect. The launcher appears to call xdg-open directly and does not respect BROWSER.
4. System xdg-open works correctly
Running xdg-open https://www.epicgames.com from the terminal successfully opens the browser, confirming the system’s xdg-open is functional and supports KDE 6.
Evidence
- Terminal output when running the AppImage shows normal startup and shutdown, with no errors related to opening a browser.
- Extraction and grep results as shown above.
- Attempts to use a wrapper script with
export PATH="/usr/bin:$PATH"andunset LD_LIBRARY_PATH/unset LD_PRELOADdid not resolve the issue. - Setting
BROWSERto a Flatpak browser command did not resolve the issue.
Suggested Fix
- Update the bundled
xdg-opentoxdg-utilsversion 1.2.0 or later, which includes support forKDE_SESSION_VERSION=6. - Alternatively, patch the bundled
xdg-opento handle KDE 6. The relevantopen_kde()function should include a case for6that mirrors the behavior for 5. - Better yet, do not bundle
xdg-openat all. Rely on the system’sxdg-open, which is guaranteed to match the user’s desktop environment. This avoids future incompatibilities and reduces AppImage size. - As an improvement, the launcher could respect the
BROWSERenvironment variable or use a more robust URL-opening mechanism (e.g.,gio open,kde-open5/kde-open6, or a direct call to the desktop portal).
Additional Notes
- This issue is specific to KDE Plasma 6. On Plasma 5 or other desktop environments, the bundled
xdg-open1.1.3 may work correctly. - The problem is likely to affect other AppImages that bundle
xdg-utils1.1.3 and are used on Plasma 6. - A related upstream issue in
xdg-utilswas fixed in version 1.2.0 (released 2022), which added KDE 6 support.