protonscr

Controller Settings page blank for L4D2 (AppID 550) — CPrepareConfigWorker assertion failure

steamclosed
ValveSoftware/steam-for-linux#13365 · opened 2026-07-01 by codeg0blin · updated 2026-07-01 · 1 comments · github
Ccodeg0blin 2026-07-01 github

Your system information

  • Steam client version (build number or date): 1782437068
  • Distribution (e.g. Ubuntu): Linux Mint 22.3 (64 bit)
  • Kernel Version: 6.8.0-124-generic
  • Opted into Steam client beta?: Yes - same issue on main and beta
  • Have you checked for system updates?: Yes
  • Steam Logs: See gists
  • GPU: AMD

Please describe your issue in as much detail as possible:

System Info Log

Opening Controller Settings for Left 4 Dead 2 (AppID 550) shows a completely blank page, in both the desktop client and Big Picture.

Expected: the normal Steam Input controller layout/binding screen, which works correctly for other games (tested working with PEAK).

The UI is still responsive despite being blank — moving the stick triggers the "failed to navigate" sound, and pressing buttons appears to select an invisible element, so input is reaching the UI but nothing renders. Console log shows a repeated assertion failure and L4D2 falling back to an empty controller config:

src/steamUI/controllerconfig.h (126) : Assertion Failed: CPrepareConfigWorker failed for AppID 550
Loaded Config for Local Override Path for App ID 550, Controller 0: /controller_base/empty.vdf

console_log

Things ruled out during troubleshooting:

Not a controller/driver issue — same controller (generic pad identifying as Xbox Wireless Controller, Bluetooth, xpadneo driver) works fine in every other game tested
Not a Bluetooth binding/udev conflict — clean single device bind, no driver contention (confirmed via dmesg/udev rules)
Clearing htmlcache — no change
Changing UseSteamControllerConfig in localconfig.vdf (2 → 1) — no change
Not the "empty workshop config folder" bug reported in other threads — controller.txt shows HID: Add to Config Cache - full cache hit 0 550 immediately before each failure, so the config cache lookup itself succeeds. The failure happens during preparation, after a successful cache hit, not during lookup/fetch.
Also found and fixed a separate, related bug: the global Desktop Layout (Settings → Controller → Non-Game Controller Layout) had Steam Input disabled with a blank default button map. Fixed that, then retested L4D2 — no change. This looks like a second, independent instance of the same underlying CPrepareConfigWorker bug rather than one causing the other.

Only working fix found: disabling Steam Input for L4D2 entirely (Properties → Controller → Disable Steam Input) and using Source engine's native "Enable Gamepad" option instead. Works, but loses Steam Input features (rebinding, gyro, etc).

The same CPrepareConfigWorker failed assertion appears in several other unrelated reports across different games/engines/distros (Elden Ring, PAC-MAN WORLD, others — see steamcommunity.com/app/1245620/discussions/0/601906267549648398 and github.com/ValveSoftware/steam-for-linux/issues/8949), suggesting this is a client-side bug in the controller config subsystem rather than something specific to L4D2. Fixes that worked in those threads (replacing a missing workshop config file, resetting the global Desktop Layout) did not resolve this case, so there may be more than one distinct bug sharing this assertion/symptom.

Steps for reproducing this issue:

Connect a Bluetooth controller identifying as an Xbox controller (tested with a generic pad via the xpadneo driver)
Launch Left 4 Dead 2
Open Controller Settings (in-game via the Steam Input menu, or via Big Picture / desktop client Properties → Controller → View/Edit Layout) — page loads blank instead of showing the layout editor

I believe this to be a Steam issue rather than a Source Engine issue hence the post here

Kkisak-valve maintainer 2026-07-01 github

Hello @codeg0blin, this issue is already being tracked in several issue reports like #9874 / #10380 / #10785 / #10803 / #11653 / #12966.

Closing as a duplicate.

Nothing extracted yet.