Skip to content

Failed to start recording. Could not start video source #1001

Description

@pannet1

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-close

OS: Debian latest
built using npm build:linux

Activity

  1. Adedamolas commented on Sep 19, 2026

    @Adedamolas

    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 the screen:linux-portal pseudo-source and calls getDisplayMedia(). The main-process setDisplayMediaRequestHandler then 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:0 only works with the Wayland/PipeWire portal. On X11, desktopCapturer source 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:0 and throws NotReadableError: 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 process errors 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 shows

    No 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 appends use-gl=egl. This Electron build only allows egl-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 reports ANGLE (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 in main.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.asar locally, 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 getUserMedia with the real source ID and works on X11.

    Related: #364

  2. hawks-vision commented on Sep 25, 2026

    @hawks-vision

    Confirming on Kali Linux rolling (XFCE, X11, NVIDIA RTX 3050, driver 550) with the official 1.4.0 AppImage. Same screen:0:0 → NotReadableError failure, 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:

    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

  3. 0xSamrat commented on Sep 28, 2026

    @0xSamrat

    Tested PR #1002 on Ubuntu 24.04 X11 (RTX 3050 + AMD). It fixes this. Details in my review on #1002.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions