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:
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.
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.
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).
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.
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)
System Info
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)
Root Cause Analysis
Extensive debugging with an LD_PRELOAD shim that hooks
cef_initializerevealed the following chain of failures:context.ccrelative path rejection: Steam setsCefSettings.browser_subprocess_pathto"./steamwebhelper"(relative). CEF'scontext.cccallsbase::MakeAbsoluteFilePath()(which usesrealpath()), and this fails inside the pressure-vessel bubblewrap container. The path is cleared, cascading to further failures.ICU data failure: With
browser_subprocess_pathempty,PathService::Get()cannot resolveDIR_ASSETS. The ICU initialization code aticu_util.ccfindsg_icudtl_pf == -1(no file descriptor) and fails.Resource bundle failure: After fixing #1 and #2 via the shim (setting absolute paths and patching the ICU FD), CEF gets further —
cef_log.txtis created, crash reporting initializes — butresource_bundle.cc(1042)reportsFailed to load .../chrome_100_percent.pak. The pak file exists and is valid (V5 format) but is never opened (confirmed viaopen64/openat64/syscall(SYS_openat)hooks — zero pak file open calls occur).Fatal CHECK:
cef_initializenever returns. A signal handler caughtSIGTRAP (signal 5, si_code=128/SI_KERNEL)atlibcef.so+0x680848f, which is anint3; 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
realpath("./steamwebhelper")works on the host but apparently fails inside the PV bubblewrap container./homeis a symlink to/var/homeon Fedora Atomic/Bazzite — this may affect path resolution inside PV's bind mounts.Reproduction
Shim debug log (showing fixes applied before fatal crash)
CEF log (with shim — gets further than without)
Related Issues