Bug 2435799 - GNOME screenshot UI: “Record Screen” option missing after updating gstreamer1 to 1.28.0-1 (Fedora Rawhide)
Summary: GNOME screenshot UI: “Record Screen” option missing after updating gstreamer1...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: gstreamer1
Version: rawhide
Hardware: Unspecified
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Wim Taymans
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: BetaBlocker, F44BetaBlocker BetaFreezeException, F44BetaFreezeException
TreeView+ depends on / blocked
 
Reported: 2026-02-01 16:37 UTC by Mikhail
Modified: 2026-02-17 20:13 UTC (History)
11 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2026-02-16 16:59:11 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
system log with gstreamer1-1.26.10-2.fc44 (614.13 KB, text/plain)
2026-02-01 17:48 UTC, Mikhail
no flags Details
system log with gstreamer1-1.28.0-1.fc44 (614.96 KB, text/plain)
2026-02-01 17:49 UTC, Mikhail
no flags Details

Description Mikhail 2026-02-01 16:37:01 UTC
After updating gstreamer1 from 1.26.10-2.fc44 to 1.28.0-1.fc44 on Fedora Rawhide, the GNOME screenshot UI (Print Screen / Screenshot overlay) no longer offers “Record Screen”. Only “Take Screenshot” remains.

This correlates with org.gnome.Shell.Screencast failing to start (systemd user service exits with failure). The issue is reproducible after updating to gstreamer 1.28 and logging into a Wayland session.

Expected result:
GNOME Screenshot UI shows “Record Screen” and screen recording works.

Actual result:
“Record Screen” option is missing; org.gnome.Shell.Screencast fails to start, so screencast capability is unavailable.

Steps to reproduce:
1. Start from a working state with gstreamer1-1.26.10-2.fc44 (Rawhide, GNOME Shell 49.2, Wayland).
2. Update gstreamer1 to 1.28.0-1.fc44 (dnf upgrade on Rawhide).
3. Log out and log back in (Wayland session).
4. Press Print Screen / open GNOME screenshot UI.
5. Observe that “Record Screen” is missing.

Versions / environment BAD (after update):
$ rpm -q gnome-shell mutter gstreamer1 | sort
gnome-shell-49.2-4.fc44.x86_64
gstreamer1-1.28.0-1.fc44.i686
gstreamer1-1.28.0-1.fc44.x86_64
mutter-49.2-8.fc44.x86_64
$ echo $XDG_SESSION_TYPE
wayland


GOOD (workaround by downgrade):
$ rpm -q gnome-shell mutter gstreamer1 | sort
gnome-shell-49.2-4.fc44.x86_64
gstreamer1-1.26.10-2.fc44.i686
gstreamer1-1.26.10-2.fc44.x86_64
mutter-49.2-8.fc44.x86_64
$ echo $XDG_SESSION_TYPE
wayland

Logs (key excerpt)

On BAD state (gstreamer1 1.28.0-1), org.gnome.Shell.Screencast throws a JS exception and exits:
org.gnome.Shell.Screencast[5642]: JS ERROR: Error: Expected type utf8 for Argument 'argv' but got type 'null'
                                                             canScreencast@resource:///org/gnome/Shell/Screencast/js/screencastService.js:516:18
                                                             main@resource:///org/gnome/Shell/Screencast/js/main.js:6:28
                                                             @file:///usr/share/gnome-shell/org.gnome.Shell.Screencast:9:7



On GOOD state (gstreamer1 1.26.10-2), the screencast service starts without that JS error:
Started dbus-:1.2-org.gnome.Shell.Screencast.

Workaround:
Downgrading gstreamer1 back to 1.26.10-2.fc44 and re-logging into GNOME restores “Record Screen”.
# sudo dnf downgrade \
  gstreamer1-0:1.26.10-2.fc44 \
  gstreamer1-plugin-libav-0:1.26.10-2.fc44 \
  gstreamer1-plugin-openh264-0:1.26.10-3.fc44 \
  gstreamer1-plugins-bad-free-0:1.26.10-3.fc44 \
  gstreamer1-plugins-bad-free-libs-0:1.26.10-3.fc44 \
  gstreamer1-plugins-base-0:1.26.10-2.fc44 \
  gstreamer1-plugins-good-0:1.26.10-3.fc44 \
  gstreamer1-plugins-ugly-free-0:1.26.10-2.fc44


Screencast demonstrating missing “Record Screen” option:
https://youtu.be/RKTT5gaE2Bs

Notes:
I also tried removing GStreamer cache:
rm -rf ~/.cache/gstreamer-1.0/
No change.

Comment 1 Mikhail 2026-02-01 17:48:51 UTC
Created attachment 2127731 [details]
system log with gstreamer1-1.26.10-2.fc44

