Skip to content

Steam Controller 2026 no longer works in games since firmware update #13251

@jonny-bates

Description

@jonny-bates

steam-logs.tar.gz

Your system information

  • Steam client version (build number or date): 1779479049
  • Distribution (e.g. Ubuntu): Nobara 43 KDE (Fedora-based), kernel 6.x (AMD 7800X3D / RX 7900 XTX)
  • systemd 258 (258.7-1.fc43)
  • Opted into Steam client beta?: Yes
  • Have you checked for system updates?: Yes
  • Steam Logs: [attach steam-logs.tar.gz]
  • GPU: AMD RX 7900 XTX

Please describe your issue in as much detail as possible:

The new Steam Controller (2026, serial FXA99548032B9, firmware 0x6A1091CE / May 22 2026) works correctly in Steam's UI, Big Picture Mode, and the controller test screen, but games never receive gamepad input. The controller remains in desktop mode (keyboard/mouse emulation) when a game is launched.

Root cause identified: Steam is saving triton controller configs under neptune filenames, and generating an empty triton configset.

Specifically:

  1. Config identity mismatch: When selecting a gamepad template for a game (e.g. Diablo IV, AppId 2344520), Steam writes the config to controller_neptune.vdf in the per-game config folder. However, the file contents have "controller_type" "controller_triton". At runtime, Steam looks for controller_triton.vdf and doesn't find it.

  2. Empty triton configset: configset_controller_triton.vdf is generated empty ("controller_config" { }), while game config entries are written into configset_controller_neptune.vdf instead. Steam reads the triton configset at runtime (logged as "found ibex config set file on-disk"), finds no game entries, and falls back to AppId 413080 (desktop config).

  3. Action set activation failure: When the game does appear in the controller log, the config loads and gets a cache hit, but immediately fails:

Add to Config Cache Request 0 2344520
Controller 0 mapping uses xinput : false
HID: Add to Config Cache - full cache hit 0 2344520
Deleting cache entry 5
Deleting cache entry 4
No cached sticky mapping in ActivateActionSet.
  1. Deck controller misidentification: Steam repeatedly logs Deck Controller PCB Serial# invalid: NA (9+ times per connection event), suggesting the client is attempting to query Steam Deck-specific hardware identifiers from the new controller.

  2. Puck dual-registration: When connected via the charging puck wirelessly, both the puck (Controller 4, serial FXB9954802CD1) and the controller (Controller 1, serial FXA99548032B9) register simultaneously, causing config thrashing between AppIds 413080 (desktop) and 443510 (Steam button chord). This may be related to Steam Controller conflicting with Steam Deck #13243.

Tested via USB cable (no puck) and wirelessly via puck — same result. Puck was eliminated as a variable by testing USB direct. Adding the input group and confirming correct udev rules (60-steam-input.rules) and uinput module loading did not resolve the issue.

Steps for reproducing this issue:

  1. Connect new Steam Controller (2026) to a desktop Linux PC via USB cable
  2. Open Steam (beta client), confirm controller is detected in Settings → Controller
  3. In Big Picture, set a gamepad template for any game (e.g. Diablo IV)
  4. Observe that the config is saved to controller_neptune.vdf with controller_type set to controller_triton
  5. Launch the game — controller remains in desktop mode, no gamepad input reaches the game
  6. Check configset_controller_triton.vdf — it is empty or missing game entries

Attachments:

  • controller_neptune.txt (vdf) from 2344520 config folder (shows controller_type mismatch)
  • configset_controller_neptune.vdf (has game entries that should be in triton)
  • controller.txt log (shows runtime activation failure and Deck PCB serial spam)

controller.txt

controller_neptune.txt

configset_controller_neptune.txt

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions