So you click Play in Steam, the button flips to a blue “Stop” for a moment, then flips back to “Play” and nothing happened. Sound familiar? This is the single most common experience for Linux gamers who rely on Proton, and most guides either list twenty disconnected fixes or bury the real cause under vague advice like “reboot your computer.”
In this guide I want to walk you through a decision tree approach that I use every time a Steam game won’t launch through Proton on Linux. Instead of blindly trying fixes one through ten, the goal is to identify the symptom you’re seeing and jump straight to the fixes most likely to apply. Most failures cluster into one of four branches: a silent failure where Steam never actually starts the game, a crash moments after launch, a hang at “Preparing to Launch,” or a black screen.
By the end you’ll also know how to read a Proton log, switch Proton versions correctly, handle NTFS/exFAT filesystems on dual-boot systems, and configure Flatpak Steam properly. I’ll reference real forum patterns from r/linux_gaming, the Arch Wiki, and the official Steam support article so you can see how each fix earned its place.
Table of Contents
Quick Diagnosis: Which Branch of the Decision Tree Applies to You?
Before touching a single setting, answer one question: what exactly does Steam do when you click Play? The answer tells you which category of fix to try first.
Branch A – Silent failure. The Play button flickers to “Stop” and back within a second or two. There is no error dialog. This usually means the Proton prefix crashed before the game window even opened. Suspect wrong GPU selection, missing Vulkan drivers, a corrupt Proton prefix, or a filesystem permission problem on the game’s install location.
Branch B – Crash on launch. A window appears briefly or you see the game’s splash, then it closes or shows an engine error. This points at a compatibility issue with the current Proton version, missing 32-bit libraries, or a game-specific bug documented on ProtonDB.
Branch C – Stuck on “Preparing to Launch.” Steam shows the green “Preparing to Launch” text and never moves past it. This is frequently a stalled Steam download cache, a corrupt appmanifest file, or a Flatpak Steam sandbox refusing to access the game files.
Branch D – Black screen or audio-only. The process is running according to your task manager but the window stays black. This is almost always a graphics driver or windowing protocol mismatch (Wayland vs X11) combined with the wrong Vulkan backend.
Once you’ve placed yourself in a branch, the table below maps each branch to the fixes most likely to resolve it. I cover all ten fixes in detail in the rest of the guide.
Branch A (Silent failure): Start at Fix 1 (wrong GPU), then Fix 2 (drivers), Fix 6 (filesystem).
Branch B (Crash on launch): Start at Fix 4 (Proton version), then Fix 5 (PROTON_LOG), Fix 3 (verify files).
Branch C (Stuck on Preparing to Launch): Start at Fix 8 (reset runtime), then Fix 7 (Flatpak).
Branch D (Black screen): Start at Fix 2 (drivers), then Fix 1 (wrong GPU), Fix 9 (distro notes for Wayland).
Fix 1: Make Sure the Correct GPU Is Running the Game
If you’re on a laptop with both integrated and discrete graphics, this is the first thing I check. The single most common cause of a silent Proton failure on hybrid machines is Steam trying to launch the game on the integrated GPU that lacks Vulkan support, while the discrete GPU sits idle.
The fastest way to confirm which GPU is active is to add mangohud %command% to the game’s launch options in Steam. MangoHud overlays the GPU name, driver version, and frame timing. If it shows your integrated Intel or AMD chip instead of your NVIDIA or AMD discrete card, the game is rendering on the wrong device.
To force the discrete GPU, set the appropriate environment variable in the game’s launch options. On NVIDIA Optimus setups, prepend prime-run %command%. On AMD or Intel hybrid systems, use DRI_PRIME=1 %command%. For users of envycontrol or supergfxctl (common on ASUS and Framework laptops), make sure you’ve switched to the dedicated mode before launching Steam, because Steam inherits the GPU context from the session it was launched in.
If adding the variable fixes the launch, you can make it permanent by editing the Steam desktop entry or using envycontrol to set hybrid mode with the dGPU as default for OpenGL and Vulkan applications. Several users on r/linux_gaming and the Zorin forums traced months of “game won’t start” headaches to exactly this issue.
Fix 2: Update or Roll Back GPU Drivers (Mesa, NVIDIA, AMD)
Proton translates DirectX calls into Vulkan, which means your GPU drivers are the foundation everything else stands on. If Vulkan is broken, missing, or stale, no amount of Proton configuration will save you. Before anything else, confirm Vulkan works by running vkcube or vulkaninfo in a terminal. If either command errors out, you have a driver problem.
AMD and Intel users are on the Mesa stack, which ships with your distribution. Update Mesa through your package manager and make sure the 32-bit Vulkan loader is installed too, because many games still need the 32-bit Vulkan ICD. On Debian and Ubuntu that’s libgl1-mesa-dri:i386 and mesa-vulkan-drivers:i386. On Arch, enable the multilib repository and install lib32-mesa and lib32-vulkan-radeon (or lib32-vulkan-intel).
NVIDIA users have a harder time because NVIDIA’s proprietary driver has had several regressions that break Proton. Driver 535 in particular had well-documented problems that caused silent crashes in games that worked fine on 525 or earlier. If you recently updated and games stopped launching, rolling back to the previous driver branch is a legitimate fix, not a workaround. The 550 and 555 branches have been more stable for most users, but always check the NVIDIA Linux forum thread for your card before committing to a version.
After any driver change, reboot. Reinitialising the Vulkan ICD loader without a reboot can leave stale state that makes Proton think the old driver is still present. I learned this the hard way on Fedora after a Mesa upgrade that fixed one game and broke another until I restarted.
Fix 3: Verify Integrity of Game Files
Corrupt or incomplete game files are responsible for roughly one in five launch failures I see. This is the fix Steam itself recommends in its official support article, and it takes under five minutes.
Right-click the game in your Steam library, choose Properties, then go to the Local Files or Installed Files tab. Click “Verify integrity of game files.” Steam will compare every file against its master copy and re-download anything that doesn’t match. Watch the progress bar: if it reports that it had to re-acquire more than a handful of files, the corruption was significant and was very likely your cause.
This step is especially important if you copied a Steam library from Windows or from another Linux install. The Reddit thread on r/linux_gaming flags this explicitly: copying the entire SteamLibrary folder from Windows is the root cause for many silent failures, because Windows-only redistributables and different file naming conventions leak into the Linux Steam prefix. If you suspect this, verifying files is the gentlest first step before you resort to a full reinstall.
Fix 4: Switch Proton Versions (Experimental, GE, Hotfix)
Different Proton versions fix different games. A title that crashes on Proton 9 might run perfectly on Proton Experimental or on a community build like Proton-GE. If you’re on Branch B (crash on launch) of the decision tree, this is where you should spend most of your time.
To change the Proton version, right-click the game, go to Properties, then the Compatibility tab. Tick “Force the use of a specific Steam Play compatibility tool” and pick a version from the dropdown. I recommend testing in this order: Proton Experimental first (it gets the newest patches), then the latest numbered stable release, then older versions if the game is itself old.
Proton-GE (Glorious Eggroll) is a community fork that bundles patches Valve hasn’t merged yet, including media foundation fixes, FSR tweaks, and game-specific workarounds. Installing it is straightforward: download the latest release from the GE-Proton GitHub, extract it into ~/.steam/root/compatibilitytools.d/, and restart Steam. It will appear in the compatibility tool dropdown. On Arch you can instead install proton-ge-custom-bin from the AUR. Many ProtonDB reports credit Proton-GE with fixing games that refused to launch on any official Proton version.
One important note: every time you switch Proton versions for a game, Steam creates a fresh Proton prefix (the fake Windows environment the game runs in). You may lose save data stored inside the prefix, so back up ~/.steam/steam/steamapps/compatdata/[appid] before switching if you care about local saves.
Fix 5: Enable PROTON_LOG=1 to Capture Terminal Errors
If the first four fixes haven’t worked, it’s time to stop guessing and read what Proton is actually complaining about. The PROTON_LOG=1 environment variable tells Proton to write a detailed log file that captures every error the game and Wine layer produce. Forum veterans will tell you “show me your log” before offering any further advice, and they’re right.
To enable it, right-click the game, go to Properties, then General, and add the following to the Launch Options box:
PROTON_LOG=1 %command%
Launch the game, let it fail, then look for a file named steam-[appid].log in your home directory. Open it in a text editor and scroll to the bottom. The last lines before the crash usually contain the actual error: a missing DLL, a failed Vulkan extension, a permission denied error, or a Wine assertion failure.
For a more readable output, install protontricks and run protontricks [appid] winecfg to open the Wine configuration GUI for that specific game prefix. This lets you change Windows version emulation, enable or disable the Steam overlay in Wine, and toggle virtual desktop mode, all of which can unblock a stubborn launch.
If the log shows a Steam beta client bug, check whether you’re on the Steam beta branch. Several users reported that custom environment variables in launch options are currently broken in Steam beta. If you see variables silently ignored, opt out of the beta in Steam Settings > Beta Participation and restart the client.
Fix 6: Check Filesystem Type (NTFS and exFAT Cause Silent Failures)
This is the fix that separates experienced Linux gamers from newcomers, and it’s the cause of more silent failures than any other single issue. If your Steam library lives on an NTFS or exFAT partition, typically because you dual-boot with Windows and share a games drive, Proton can fail silently because these filesystems don’t support Linux file permissions and symlinks the way Proton expects.
The short version: Proton creates and executes files inside the prefix, and on NTFS it can’t set the executable bit or create the case-sensitive symlinks many game installers expect. Games appear to install correctly but fail the moment they try to run.
The cleanest fix is to move the Steam library to an ext4 partition. If that isn’t possible, you can mount the NTFS partition with specific options that fake the missing POSIX semantics. A working mount line in /etc/fstab looks like this:
UUID=xxxx-xxxx /mnt/games ntfs-3g uid=1000,gid=1000,dmask=022,fmask=022,exec 0 0
The uid and gid parameters ensure your user owns every file. The exec flag permits execution of binaries. Even with these options, some games will still fail because NTFS is case-insensitive and Proton occasionally needs case-sensitive behavior. exFAT is slightly better than NTFS for this use case but still inferior to ext4.
The Reddit community is very clear on this point: if at all possible, put your Linux Steam library on ext4. The number of strange, unexplainable launch failures that disappear when you do is remarkable. One user on the EndeavourOS forum spent three nights troubleshooting before realising the entire problem was their shared NTFS games drive.
Fix 7: Fix Flatpak Steam Permissions With Flatseal
If you installed Steam as a Flatpak from Flathub, you’re running inside a sandbox that by default cannot see all your filesystems, external drives, or even some parts of your home directory. This is a common cause of Branch C failures, where Steam is stuck on “Preparing to Launch” because it can’t access the game files it thinks it has installed.
Install Flatseal, which is a GUI for managing Flatpak permissions. Find Steam in the application list and check the Filesystem section. You’ll want to grant access to the path where your games are stored. If your games are on a secondary drive mounted at /mnt/games, add that path under “Other files” or toggle “All system files” if you trust the application and want a quick fix.
You can also do this from the terminal with: flatpak override --user com.valvesoftware.Steam --filesystem=/mnt/games
Another Flatpak-specific gotcha: the Flatpak version of Steam runs in its own runtime that can lag behind the system runtime. If a Vulkan extension you installed system-wide isn’t visible inside the sandbox, the Flatpak Steam won’t use it. The fix is to ensure the Flatpak has access to the same Vulkan ICD files, or to switch to the native package of Steam which sidesteps sandboxing entirely.
Fix 8: Reinstall Steam and Reset the Runtime
When the Steam client itself is the problem, no per-game fix will help. Symptoms include every game failing to launch at once, the “Preparing to Launch” hang on all titles, or Steam crashing on startup. Before you do a full reinstall, try two less drastic steps.
First, clear the download cache. Go to Steam Settings > Storage or Downloads, click “Clear Download Cache,” and restart Steam. This flushes incomplete or corrupt partial downloads that can block all future launches. I’ve seen this single step fix a situation where nothing would start after a large library migration.
Second, try resetting the Steam runtime with: steam-runtime --reset
This rebuilds the container environment Steam uses to isolate itself from the host system. It preserves your games and settings but regenerates the runtime libraries, which can fix breakage caused by a botched system update or a conflict with a newer glibc. The Arch Wiki thread on this topic notes that steam and steam-native-runtime are different packages with different behavior; if one fails, try the other before concluding Steam is broken.
If none of that works, back up your steamapps/common folder and your appmanifest files, then fully uninstall and reinstall Steam. Copying just the common folder and the appmanifest_[appid].acf files for each game lets Steam rediscover your library without re-downloading hundreds of gigabytes.
Fix 9: Distro-Specific Notes (Ubuntu, Arch, Fedora, Linux Mint)
Each distribution has its own quirks that affect Proton. If you’ve tried the general fixes above and are still stuck, the issue may be specific to your distro’s package choices.
Ubuntu and Linux Mint require the multiverse repository for Steam and the proprietary NVIDIA driver, and i386 architecture must be enabled for 32-bit library support. Run sudo dpkg --add-architecture i386 and then sudo apt update before installing Steam. On Linux Mint specifically, if you’re on an older base, consider switching to the Edge release for a newer Mesa stack.
Arch and EndeavourOS give you the newest everything, which is great until a bleeding-edge update breaks something. If games that worked yesterday suddenly don’t, check the Arch Linux news page for recent package updates that might have caused a regression. Install steam (not steam-native-runtime unless you know why you want it) and enable the multilib repo for 32-bit libraries. The AUR package proton-ge-custom-bin is the easiest way to get Proton-GE on Arch.
Fedora requires the RPM Fusion repository for Steam and proprietary media codecs. Fedora’s SELinux policy can also occasionally interfere with Proton’s file operations inside the prefix. If logs show permission errors that don’t make sense, try temporarily setting SELinux to permissive mode with sudo setenforce 0 to test whether SELinux is the culprit. If it is, write a proper policy rather than leaving SELinux disabled.
Fix 10: Try PortProton or Lutris as a Fallback Launcher
Sometimes the problem isn’t your configuration but a limitation of the Proton version bundled with Steam. Two community launchers are worth knowing about as fallbacks when Steam’s Proton won’t cooperate.
PortProton is a remarkably user-friendly wrapper that ships its own Wine-GE build and pre-configures environment variables, DXVK, VKD3D, and gamescope in a way that just works for many titles. Forum reports from users who tried everything inside Steam consistently mention that PortProton launched the same game without modification. It’s worth trying before giving up on a game entirely.
Lutris is the more established option and has community-maintained install scripts for thousands of games. If a game has a known-good configuration on Lutris, using that script can bypass whatever is breaking inside your Steam Proton prefix. Lutris also makes it easy to manage multiple Wine versions side by side, which is useful for older games that need a specific Wine build.
Heroic Games Launcher is another option if your game is on GOG or the Epic Games Store, and it handles its own Wine and Proton versioning. All three launchers can coexist with Steam without interfering with each other, so trying one doesn’t commit you to abandoning your Steam setup.
Frequently Asked Questions
Why won’t my Steam game launch on Linux?
The most common causes are using the wrong GPU on hybrid laptops, missing or outdated Vulkan drivers, a corrupted game install, an incompatible Proton version, or game files stored on an NTFS partition that doesn’t support the permissions Proton needs. Start by identifying whether the game fails silently, crashes on launch, or gets stuck on Preparing to Launch.
How can I make incompatible Steam games work with Proton?
Enable Steam Play for all titles in Steam Settings, then force a specific Proton version in the game’s Compatibility properties. Try Proton Experimental first, then Proton-GE for community patches. Check ProtonDB for game-specific launch options and known-working Proton versions reported by other Linux players.
How do I enable Proton Linux compatibility with Steam games?
Open Steam Settings, go to Compatibility, and check Enable Steam Play for all other titles. Select a Proton version from the dropdown. Restart Steam. Every Windows-only game in your library will now attempt to launch through Proton.
What can I do if my Steam game refuses to launch?
Follow the decision tree: first confirm the correct GPU is active with mangohud, then verify game file integrity, then switch Proton versions, then enable PROTON_LOG=1 to read the error. If the game is on NTFS, move it to ext4. For Flatpak Steam, use Flatseal to grant filesystem access.
How to fix Steam game running but not opening?
If Steam shows the game as running but no window appears, the process is crashing before it can render. This is usually a Vulkan driver issue or a wrong-GPU problem on hybrid laptops. Add prime-run or DRI_PRIME=1 to launch options, update or roll back your GPU drivers, and check the PROTON_LOG output for the specific Vulkan or DLL error.
Why is Steam not letting me launch a game?
Steam itself may be blocking the launch if the download cache is corrupt, the Steam runtime is damaged, or you’re on the Steam beta branch which has known bugs with environment variables in launch options. Try clearing the download cache, running steam-runtime u002du002dreset, or opting out of the Steam beta.
Conclusion: A Repeatable Workflow for Any Proton Failure
Every time a Steam game won’t launch through Proton on Linux, run through the same mental checklist. Identify the symptom branch first: silent failure, crash, “Preparing to Launch” hang, or black screen. Then apply the fixes that map to that branch before trying anything else. This approach saves you from randomly toggling settings for hours.
The five highest-impact fixes, in order, are: confirm the right GPU is active, verify your Vulkan drivers are working, switch Proton versions including Proton-GE, read the PROTON_LOG to find the actual error, and make sure your games are on an ext4 filesystem rather than NTFS or exFAT. If all of those fail, PortProton and Lutris are your fallback launchers.
One last resource: always check ProtonDB for your specific game. Other Linux players report exactly which Proton version, launch options, and workarounds they used to get it running, and that single page can save you an entire evening of trial and error. The Linux gaming community has already solved most problems; your job is just to find the solution that matches your symptom.