Comment 2 Mikhail 2026-02-01 17:49:44 UTC
Created attachment 2127732 [details]
system log with gstreamer1-1.28.0-1.fc44

Comment 3 Fedora Blocker Bugs Application 2026-02-01 20:02:11 UTC
Proposed as a Freeze Exception for 44-beta by Fedora user mikhail using the blocker tracking app because:

 Regression: after updating gstreamer1 to 1.28.0-1.fc44, GNOME’s default screenshot UI loses the “Record Screen” option (only “Take Screenshot” remains). This removes an important end-user workflow (screencasts for bug reports / documentation). Workaround requires downgrading gstreamer1 and re-logging, so this should be tracked as a Freeze Exception for Fedora 44 Beta.

Comment 4 Mikhail 2026-02-03 20:22:53 UTC
After the previous findings around gstreamer1, the issue now reproduces again after updating PipeWire in Fedora Rawhide/F44.

Today I received pipewire-1.5.85-3.fc44. Updating PipeWire to 1.5.85-3.fc44 also makes GNOME’s built-in screenshot/screencast UI lose the “Record Screen” option (only “Take Screenshot” remains). At this point, to restore the feature I have to downgrade both GStreamer (as previously described) and PipeWire.

Workaround that restores “Record Screen” (and screenshot UI functionality) is downgrading PipeWire back to 1.5.85-2.fc44:
# sudo dnf downgrade \
  pipewire-0:1.5.85-2.fc44 \
  pipewire-alsa-0:1.5.85-2.fc44 \
  pipewire-config-raop-0:1.5.85-2.fc44 \
  pipewire-gstreamer-0:1.5.85-2.fc44 \
  pipewire-jack-audio-connection-kit-0:1.5.85-2.fc44 \
  pipewire-jack-audio-connection-kit-libs-0:1.5.85-2.fc44 \
  pipewire-libs-0:1.5.85-2.fc44 \
  pipewire-plugin-libcamera-0:1.5.85-2.fc44 \
  pipewire-pulseaudio-0:1.5.85-2.fc44 \
  pipewire-utils-0:1.5.85-2.fc44 \
  libcamera-0:0.6.0-2.fc44 \
  libcamera-ipa-0:0.6.0-2.fc44 --refresh


I did not reliably observe the following error during this PipeWire regression (or I may have missed it), but mentioning it for reference:
org.gnome.Shell.Screencast[5642]: JS ERROR: Error: Expected type utf8 for Argument 'argv' but got type 'null'

This suggests the regression might involve the PipeWire / screencast integration path (possibly via pipewire-gstreamer or related components), not only GStreamer core.

Comment 5 Gwyn Ciesla 2026-02-03 20:35:15 UTC
So this is broken with any or both of gstreamer1 or pipewire upgraded? Or just pipewire?

