protonscr

steamwebhelper crash-loops on startup — CEF CHECK failure in cef_initialize (Bazzite/Fedora 43, NVIDIA)

steamopen Distro Family: FedoraWeb Component
ValveSoftware/steam-for-linux#12962 · opened 2026-03-07 by m-daliojbwq · updated 2026-03-07 · 0 comments · github
Mm-daliojbwq 2026-03-07 github

System Info

  • OS: Bazzite 43.20260303 (Fedora 43 Atomic, Kinoite variant)
  • Kernel: 6.17.7
  • GPU: NVIDIA GeForce RTX 3090, driver 580.95.05
  • glibc: 2.42-10.fc43 (host), 2.35 (inside PV/sniper)
  • Steam build: 1769025840
  • CEF: 126.0.6478.183
  • PV/SLR: pressure-vessel 0.20251201.0, steamrt3c 3c.0.20251202.187499

Description

Steam has never worked on this system since Bazzite installation. steamwebhelper crash-loops every ~10 seconds, the "steamwebhelper is not responding" dialog appears, and the Steam UI never shows. This occurs with both the native RPM package and the Flatpak, with identical errors.

Errors (from webhelper-linux.txt)

[ERROR:context.cc(107)] The browser_subprocess_path directory (./steamwebhelper) is not an absolute path. Defaulting to empty.
[ERROR:check.cc(376)] Check failed: false. NOTREACHED log messages are omitted in official builds. Sorry!
[ERROR:icu_util.cc(223)] Invalid file descriptor to ICU data received.

Root Cause Analysis

Extensive debugging with an LD_PRELOAD shim that hooks cef_initialize revealed the following chain of failures:

  1. context.cc relative path rejection: Steam sets CefSettings.browser_subprocess_path to "./steamwebhelper" (relative). CEF's context.cc calls base::MakeAbsoluteFilePath() (which uses realpath()), and this fails inside the pressure-vessel bubblewrap container. The path is cleared, cascading to further failures.

  2. ICU data failure: With browser_subprocess_path empty, PathService::Get() cannot resolve DIR_ASSETS. The ICU initialization code at icu_util.cc finds g_icudtl_pf == -1 (no file descriptor) and fails.

  3. Resource bundle failure: After fixing #1 and #2 via the shim (setting absolute paths and patching the ICU FD), CEF gets further — cef_log.txt is created, crash reporting initializes — but resource_bundle.cc(1042) reports Failed to load .../chrome_100_percent.pak. The pak file exists and is valid (V5 format) but is never opened (confirmed via open64/openat64/syscall(SYS_openat) hooks — zero pak file open calls occur).

  4. Fatal CHECK: cef_initialize never returns. A signal handler caught SIGTRAP (signal 5, si_code=128/SI_KERNEL) at libcef.so+0x680848f, which is an int3; ud2 (IMMEDIATE_CRASH()) sequence. This is a CHECK failure (not DCHECK — unaffected by --disable-features=DcheckIsFatal). The crash is 100% reproducible at this exact address on every launch.

Key Evidence

  • Identical crash in native RPM and Flatpak — rules out host glibc as the cause. The Flatpak uses its own bundled runtime with glibc 2.35.
  • realpath("./steamwebhelper") works on the host but apparently fails inside the PV bubblewrap container.
  • The shim fixes ICU and path issues but a CHECK deeper in CEF initialization still kills the process.
  • /home is a symlink to /var/home on Fedora Atomic/Bazzite — this may affect path resolution inside PV's bind mounts.

Reproduction

  1. Install Bazzite 43.20260303 nvidia stable
  2. Launch Steam (native or Flatpak)
  3. steamwebhelper crash-loops, "not responding" dialog appears

Shim debug log (showing fixes applied before fatal crash)

SHIM: cef_initialize hooked! settings->size=448
SHIM: Set browser_subprocess_path = ~/.local/share/Steam/ubuntu12_64/steamwebhelper
SHIM: Set resources_dir_path = ~/.local/share/Steam/ubuntu12_64
SHIM: Set locales_dir_path = ~/.local/share/Steam/ubuntu12_64/locales
SHIM: Set framework_dir_path = ~/.local/share/Steam/ubuntu12_64
SHIM: FATAL SIGNAL 5 (si_code=128 si_addr=(nil))

CEF log (with shim — gets further than without)

[WARNING:chrome_main_delegate.cc(748)] This is Chrome version 126.0.6478.183 (not a warning)
[INFO:crash_reporting.cc(238)] Crash reporting enabled for process: browser
[WARNING:task_impl.cc(31)] No task runner for threadId 0
[ERROR:resource_bundle.cc(1042)] Failed to load .../chrome_100_percent.pak
Some features may not be available.

Related Issues

  • #12624 (steamwebhelper start loop on Bazzite with B580)
  • #12444 (Steam cannot open, steamwebhelper keeps crashing, Fedora 43)
  • #10547 (Steam with symlinks crashing in steamwebhelper)

Nothing extracted yet.