GNOME Software Center Lies About Updates: Fix It Fast
The Software Center says 'System up to date' when it's not. Fix this with three escalating steps — starts with a refresh, ends with a package cache rebuild.
Why The Software Center Lies To You
You click 'Check for Updates' in GNOME Software. It spins for a second and tells you everything's current. But you run apt list --upgradable or dnf check-update from the terminal, and bam — there's a dozen packages waiting. This isn't a bug in the update tool. It's almost always a stale package cache that GNOME Software didn't invalidate properly. The culprit here is PackageKit, the backend service that GNOME Software talks to. PackageKit caches the list of available updates aggressively, and sometimes it doesn't refresh when it should.
I've seen this on Ubuntu 22.04, Fedora 38, and Debian 12. Flatpak and Snap updates can also get stuck. The fix chain below works for all of them. Start at Step 1 — you'll probably be done in 30 seconds. If not, move to Step 2, then Step 3. Skip the 'reinstall GNOME Software' advice you see online — it rarely helps because the problem is in PackageKit, not the frontend.
Step 1: The 30-Second Refresh (90% success rate)
This is the equivalent of turning it off and on again, but targeted. GNOME Software respects a manual trigger to rescan the package repositories. Here's how you do it:
- Open GNOME Software.
- Click the hamburger menu (three lines) in the top-right corner.
- Select Refresh or Check for Updates — depends on your distro's version.
- Wait 10-15 seconds. If it shows updates, you're done.
If that didn't do it, run this from the terminal:
pkcon refresh force -p
This tells PackageKit to ignore its cache and fetch fresh metadata from every configured repository. The -p flag shows progress. After it finishes, reopen GNOME Software. If updates appear, you're set. This works because it bypasses the GUI's broken cache invalidation and forces PackageKit to re-download the repo metadata.
Still nothing? Move to Step 2.
Step 2: The 5-Minute Cache Nuke (Medium fix)
PackageKit stores its cached data in /var/cache/PackageKit/ and ~/.cache/gnome-software/. Sometimes these get corrupted or contain stale entries that the refresh command can't clear. We'll delete them and restart the services.
- Close GNOME Software completely. Kill it if you have to:
pkill gnome-software. - Open a terminal and run these commands:
sudo systemctl stop packagekit
sudo rm -rf /var/cache/PackageKit/*
rm -rf ~/.cache/gnome-software/*
sudo systemctl start packagekit
Now reopen GNOME Software. It will rebuild its cache from scratch — might take 30-60 seconds. You should see updates listed after that.
But wait — there's a common gotcha here. If you're using Flatpak or Snap, their updates won't appear in the native package cache. GNOME Software also pulls from flatpak update and snap refresh lists. If you only see native packages fixed but Flatpak/Snap still show nothing, run these:
flatpak update --assumeyes
echo "Snap updates:" && snap refresh --list
If those show updates but GNOME Software still says up to date, the issue is in how GNOME Software integrates with those backends. That's rarer, but Step 3 fixes it.
Still no updates? Proceed to Step 3.
Step 3: The 15-Minute Deep Clean (Advanced fix)
This is the nuclear option — we rebuild the package manager's metadata from scratch and reset GNOME Software's database entirely. This handles cases where PackageKit's database is out of sync with the native package manager (apt, dnf, zypper).
For Debian/Ubuntu (apt-based):
sudo apt clean
sudo apt update
sudo apt upgrade # actually apply updates from terminal
sudo apt autoremove
sudo apt autoclean
pkcon refresh force -p
For Fedora (dnf-based):
sudo dnf clean all
sudo dnf makecache
sudo dnf upgrade # apply updates
pkcon refresh force -p
For OpenSUSE (zypper-based):
sudo zypper clean --all
sudo zypper refresh
sudo zypper update
pkcon refresh force -p
After running the appropriate set of commands, delete the user-level GNOME Software cache again (because PackageKit might have rewritten it during the refresh):
rm -rf ~/.cache/gnome-software/*
pkill gnome-software
Now restart GNOME Software. If it still doesn't show updates, check the logs. Open a terminal and run:
journalctl --user -u gnome-software -f
Then trigger a refresh from the GUI. Look for error messages like failed to get updates, repo unavailable, or permission denied. The most common hidden problem: a third-party repository (like Google Chrome, VS Code, or a PPA) that's misconfigured. GNOME Software will fail to fetch metadata for that one repo and silently skip the entire update check. Fix the broken repo by removing or correcting it in /etc/apt/sources.list.d/ or the equivalent for your distro.
If you're still stuck after all this, you've probably got a deeper issue — maybe a corrupted GNOME Software installation, or a systemd service that's failing. Reinstall the package:
sudo apt install --reinstall gnome-software gnome-software-common
# or on Fedora:
sudo dnf reinstall gnome-software
# or on OpenSUSE:
sudo zypper install --force gnome-software
And yes, occasionally, the problem is that your system really is up to date and you were wrong. Run apt list --upgradable (or dnf/zypper equivalent) to triple-check. If the terminal says nothing to upgrade, GNOME Software was telling the truth. But 9 times out of 10, it's a cache issue that Step 1 or Step 2 fixes.
Was this solution helpful?