Comment 6 Mikhail 2026-02-03 21:23:30 UTC
(In reply to Gwyn Ciesla from comment #5)
> So this is broken with any or both of gstreamer1 or pipewire upgraded? Or
> just pipewire?

# rpm -q gstreamer1 pipewire       |
gstreamer1-1.26.10-2.fc44.x86_64   |
gstreamer1-1.26.10-2.fc44.i686     | “Record Screen” - available
pipewire-1.5.85-2.fc44.x86_64      |
pipewire-1.5.85-2.fc44.i686        |
------------------------------------------------------------------
# rpm -q gstreamer1 pipewire       |
gstreamer1-1.26.10-2.fc44.x86_64   |
gstreamer1-1.26.10-2.fc44.i686     | “Record Screen” - unavailable
pipewire-1.5.85-3.fc44.x86_64      |
pipewire-1.5.85-3.fc44.i686        |
------------------------------------------------------------------
# rpm -q gstreamer1 pipewire       |
gstreamer1-1.28.0-1.fc44.x86_64    |
gstreamer1-1.28.0-1.fc44.i686      | “Record Screen” - unavailable
pipewire-1.5.85-3.fc44.x86_64      |
pipewire-1.5.85-3.fc44.i686        |
------------------------------------------------------------------
# rpm -q gstreamer1 pipewire       |
gstreamer1-1.26.10-2.fc44.x86_64   |
gstreamer1-1.26.10-2.fc44.i686     | “Record Screen” - unavailable
pipewire-1.5.85-3.fc44.x86_64      |
pipewire-1.5.85-3.fc44.i686        |

Comment 7 Mikhail 2026-02-03 23:36:53 UTC
Could we consider adding an openQA check that verifies GNOME’s screenshot overlay still provides “Record Screen” and that a short screencast can be started/stopped successfully (e.g. produces a .webm in the default Videos/Screencasts location)?
This regression is particularly painful for QA because working screen recording is essential for bug reporting and debugging; catching it in openQA would prevent this class of breakage from slipping through again.

Comment 8 Adam Williamson 2026-02-04 00:48:01 UTC
We can consider it, sure. File a ticket at https://forge.fedoraproject.org/quality/os-autoinst-distri-fedora/ and it'll be in the Big Backlog Of Good Test Ideas...

Comment 9 Gwyn Ciesla 2026-02-04 17:44:16 UTC
What about?

gstreamer1-1.28.0-1.fc44.x86_64    
gstreamer1-1.28.0-1.fc44.i686      
pipewire-1.5.85-2.fc44.x86_64      
pipewire-1.5.85-2.fc44.i686

Comment 10 Mikhail 2026-02-04 18:02:54 UTC
(In reply to Gwyn Ciesla from comment #9)
> What about?
> 
> gstreamer1-1.28.0-1.fc44.x86_64    
> gstreamer1-1.28.0-1.fc44.i686      
> pipewire-1.5.85-2.fc44.x86_64      
> pipewire-1.5.85-2.fc44.i686

# rpm -q gstreamer1 pipewire       |
gstreamer1-1.28.0-1.fc44.x86_64    |
gstreamer1-1.28.0-1.fc44.i686      | “Record Screen” - unavailable
pipewire-1.5.85-2.fc44.x86_64      |
pipewire-1.5.85-2.fc44.i686        |

Comment 11 Mikhail 2026-02-10 09:45:48 UTC
After updating gnome-shell and mutter, the “Record Screen” option is available again in the GNOME screenshot overlay.

Notably, this happened without downgrading GStreamer — gstreamer1 is still at 1.28.0-1.fc44.

Current package versions:
# rpm -qa | grep "gstreamer1\|mutter\|gnome-shell" | sort
gnome-shell-50~beta-3.fc45.x86_64
gnome-shell-common-50~beta-3.fc45.noarch
gnome-shell-extension-appindicator-61-2.fc44.noarch
gnome-shell-extension-apps-menu-50~alpha-1.fc45.noarch
gnome-shell-extension-background-logo-50~beta-2.fc45.noarch
gnome-shell-extension-common-50~alpha-1.fc45.noarch
gnome-shell-extension-launch-new-instance-50~alpha-1.fc45.noarch
gnome-shell-extension-places-menu-50~alpha-1.fc45.noarch
gnome-shell-extension-window-list-50~alpha-1.fc45.noarch
gstreamer1-1.28.0-1.fc44.i686
gstreamer1-1.28.0-1.fc44.x86_64
gstreamer1-plugin-dav1d-0.14.0-3.fc45.x86_64
gstreamer1-plugin-gtk4-0.14.4-2.fc44.x86_64
gstreamer1-plugin-libav-1.28.0-1.fc44.x86_64
gstreamer1-plugin-openh264-1.28.0-4.fc45.x86_64
gstreamer1-plugins-bad-free-1.28.0-4.fc45.x86_64
gstreamer1-plugins-bad-free-libs-1.28.0-4.fc45.x86_64
gstreamer1-plugins-base-1.28.0-1.fc44.x86_64
gstreamer1-plugins-good-1.28.0-1.fc44.x86_64
gstreamer1-plugins-good-gtk-1.28.0-1.fc44.x86_64
gstreamer1-plugins-good-qt-1.28.0-1.fc44.x86_64
gstreamer1-plugins-good-qt6-1.28.0-1.fc44.x86_64
gstreamer1-plugins-ugly-free-1.28.0-1.fc44.x86_64
mutter-50~beta-1.fc45.x86_64
mutter-common-50~beta-1.fc45.noarch

This suggests the missing “Record Screen” option may have been a compatibility/regression interaction that required GNOME Shell/Mutter changes (now present in GNOME 50). If so, it would be great to avoid pushing gstreamer1/pipewire updates without the matching GNOME Shell/Mutter update (or otherwise ensure these interdependent updates land together), to prevent users from hitting broken intermediate states.

Do we need to treat these as a coordinated update set (e.g. side-tag / grouped update / gating) for the branched release?

Comment 12 Gwyn Ciesla 2026-02-10 14:27:30 UTC
I was under the impression that they were independent projects?

Comment 13 Kamil Páral 2026-02-16 15:36:39 UTC
This seems to be working well here:

gnome-shell-50~beta-4.fc44.x86_64
gstreamer1-1.28.0-1.fc44.x86_64
pipewire-1.5.85-3.fc44.x86_64

Can we close this?

Comment 14 Kamil Páral 2026-02-16 16:59:11 UTC
Closing, reopen if still broken, thanks.

Comment 15 Mikhail 2026-02-16 17:42:16 UTC
One thing I’d like to note for the future: during the regression window it looked like gstreamer1 / pipewire updates landed earlier, while the GNOME Shell/Mutter update (that restores “Record Screen”) was not yet available in the main repo. That created a broken intermediate state for users who updated regularly.

If updating gstreamer1 / pipewire without the matching GNOME Shell/Mutter update can cause this kind of regression, would it make sense to coordinate these updates as a single update set (side-tag / grouped update / gating), so they don’t get pushed independently? If a hard RPM-level dependency is not appropriate, even a packaging or gating-level coordination would help avoid users hitting incompatible combinations.

For reference, the working combo reported here is:
- gnome-shell-50~beta-4.fc44.x86_64
- gstreamer1-1.28.0-1.fc44.x86_64
- pipewire-1.5.85-3.fc44.x86_64

Thanks again.

Comment 16 Michael Catanzaro 2026-02-16 17:49:32 UTC
Hard RPM-level dependencies are possible, but probably overkill. Simply coordinating the updates together would have avoided this. A side tag is one good way to do this, but not even required! As long as the builds are all attached to the same bodhi update, everything should be fine. But of course, this only works if the packager knows to expect the incompatibility....

Comment 17 Mikhail 2026-02-16 17:54:30 UTC
Thanks, that makes sense.

I agree hard RPM-level dependencies would likely be overkill here. Coordinating via a single Bodhi update (or a side tag) seems like the right approach.

To help ensure we don’t hit the same broken intermediate state again, could we please document this incompatibility somewhere packagers will notice (even just a short note in the update/commit message / packager notes), i.e. that pushing gstreamer1/pipewire updates without the matching GNOME Shell/Mutter build can temporarily remove “Record Screen”? That way, next time these components change again, maintainers will know to ship them as a coordinated update set.

Thanks again for the quick turnaround.

Comment 18 Adam Williamson 2026-02-16 17:56:48 UTC
A side tag is actually the only way to do multi-package updates for Rawhide / pre-Bodhi-enablement Branched, so in a sense it would have been "required" in this case.

Comment 19 Michael Catanzaro 2026-02-16 18:12:40 UTC
(In reply to Mikhail from comment #17)
> To help ensure we don’t hit the same broken intermediate state again, could
> we please document this incompatibility somewhere packagers will notice
> (even just a short note in the update/commit message / packager notes), i.e.
> that pushing gstreamer1/pipewire updates without the matching GNOME
> Shell/Mutter build can temporarily remove “Record Screen”? That way, next
> time these components change again, maintainers will know to ship them as a
> coordinated update set.

That's definitely not supposed to happen, and I don't understand why it happened in this case. Nowhere in this bug report did we debug and identify what went wrong, so if it's likely to ever happen again, we don't know. Some feedback from the Pipewire developers would be helpful.

Comment 20 Kamil Páral 2026-02-17 10:48:55 UTC
(In reply to Michael Catanzaro from comment #16)
> Hard RPM-level dependencies are possible, but probably overkill.

Why are those overkill? It would prevent these situations, and also we wouldn't need to rely on some instructions documented somewhere that people are likely to overlook anyway.

Furthermore, from my experience, debugging older versions of gnome-shell is a terrible experience (at least in my experience) exactly due to undeclared dependencies like these (and stuff like mutter). If I need to compare functionality with an older version, I often give up in advance, because lining up everything just by trial and error is extremely time-consuming. I would very appreciate if we could use RPM deps to make this easier and more reliable.

Comment 21 Wim Taymans 2026-02-17 11:08:05 UTC
> Some feedback from the Pipewire developers would be helpful.

I have no idea what went wrong, the projects are sufficiently independent to not cause these issues or so we think.

> A side tag is actually the only way to do multi-package updates for Rawhide / pre-Bodhi-enablement Branched, so in a sense it would have been "required" in this case.

Normally not, you let projects update independently. You only bundle updates when you know they need synchronized updates or when you
need to build them together with new API etc. In this case, there was no need (or so we thought, I don't know what the problem was/is).

Comment 22 Mikhail 2026-02-17 11:16:08 UTC
Wim, we have journalctl -b logs attached (good vs bad). Are they useful at all? If not, what exact set of logs/debug env vars do you want next time?

Comment 23 Adam Williamson 2026-02-17 20:13:25 UTC
> Normally not, you let projects update independently.

I was replying to Michael's "Simply coordinating the updates together would have avoided this. A side tag is one good way to do this, but not even required!" For Rawhide and pre-Bodhi-enablement Branched, a side tag *is* required to achieve "the builds are all attached to the same bodhi update".


Note You need to log in before you can comment on or make changes to this bug.