The built-in screencast utility hangs
Most likely related to #3618 (closed). Occurs on both GNOME 3.38 and 40.
How to reproduce
Prerequisites
You need an clean installation of Fedora Minimal. Install
gnome-shell
and optionally gdm
.
1. Clean installation
Upon pressing the screencast key combination nothing happens and the following error is produced in the logs:
Feb 21 21:32:26 localhost.localdomain gjs[5489]: JS ERROR: Error: Argument filename may not be null
_getAbsolutePath@resource:///org/gnome/Shell/Screencast/js/screencastService.js:284:19
_generateFilePath@resource:///org/gnome/Shell/Screencast/js/screencastService.js:333:21
ScreencastAsync@resource:///org/gnome/Shell/Screencast/js/screencastService.js:355:31
_handleMethodCall@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:371:35
_wrapJSObject/<@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:404:34
run@resource:///org/gnome/Shell/Screencast/js/dbusService.js:177:20
main@resource:///org/gnome/Shell/Screencast/js/main.js:10:13
run@resource:///org/gnome/gjs/modules/script/package.js:222:19
start@resource:///org/gnome/gjs/modules/script/package.js:206:8
@/usr/share/gnome-shell/org.gnome.Shell.Screencast:1:17
2. GNOME Desktop group installed
Install the GNOME Desktop group via dnf install @gnome-desktop
, log
out, and log back in. Now the screencasting works as intended.
3. GNOME Desktop group removed
Remove the GNOME Desktop group via dnf erase @gnome-desktop
, log
out, and log back in. Now the screencasting indicator appears, however
recording doesn't start:
The following error is produced in the logs:
Feb 21 21:48:38 localhost.localdomain gjs[13135]: JS ERROR: Exception in callback for signal: PipeWireStreamAdded: Gst.ParseError: no element "vp8enc"
_ensurePipeline@resource:///org/gnome/Shell/Screencast/js/screencastService.js:238:30
_startPipeline@resource:///org/gnome/Shell/Screencast/js/screencastService.js:139:14
startRecording/<@resource:///org/gnome/Shell/Screencast/js/screencastService.js:169:22
_emit@resource:///org/gnome/gjs/modules/core/_signals.js:133:47
_convertToNativeSignal@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:169:19
run@resource:///org/gnome/Shell/Screencast/js/dbusService.js:177:20
main@resource:///org/gnome/Shell/Screencast/js/main.js:10:13
run@resource:///org/gnome/gjs/modules/script/package.js:222:19
start@resource:///org/gnome/gjs/modules/script/package.js:206:8
@/usr/share/gnome-shell/org.gnome.Shell.Screencast:1:17
If you attempt to stop recording or just wait 30 seconds, the indicator doesn't disappear and another error is produced:
Feb 21 21:49:07 localhost.localdomain gjs[13135]: JS ERROR: TypeError: this._pipeline is undefined
stopRecording@resource:///org/gnome/Shell/Screencast/js/screencastService.js:178:9
StopScreencastAsync@resource:///org/gnome/Shell/Screencast/js/screencastService.js:462:18
_handleMethodCall@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:371:35
_wrapJSObject/<@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:404:34
run@resource:///org/gnome/Shell/Screencast/js/dbusService.js:177:20
main@resource:///org/gnome/Shell/Screencast/js/main.js:10:13
run@resource:///org/gnome/gjs/modules/script/package.js:222:19
start@resource:///org/gnome/gjs/modules/script/package.js:206:8
@/usr/share/gnome-shell/org.gnome.Shell.Screencast:1:17