Software 44669 Published by

Bottles 65.2 dropped today with a critical patch that stops the app from incorrectly advertising every Windows program inside a bottle as a Steam app, a behavior that broke launchers like Goddess of Victory Nikke. The update also enables Steam Runtime 4 support for Proton 11+ runners, resolving compatibility crashes where newer GE Proton builds incorrectly fell back to older containers. Released just 30 hours after the massive 65.0 flagship sprint, the patch strips out aggressive auto-injection of fake Steam IDs while incorporating verified community contributions. You can grab the update directly from Flathub right now to keep your Linux gaming stack running smoothly.



Bottles 65.2 ships with Steam advertising bug fix and Proton 11+ runtime support

The Linux gaming tool catches fire again just 30 hours after its biggest release yet, addressing a critical launcher crash and adding modern SteamRT compatibility.

Bottles 65.2 dropped this afternoon with two changes. The first is a critical bug fix that stops the app from incorrectly advertising every Windows program inside a bottle as a Steam app. That behavior broke Goddess of Victory Nikke and likely plenty of other non-Steam launches. The second change adds Steam Runtime 4 support for Proton 11+ runners. The release landed just one day after the massive Bottles 65.0 flagship update.

If you kept score, the August 2026 sprint has been relentless. Sixty-five point zero shipped yesterday around 09:25 UTC with Soda v11.0-4 as the bundled runner, D7VK, lsfg-vk frame generation, USB passthrough, and over a hundred other changes. Mirko Brombin, the project's sole core developer, called Soda "the best runner Bottles has ever had." A hotfix followed at 17:56 UTC that same day to patch a GameMode initialization crash. Then came 65.2 at roughly 16:22 UTC on August 5. Two hotfixes in under thirty hours for a project that ships via Flatpak and runs on Python and LibAdwaita. The pace is impressive, though it means this week's release cycle reads more like a fire drill than a standard sprint.

The Steam advertising bug that broke non-Steam games

The bug surfaced when user @ranrfhsdufgsdf reported that updating to 65.0 crashed the Nikke launcher. The game had been running flawlessly on 64.1 with Steam Runtime explicitly disabled. With the update, the launcher suddenly tried to perform a "Steam quick login" that the game doesn't support. The user spent two hours swapping DLLs and stripping Valve registry keys before rolling back. Reverting immediately fixed it.

The root cause was straightforward. Bottles 65.0 began automatically injecting a SteamAppId environment variable and a fake steam_app_<id> StartupWMClass into every desktop entry created for programs running on Soda, Proton, or Wine-GE runners. It happened regardless of whether you actually had Steam installed, whether the bottle used the Steam Runtime, or whether the game even supported Steam integration. The code computed a SHA1-based fake ID and overrode the native window class for whatever game.exe was running.

The 65.2 commit strips that behavior out. Desktop entries no longer get the fake Steam window class unless you explicitly set a SteamAppId for that specific program. The environment variable is no longer injected on launch. Programs on Soda, Proton, or Wine-GE runners keep their native executable-based window class instead. The diff touched four files and netted a 103-line reduction in code complexity. Tests were rewritten to verify that Proton and Soda runners skip the automatic injection entirely.

If you're launching through Steam itself, the existing SteamAppId mechanism still works exactly as it should. This fix only stops Bottles from guessing when it shouldn't be advertising Steam integration. Users who manually set a custom SteamAppId will still have it honored.

Steam Runtime 4 gets official support

The second change tackles a compatibility gap that's gotten bigger as Proton 11+ goes mainstream. Pull request #4630, contributed by first-time developer @alairon, adds recognition for Steam Runtime 4. The previous versions of Bottles only knew how to look for older Scout, Sniper, and Soldier runtimes. When a newer Proton build requested SteamRT4, the manager fell back to the incompatible Scout 1.0 container.

Newer Proton runners specify their desired runtime through a toolmanifest.vdf file containing a require_tool_appid directive pointing to appID 4183110. Bottles 65.0 and 65.1 simply ignored that field. The fix teaches the manager to parse the manifest and route to the correct runtime when requested.

Why does this matter? Runtime mismatches cause dependency conflicts, missing libraries, and outright crashes. GE Proton 11 has shipped, dwproton is following close behind, and the Steam Deck pulls from these exact containers. @alairon verified the change by launching a GE Proton 11-3 bottle with Steam Runtime enabled and confirming it correctly loaded SteamLinuxRuntime_4/_v2-entry-point. The merge came through with no review comments, and the contributor noted that the runtime shares a similar structure to Sniper and Soldier, so they don't expect new bugs from the change.

It's a pragmatic update for a tool that sits at the intersection of Valve's gaming stack and third-party Linux compatibility layers. Brombin closed the Steam advertising issue and merged the runtime PR on the same day. Keep in mind that Bottles ships exclusively through Flathub as a Flatpak, so you'll want to check your package manager for the update rather than hunting for a standalone installer. Head here to grab the full changelog and browse the commit history.

The 65.x cycle proved that the project can iterate fast when its core developer is driving. The trade-off for an aggressive auto-detection feature is a couple of broken launchers until someone spots the regression. At this point, the Steam advertising behavior probably made sense for 80 percent of users. It just happened to break the other 20 percent pretty hard.

Head here to grab the update from Flathub.