Problem
If you install some additional third party RPM repositories (or install third-party RPM files which themselves add an RPM repository), you might see GNOME Software suddenly becoming very unresponsive. Just loading the initial page (or any page) can take 5 minutes. These 5-minute delays can happen in unknown intervals.
The currently confirmed third-party repos which cause this are: Cursor, NextDNS.
Note: This issue might also affect DNFDragora in KDE, but that hasn’t been confirmed yet.
Cause
GNOME Software switched to using dnf5daemon-server instead of PackageKit. However, dnf5daemon-server suffers from a bug, which makes it wait 5 minutes (for input, that never comes) when a repository contains repo_gpgcheck=1 directive (asking it to validate repository metadata with a security key).
Related Issues
Bugzilla report: 2458182 – dnf5daemon-server hangs for 5 minutes per repository with repo_gpgcheck=1, breaking gnome-software
Workarounds
You can see if you have any repositories with repo_gpgcheck=1 by running this command:
grep -r 'repo_gpgcheck=1' /etc/yum.repos.d/
If you do, one option is to remove the software and the repository, which causes this behavior, if you don’t need it. Uninstall the software using sudo dnf remove <package> (which might also remove the repository, but not always), or also remove the repository file manually using sudo rm /path/to/repository.
Another option is to temporarily disable repo_gpgcheck for the affected repository. See the repo IDs of all repositories by running:
sudo dnf repolist
Let’s say that the affected repository has repo ID cursor. You can disable repo_gpgcheck for it by running:
sudo dnf config-manager setopt cursor.repo_gpgcheck=0
(replace cursor with your particular repo ID)
You can verify that it worked by running sudo dnf repoinfo cursor and looking into Verify repodata line (it should be false now).
Later, when this is fixed, you can revert this change by running:
sudo dnf config-manager unsetopt cursor.repo_gpgcheck
(again, replace cursor with your particular repo ID)