Error when upgrading from Fedora 39 to Fedora 40

I get the following when running the upgrade through the software center. Not sure why I get this, nor how to fix the issue(s).

Could not depsolve transaction; 2 problems detected:
 Problem 1: package mutter-45.4-1.fc39.x86_64 from @System requires mutter-common = 45.4-1.fc39, but none of the providers can be installed
  - mutter-common-45.4-1.fc39.noarch from @System  does not belong to a distupgrade repository
  - problem with installed package mutter-45.4-1.fc39.x86_64
 Problem 2: problem with installed package gnome-shell-45.6-2.fc39.x86_64
  - package gnome-shell-46.1-2.fc40.x86_64 from updates requires libmutter-14.so.0()(64bit), but none of the providers can be installed
  - package gnome-shell-46.1-2.fc40.x86_64 from updates requires libmutter-clutter-14.so.0()(64bit), but none of the providers can be installed
  - package gnome-shell-46.1-2.fc40.x86_64 from updates requires libmutter-cogl-14.so.0()(64bit), but none of the providers can be installed
  - package gnome-shell-46.1-2.fc40.x86_64 from updates requires libmutter-mtk-14.so.0()(64bit), but none of the providers can be installed
  - package gnome-shell-46.1-2.fc40.x86_64 from updates requires libmutter-cogl-pango-14.so.0()(64bit), but none of the providers can be installed
  - package gnome-shell-46.1-2.fc40.x86_64 from updates requires mutter(x86-64) >= 46.0, but none of the providers can be installed
  - package gnome-shell-46.0-1.fc40.x86_64 from fedora requires libmutter-14.so.0()(64bit), but none of the providers can be installed
  - package gnome-shell-46.0-1.fc40.x86_64 from fedora requires libmutter-clutter-14.so.0()(64bit), but none of the providers can be installed
  - package gnome-shell-46.0-1.fc40.x86_64 from fedora requires libmutter-cogl-14.so.0()(64bit), but none of the providers can be installed
  - package gnome-shell-46.0-1.fc40.x86_64 from fedora requires libmutter-mtk-14.so.0()(64bit), but none of the providers can be installed
  - package gnome-shell-46.0-1.fc40.x86_64 from fedora requires libmutter-cogl-pango-14.so.0()(64bit), but none of the providers can be installed
  - package gnome-shell-46.0-1.fc40.x86_64 from fedora requires mutter(x86-64) >= 46.0, but none of the providers can be installed
  - gnome-shell-45.6-2.fc39.x86_64 from @System  does not belong to a distupgrade repository
  - package mutter-46.1-2.fc40.x86_64 from updates is filtered out by exclude filtering
  - package mutter-46.0-1.fc40.x86_64 from fedora is filtered out by exclude filtering

I ran all the latest updates for Fedora 39 just before trying to upgrade to 40, so not sure why I have dependency issues on Gnome.

Not sure how to do anything for Gnome or Mutter outside of the updates I’ve been running all along.

Do you have “testing” repos enabled?

These are teh only repos I see

NetBird                                        NetBird
copr:copr.fedorainfracloud.org:phracek:PyCharm Copr repo for PyCharm owned by phracek
docker-ce-stable                               Docker CE Stable - x86_64
fedora                                         Fedora 39 - x86_64
fedora-cisco-openh264                          Fedora 39 openh264 (From Cisco) - x86_64
google-chrome                                  google-chrome
pritunl                                        Pritunl Stable Repository
rpmfusion-nonfree-nvidia-driver                RPM Fusion for Fedora 39 - Nonfree - NVIDIA Driver
rpmfusion-nonfree-steam                        RPM Fusion for Fedora 39 - Nonfree - Steam
tailscale-stable                               Tailscale stable
updates                                        Fedora 39 - x86_64 - Updates

I think these are all 3rd party repos and may have items that cannot be cleanly updated in the system upgrade process.
I would disable them (at least temporarily) before attempting the system upgrade.

I disabled each repository, but still get the same errors about mutter and gnome shell when I attempt to download the new version. I’m just using the software center UI, maybe there’s some command line item I need to run first?

Here’s what I get when I run sudo dnf update:

Last metadata expiration check: 1:42:45 ago on Wed 15 May 2024 08:53:12 AM CDT.
Dependencies resolved.

 Problem: cannot install both mutter-common-45.6-1.fc39.noarch from updates and mutter-common-45.4-1.fc39.noarch from @System
  - package mutter-45.4-1.fc39.x86_64 from @System requires mutter-common = 45.4-1.fc39, but none of the providers can be installed
  - cannot install the best update candidate for package mutter-common-45.4-1.fc39.noarch
  - problem with installed package mutter-45.4-1.fc39.x86_64
=====================================================================================================
 Package                    Architecture        Version                   Repository            Size
=====================================================================================================
Skipping packages with conflicts:
(add '--best --allowerasing' to command line to force their upgrade):
 mutter-common              noarch              45.6-1.fc39               updates               20 k

Transaction Summary
=====================================================================================================
Skip  1 Package

Nothing to do.

Tried to run sudo dnf update --best --allowerasing but then I get

Error: 
 Problem: cannot install the best update candidate for package mutter-common-45.4-1.fc39.noarch
  - cannot install both mutter-common-45.6-1.fc39.noarch from updates and mutter-common-45.4-1.fc39.noarch from @System
  - package mutter-45.4-1.fc39.x86_64 from @System requires mutter-common = 45.4-1.fc39, but none of the providers can be installed
  - problem with installed package mutter-45.4-1.fc39.x86_64
(try to add '--skip-broken' to skip uninstallable packages)

And finally adding --skip-broken to that command to make sudo dnf update --best --allowerasing --skip-broken gives:

Error: 
 Problem: cannot install the best update candidate for package mutter-common-45.4-1.fc39.noarch
  - cannot install both mutter-common-45.6-1.fc39.noarch from updates and mutter-common-45.4-1.fc39.noarch from @System
  - package mutter-45.4-1.fc39.x86_64 from @System requires mutter-common = 45.4-1.fc39, but none of the providers can be installed
  - problem with installed package mutter-45.4-1.fc39.x86_64

Not sure how to resolve this.

I located this post with the same issue. None of what they suggested has worked for me either.

Have you tried the alternative with dnf.
sudo dnf upgrade --refresh
sudo dnf system-upgrade download --releasever=40
sudo dnf system-upgrade reboot
Fix any errors noted at each step before moving on.

It is also possible that inconsistencies in the mirror status of the repo being used may impact that. If that is the case then usually a short wait before trying again usually resolves that problem.

I personally like to see what is being done and dnf reveals that while the software center hides it.

So, on

sudo dnf system-upgrade download --releasever=40

it errors out on mutter still.

Tried adding --allowerasing and --skip-broken, and get this at the end.

  - package mutter-46.0-1.fc40.x86_64 from fedora is filtered out by exclude filtering
  - package mutter-46.1-2.fc40.x86_64 from updates is filtered out by exclude filterin

But when I look in /etc/yum.repos.d/fedora.repo I don’t see anything with exclude on it, nor in /etc/yum.repos.d/fedora-updates.repo.

What about in /etc/dnf/dnf.conf?

1 Like

try also sudo pkcon refresh force & sudo pkcon update and after that sudo dnf clean cache , sudo dnf upgrade --refresh

Ok, yep, mutter was excluded there.

This is an excellent example of additional information available with dnf that is not available with the software app.