Repository navigation
Failed to start recording. Could not start video source #1001
Description
Activity
Same here on v1.4.0 (Linux AppImage, Pop!_OS / GNOME on X11, single monitor). I tracked down the root cause.
Root cause:
When no source is selected in the HUD, the renderer falls back to thescreen:linux-portalpseudo-source and callsgetDisplayMedia(). The main-processsetDisplayMediaRequestHandlerthen does this on Linux, regardless of session type:js
if (process.platform === "linux" && (selectedId === "screen:linux-portal" || !selectedId)) {
callback({ video: { id: "screen:0:0", name: "Entire screen" } });
return;
}screen:0:0only works with the Wayland/PipeWire portal. On X11,desktopCapturersource IDs are based on the RandR monitor, e.g. on my machine:"screen:411:0 | Screen 1 (Primary)"
So Chromium can't open
screen:0:0and throwsNotReadableError: Could not start video source.Verification
Running inside the HUD window via DevTools:Call & Result
|---|---|
|getUserMedia({ chromeMediaSourceId: "screen:0:0" })| ❌NotReadableError: Could not start video source|
|getUserMedia({ chromeMediaSourceId: "screen:411:0" })| ✅ 1920×1080 @ 60fps |
|getDisplayMedia()(after the patch below) | ✅screen:411:0, 1920×1080 |The
Requested GL implementation (gl=egl-gles2…)/Exiting GPU processerrors in the log are a second, separate bug. They don't cause the capture failure (capture succeeds with the GPU disabled once the source ID is correct). But they break the editor: after recording, it showsNo supported Pixi preview renderer was available. Attempted: webgl: CanvasRenderer is not yet implemented | webgpu: CanvasRenderer is not yet implemented
The cause is in
mE(): on X11, Recordly appendsuse-gl=egl. This Electron build only allowsegl-angle, so the GPU process exits, Chromium falls back to--use-gl=disabled, and WebGL/WebGPU are unavailable. After dropping that switch on Linux (useGl: undefined), the GPU process starts normally. WebGL reportsANGLE (Intel, Mesa Intel(R) UHD Graphics 620, OpenGL 4.6), WebGPU gets an adapter, and the editor preview renders.Fix:
Only use the portal path on Wayland.bx()(the existing Wayland session check inmain.cjs) already does this:- if (process.platform === "linux" && (selectedId === "screen:linux-portal" || !selectedId)) { + if (process.platform === "linux" && isWaylandSession(process.env) && (selectedId === "screen:linux-portal" || !selectedId)) {
On X11 it then falls through to
desktopCapturer.getSources()and picks the real screen.And for the editor, stop forcing EGL on X11:
- linux: { useGl: shouldUseEgl(env) ? "egl" : undefined, disableFeatures: [...] } + linux: { useGl: undefined, disableFeatures: [...] }
I patched both into the built
app.asarlocally, and recording and editing now both work.It looks like several open PRs already address this (#678, #705, #768, #905, #925). Could one of them get merged? Right now the Linux release is unusable on X11 out of the box.
Workaround for other users
Explicitly select a screen/window in the HUD source picker before recording. That path calls
getUserMediawith the real source ID and works on X11.Related: #364
Reacted by pannet1Confirming on Kali Linux rolling (XFCE, X11, NVIDIA RTX 3050, driver 550) with the official 1.4.0 AppImage. Same
screen:0:0→NotReadableErrorfailure, and @Adedamolas's analysis matches what I found: gating the portal path on the existing Wayland session check fixes it here too.Two related things I ran into once X11 capture worked:
- With the webcam enabled, auto-zoom and cursor effects were empty. The cursor telemetry gets saved next to the webcam file instead of the screen recording. Reported in Cursor telemetry is saved next to the webcam file, so the screen recording has none (auto-zoom/cursor effects missing when webcam is on) #1038, fix in fix(recording): keep cursor telemetry for the screen recording when a webcam companion is stored #1039.
- The HUD menus are clipped on Linux (Ubuntu 26.04: Recordly dropdown menus are hidden behind the recording bar #944).
Until a fix is merged, I put these workarounds into a small install script for the official 1.4.0 AppImage (checksum-verified, unofficial, not affiliated with Recordly): https://github.com/InverseZeroSecurity/linux-x11-recorder-fix
Reacted by pannet1- added a commit that references this issue
on Sep 25, 2026
After the countdown i got Failed to start recording. Could not start video source
./Recordly-linux-x64.AppImage [91539:0919/145329.052797:ERROR:ui/gl/init/gl_factory.cc:110] Requested GL implementation (gl=egl-gles2,angle=none) not found in allowed implementations: [(gl=egl-angle,angle=default)]. [91539:0919/145329.065581:ERROR:components/viz/service/main/viz_main_impl.cc:190] Exiting GPU process due to errors during initialization [media-server] Listening at http://127.0.0.1:33027 [91555:0919/145329.199111:ERROR:ui/gl/init/gl_factory.cc:110] Requested GL implementation (gl=egl-gles2,angle=none) not found in allowed implementations: [(gl=egl-angle,angle=default)]. [91555:0919/145329.200152:ERROR:components/viz/service/main/viz_main_impl.cc:190] Exiting GPU process due to errors during initialization RECORDINGS_DIR: /home/pannet1/.config/Recordly/recordings User Data Path: /home/pannet1/.config/Recordly [91585:0919/145329.331074:ERROR:ui/gl/init/gl_factory.cc:110] Requested GL implementation (gl=egl-gles2,angle=none) not found in allowed implementations: [(gl=egl-angle,angle=default)]. [91585:0919/145329.331952:ERROR:components/viz/service/main/viz_main_impl.cc:190] Exiting GPU process due to errors during initialization [91486:0919/145329.346417:ERROR:dbus/object_proxy.cc:572] Failed to call method: org.freedesktop.DBus.Properties.Get: object_path= /org/freedesktop/portal/desktop: org.freedesktop.DBus.Error.InvalidArgs: No such interface “org.freedesktop.portal.FileChooser” [91592:0919/145329.354051:ERROR:ui/gl/init/gl_factory.cc:110] Requested GL implementation (gl=egl-gles2,angle=none) not found in allowed implementations: [(gl=egl-angle,angle=default)]. [91592:0919/145329.354966:ERROR:components/viz/service/main/viz_main_impl.cc:190] Exiting GPU process due to errors during initialization [PERF:MAIN] HUD Window: did-finish-load in 321ms [PERF:MAIN] HUD Window: renderer-ready in 476ms [91486:0919/145329.695923:ERROR:ui/gfx/x/atom_cache.cc:234] Add _NET_RESTACK_WINDOW to kAtomsToCache Checking for update Update for version 1.4.0 is not available (latest version: 1.4.0, downgrade is disallowed). [91486:0919/145759.798929:ERROR:content/browser/browser_main_loop.cc:274] GLib-GObject: ../../../gobject/gsignal.c:2699: instance '0x37c01c09dc0' has no handler with id '1955' [main] Closing HUD window via hud-overlay-closeOS: Debian latest
built using npm build:linux