Skip to content

SteamOS beta Display settings crashes when DisplayManager.GetState omits game_resolution_override_default #13349

Description

@JohnnySun

Your system information

  • Steam client version: beta build 1782517397
  • SteamOS version: SteamOS 3.8.11, build 20260620.1
  • Steam Runtime Version: Steam Runtime 3c / sniper, as launched by steamwebhelper
  • Distribution: SteamOS Holo
  • Opted into Steam client beta?: Yes, steamdeck_publicbeta
  • GPU: Intel Lunar Lake iGPU, Mesa 25.3.0
  • Hardware: MSI Claw 8 AI+ A2VM
  • Display: internal eDP-1, EDID vendor/model/product CSW / PN8007QB1-2 / 0x0801, native 1920x1200

Please describe your issue in as much detail as possible:

On Steam beta build 1782517397, opening the SteamOS Big Picture Settings > Display page crashes the page with:

TypeError: Cannot read properties of undefined (reading 'width')

The visible error page reports:

Error Reference: Shared SteamUI_10780134_89606695adcf6ee7

Using the Steam WebHelper CDP console, SteamClient.System.DisplayManager.GetState() succeeds, but its protobuf reply omits game_resolution_override_default:

field 4 game_resolution_override_native = 1920x1200
field 5 game_resolution_override_default = <missing>

The beta Steam UI bundle then reads the missing field without a guard in the Display settings component:

TypeError: Cannot read properties of undefined (reading 'width')
    at j (https://steamloopback.host/chunk~2dcc5aaf7.js?...:1:8081620)

From the minified bundle, the crashing j() function reads l.data.width, where l is the selector for game_resolution_override_default.

The expected default value on this device is 1920x1200. Steam's native systemdisplaymanager.txt log shows the native path can compute it:

GetGameResolutionOverride: override: 'Default'
Using maximum game resolution: screen resolution: 1920x1200

Steam stable build 1782533657 on the same device also omits game_resolution_override_default from DisplayManager.GetState(), but the stable Display settings UI does not unconditionally read the missing field and renders successfully. The regression appears to be that the beta UI now assumes game_resolution_override_default is always present, while the native DisplayManager reply can still omit it.

While testing, I also added a gamescope known-display profile for this MSI Claw 8 AI+ panel. That fixes gamescope's panel identification and refresh-rate list, and is being proposed separately in ValveSoftware/gamescope#2236. It does not fix this Steam beta UI crash because the beta crash is caused by the missing DisplayManager.GetState() field described above.

Steps for reproducing this issue:

  1. Use a SteamOS gamescope session on a non-Deck handheld where DisplayManager.GetState() does not include game_resolution_override_default.
  2. Opt into Steam beta build 1782517397.
  3. Restart Steam.
  4. Open Big Picture Settings > Display.
  5. Observe the Display page error:
TypeError: Cannot read properties of undefined (reading 'width')

Expected result

The Display settings page should render even when game_resolution_override_default is absent. Either:

  • DisplayManager.GetState() should populate game_resolution_override_default with the screen-resolution default when gamescope_game_resolution_global is Default, or
  • the Display settings UI should fall back to the current/native display resolution when this field is absent.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    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