Discover shows System Package upgrades available but DNF denies

Discover:

edk2-ovmf
Upgrade to new version 20251119-3.fc43
Release notes:
OvmfPkg/MemDebugLogLib: use AcquireSpinLockOrFail
edk2-shell-x64
Upgrade to new version 20251119-3.fc43
Release notes:
OvmfPkg/MemDebugLogLib: use AcquireSpinLockOrFail
geoclue2
Upgrade to new version 2.8.0-1.fc43
Release notes:
Update to 2.8.0
geoclue2-libs
Upgrade to new version 2.8.0-1.fc43
Release notes:
Update to 2.8.0
igvm-libs
Upgrade to new version 0.4.0-6.fc43
Release notes:
Add missing license file
libarchive
Upgrade to new version 3.8.4-1.fc43
Release notes:
Automatic update for libarchive-3.8.4-1.fc43. 
Changelog for libarchive 
* Fri Dec 05 2025 Packit <hello@packit.dev> - 3.8.4-1
- Update to version 3.8.4
- Resolves: rhbz#2419348

netavark
Upgrade to new version 2:1.17.1-1.fc43
Release notes:
Automatic update for netavark-1.17.1-1.fc43. 
Changelog for netavark 
* Tue Dec 09 2025 Packit <hello@packit.dev> - 2:1.17.1-1
- Update to 1.17.1 upstream release

python3-beautifulsoup4
Upgrade to new version 4.14.3-1.fc43
Release notes:
Update to latest upstream release bs4 4.14.3
python3-productmd
Upgrade to new version 1.49-1.fc43
Release notes:
New upstream release with updated networking code. The requests should no longer trigger Anubis blocking.
qt6-qtdeclarative
Upgrade to new version 6.10.1-2.fc43
Release notes:
Upstream backport: QtQml: Invalidate fallback lookups after each call from AOT code
virtiofsd
Upgrade to new version 1.13.3-1.fc43
Release notes:
Update to version 1.13.3

DNF: (I already ran dnf clean all → dnf makecache → dnf upgrade —refresh and it says this)

Repositories loaded.
Nothing to do.

This has never happened before.

Try a pkcon refresh force. Discover is packagekit based and has its own cache. DNF has a different cache. So they can get out of sync.

Ran it.

20:44:04        PackageKit          Verbose debugging enabled (on console 1)
20:44:04        PackageKit          adding state 0x55c783243370
20:44:04        PackageKit          role now refresh-cache
Refreshing cache                        [                         ] (0%)  20:44:04      PackageKit          notify::connected
                                        [=========================]         
Waiting for authentication              [=========================]         
Loading cache                           [=========================]         
Querying                                [=========================]         
Loading cache                           [=========================]         
Finished                                [                         ] (0%)  20:46:12      PackageKit          remove state 0x55c783243370
                                        [=========================]

Still the same issue.

I checked some packages. Indeed they are updated. DNF does not find them. For example, for edk2-ovmf:

From dnf list –installed:

image

Discover:

I’ve also had problems with misalignment between Discover and DNF. I only trust DNF and update only with DNF:

dnf -y --refresh upgrade && dnf -y autoremove

1 Like

Then the dnf cache could be out of date, so you’d do as suggested above to refresh the dnf cache:

sudo dnf check-update --refresh

Note that there are also different caches for dnf being run as root (via sudo or otherwise) and for each user.

1 Like

Another issue, Discover/Packagekit and dnf5 could be selecting different base repos. The base repo servers update unpredictably. So you could have both discover/packagekit and dnf5 fully refreshed and updated to “now” but still have differences. This is because “server1” and “server2” might be what they selected but one of them is more “stale” than the other.
The only way I’ve found to actually know in realtime what baseurl (and this is dnf5 only) dnf will use is to run “dnf repoinfo” and look at the “Base URL” lines for each repo. That shows the Base URL dnf selected out of each mirror list. The last line in a given repoinfo section is “Updated”, that’s the actual time in UTC when that server updated.
This is a sample limited to just the “updates” repo:

dnf repoinfo updates

Repo ID              : updates
Name                 : Fedora 43 - x86_64 - Updates
Status               : enabled
Priority             : 99
Cost                 : 1000
Type                 : available
Metadata expire      : 21600 seconds (last: 2025-12-11 19:18:02)
Skip if unavailable  : false
Config file          : /etc/yum.repos.d/fedora-updates.repo
URLs                 : 
  Base URL           : rsync://nnenix.mm.fcix.net/fedora-enchilada/linux/updates/43/Everything/x86_64/ (132 more)
  Metalink           : https://mirrors.fedoraproject.org/metalink?repo=updates-released-f43&arch=x86_64
OpenPGP              : 
  Keys               : file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-43-x86_64
  Verify repodata    : false
  Verify packages    : true
Repodata info        : 
  Available packages : 12545
  Total packages     : 12566
  Size               : 40.4 GiB
  Revision           : 1765412379
  Updated            : 2025-12-11 10:01:52

I wasted 5 hours troubleshooting this, all my efforts were in vain.

Then I remembered I had BTRFS snapshots enabled. I rolled back to a snapshot 2 days ago and dnf works now. I got the updates.

Both DNF and pkcon are working normally now :slight_smile:

1 Like