protonscr

Cyberpunk 2077: Immediate crash on launch with gamedrive option when compatdata is on NTFS (kernel 6.18 ntfs3 regression)

protonclosed appid 1091500
ValveSoftware/Proton#9562 · opened 2026-03-11 by DrBiscuits · updated 2026-03-11 · 1 comments · github · game page · search this game
DDrBiscuits 2026-03-11 github

Compatibility Report

  • Name of the game with compatibility issues: Cyberpunk 2077
  • Steam AppID of the game: 1091500

System Information

  • GPU: NVIDIA GeForce RTX 3080
  • Video driver version: nvidia 580.126.18
  • Kernel version: 6.18
  • Link to full system information report as Gist:
  • Proton version: Proton Experimental (experimental-10.0-20260227)

I confirm:

  • [X] that I haven't found an existing compatibility report for this game.
  • [X] that I have checked whether there are updates for my system available.

Symptoms

Game crashes immediately on launch. Steam briefly shows the game as running
(Play button changes to Stop) then returns to Play within a few seconds. No
game window appears.

The root cause is a regression in the kernel 6.18 ntfs3 driver that breaks
Proton's gamedrive compatibility option when the Wine prefix (compatdata/)
is stored on an NTFS partition. The following error appears in Steam's console
log:

File ".../Proton - Experimental/proton", line 301, in setup_dir_drive
OSError: [Errno 22] Invalid argument: '<compat_data_path>/pfx/dosdevices/s:'

Root cause: The gamedrive option causes Proton to manage a dosdevices/s:
symlink that maps the S: drive letter to the game's Steam library. On NTFS,
symlinks are stored as files with an IntxLNK magic header. In kernel 6.17
and earlier, ntfs3 exposed these to userspace as proper Linux symlinks —
os.path.islink() returned True and os.readlink() worked correctly. In
kernel 6.18, ntfs3 exposes them as regular files, so os.path.islink()
returns False and os.readlink() raises EINVAL.

Proton's setup_dir_drive() calls os.path.lexists() (which still returns
True) and then unconditionally calls os.readlink(), which now raises
EINVAL and crashes the Proton process before the game starts.

This only affects games that have gamedrive in their Proton compat options
(visible in compatdata/<APPID>/config_info). Games without this flag never
call setup_game_dir_drive() and are unaffected.

Reproduction

  1. Install Cyberpunk 2077 (or any game with gamedrive in its compat options)
    to a Steam library on an NTFS partition mounted via the ntfs3 kernel driver.
  2. Ensure the game's Wine prefix (compatdata/<APPID>/) is also on the NTFS
    partition (the default when the game library is on NTFS).
  3. Update to kernel 6.18.
  4. Launch the game via Steam with Proton Experimental.

Workaround: Move the Wine prefix off the NTFS partition to a native Linux
filesystem and point Proton to it via the STEAM_COMPAT_DATA_PATH launch
option:

# Copy prefix to a native filesystem location
cp -a <ntfs_library>/steamapps/compatdata/<APPID>/ <ext4_path>/compatdata/<APPID>/

# The IntxLNK s: file copies as a plain file — recreate it as a proper symlink
rm <ext4_path>/compatdata/<APPID>/pfx/dosdevices/s:
ln -s <ntfs_library>/steamapps <ext4_path>/compatdata/<APPID>/pfx/dosdevices/s:

Then set the game's Steam launch option to:

STEAM_COMPAT_DATA_PATH=<ext4_path>/compatdata/<APPID> %command%

Suggested fix: In setup_dir_drive(), catch EINVAL from os.readlink()
and treat it the same as the file not existing (i.e. remove and recreate), or
check os.path.islink() before calling os.readlink().

Kkisak-valve maintainer 2026-03-11 github

Hello @DrBiscuits, we're using one issue report per unofficially supported game title, so I've gone ahead and transferred this issue report to https://github.com/ValveSoftware/Proton/issues/4450#issuecomment-4039923065.