Summary
Current Linux AppImage still aborts WebKitWebProcess (SIGABRT / SI_TKILL) about 3 seconds after launch on Arch (Omarchy). The abort is RELEASE_ASSERT(audioSink) in MediaPlayerPrivateGStreamer::createAudioSink().
This is the failure block/buzz#2176 was meant to fix. The GST shim is present in this AppImage (usr/bin/buzz-desktop → buzz-desktop.bin) and still the renderer aborts.
Environment
- Buzz Linux AppImage, extracted to
~/.local/opt/buzz/squashfs-root (binaries dated 2026-08-22; desktop Exec=buzz-desktop)
- OS: Omarchy 4.0.0 (Arch Linux)
- Session: Hyprland / Wayland
- GPU: NVIDIA GeForce RTX 3060 Ti, driver 610.57.04
- Host GStreamer: 1.28.6 with
gst-plugins-base / gst-plugins-good
- Bundled WebKitGTK 4.1 GNU build-id
2594e661ffa45aa2a47f83c2f2f10caaec9e273f (same build as Berd 0.6.2)
Not OOM (~8 GiB available). Launch: gtk-launch Buzz.desktop at 12:19:30 NZST; abort at 12:19:33 (PID 123026, 2026-08-25).
Abort site (from the core)
WTFCrashWithInfo in:
- file:
Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
- function:
GstElement *WebCore::MediaPlayerPrivateGStreamer::createAudioSink()
- line: 1585
Offsets match exactly: libwebkit2gtk-4.1.so.0 + 0x7153cf (WTFCrashWithInfo) and + 0x335e100 (createAudioSink). Crashing thread held the audio-sink role "video".
The core also contains WebKit's GStreamer element %s not found. Please install it plus the autoaudiosink name.
usr/lib/gstreamer and usr/lib/gstreamer-1.0 still do not exist in the AppImage. AppRun.wrapped still injects:
GST_PLUGIN_SYSTEM_PATH=%s/usr/lib/gstreamer:%s
GST_PLUGIN_SYSTEM_PATH_1_0=%s/usr/lib/gstreamer-1.0:%s
Why this is not just "me-too" on #2176
#2176 installed a shim that unsets GST_PLUGIN_* values pointing into $APPDIR after AppRun.wrapped. That shim is on disk here and Buzz.desktop Exec=buzz-desktop, so the launch chain should be AppRun → AppRun.wrapped → shim → buzz-desktop.bin.
The web process still died at the same createAudioSink assert #2176 described (autoaudiosink / media-pipeline init → SIGABRT → blank window).
Possible remaining holes (I cannot tell which from this core alone):
- The WebKit child does not inherit the cleaned env (or WebKit resets plugin paths).
- Bundled Ubuntu WebKit still links a GStreamer whose compiled-in default plugin path is
/usr/lib/x86_64-linux-gnu/gstreamer-1.0, which does not exist on Arch, so unsetting the linuxdeploy override is not enough.
createPlatformAudioSink() still returns NULL even when host plugins are visible (instantiation failure, not search-path).
Expected
Launching the AppImage on Arch should not abort the renderer when the UI creates a media player. Missing sink should fail the media element.
Suggested direction
Confirm whether WebKitWebProcess actually sees host autoaudiosink after the shim (GST_DEBUG=2 / gst-inspect-1.0 autoaudiosink under the AppImage env vs inside the web process). If the compiled-in default is still Debian multiarch, the shim needs to set GST_PLUGIN_SYSTEM_PATH_1_0 to the host plugin dir (/usr/lib/gstreamer-1.0 on Arch), not only unset the bundle path.
Berd 0.6.2 has the same WebKit build and no shim at all; same abort. Filing that on block/berd separately.
Not this bug
Summary
Current Linux AppImage still aborts
WebKitWebProcess(SIGABRT/SI_TKILL) about 3 seconds after launch on Arch (Omarchy). The abort isRELEASE_ASSERT(audioSink)inMediaPlayerPrivateGStreamer::createAudioSink().This is the failure block/buzz#2176 was meant to fix. The GST shim is present in this AppImage (
usr/bin/buzz-desktop→buzz-desktop.bin) and still the renderer aborts.Environment
~/.local/opt/buzz/squashfs-root(binaries dated 2026-08-22; desktopExec=buzz-desktop)gst-plugins-base/gst-plugins-good2594e661ffa45aa2a47f83c2f2f10caaec9e273f(same build as Berd 0.6.2)Not OOM (~8 GiB available). Launch:
gtk-launch Buzz.desktopat 12:19:30 NZST; abort at 12:19:33 (PID 123026, 2026-08-25).Abort site (from the core)
WTFCrashWithInfoin:Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cppGstElement *WebCore::MediaPlayerPrivateGStreamer::createAudioSink()Offsets match exactly:
libwebkit2gtk-4.1.so.0 + 0x7153cf(WTFCrashWithInfo) and+ 0x335e100(createAudioSink). Crashing thread held the audio-sink role"video".The core also contains WebKit's
GStreamer element %s not found. Please install itplus theautoaudiosinkname.usr/lib/gstreamerandusr/lib/gstreamer-1.0still do not exist in the AppImage.AppRun.wrappedstill injects:Why this is not just "me-too" on #2176
#2176 installed a shim that unsets
GST_PLUGIN_*values pointing into$APPDIRafterAppRun.wrapped. That shim is on disk here andBuzz.desktopExec=buzz-desktop, so the launch chain should beAppRun → AppRun.wrapped → shim → buzz-desktop.bin.The web process still died at the same
createAudioSinkassert #2176 described (autoaudiosink/ media-pipeline init → SIGABRT → blank window).Possible remaining holes (I cannot tell which from this core alone):
/usr/lib/x86_64-linux-gnu/gstreamer-1.0, which does not exist on Arch, so unsetting the linuxdeploy override is not enough.createPlatformAudioSink()still returns NULL even when host plugins are visible (instantiation failure, not search-path).Expected
Launching the AppImage on Arch should not abort the renderer when the UI creates a media player. Missing sink should fail the media element.
Suggested direction
Confirm whether
WebKitWebProcessactually sees hostautoaudiosinkafter the shim (GST_DEBUG=2/gst-inspect-1.0 autoaudiosinkunder the AppImage env vs inside the web process). If the compiled-in default is still Debian multiarch, the shim needs to setGST_PLUGIN_SYSTEM_PATH_1_0to the host plugin dir (/usr/lib/gstreamer-1.0on Arch), not only unset the bundle path.Berd 0.6.2 has the same WebKit build and no shim at all; same abort. Filing that on
block/berdseparately.Not this bug
.deb+ system webkit 2.52.3