1. Stale Metadata Cache – The Most Common Culprit
Had a client last month whose ThinkPad X1 Carbon wouldn't show any firmware updates at all. Ran fwupdmgr refresh – nothing. The real fix? The local metadata was corrupted. Here's what to do:
sudo fwupdmgr refresh --force
sudo fwupdmgr get-updates
sudo fwupdmgr update
The --force flag wipes the old cache and downloads fresh metadata from the LVFS (Linux Vendor Firmware Service). Without it, fwupd sometimes hangs on stale timestamps. If you're on Ubuntu 22.04 or older, also try:
sudo fwupdmgr refresh --no-sandbox
That fixes a weird sandbox issue that blocks downloads on older fwupd versions.
2. USB or Thunderbolt Port Issues – Bypass the Dock
I've seen this on Dell XPS and HP EliteBooks: fwupd detects the update but fails halfway through with a generic error. Nearly every damn time, the laptop was connected through a USB-C dock. Docks mess with the UEFI capsule update path. Unplug everything – dock, monitors, external drives – and plug the charger directly into the laptop. Then retry:
sudo fwupdmgr update --force
The --force flag reattempts even if it thinks the update already failed. Works about 80% of the time. If you're flashing a Thunderbolt controller firmware (common on Lenovo P-series), reboot first and plug the USB cable directly into a motherboard port, not a front panel one.
3. Missing LVFS Support or Vendor Lockout
This one's trickier. Some older hardware – especially from Lenovo and Dell before 2018 – isn't supported by LVFS. fwupd won't show any updates, even after a fresh refresh. Check your hardware ID:
sudo fwupdmgr get-devices
If you see No approved firmware updates available, that usually means your device isn't in LVFS. I've seen this on Dell Optiplex 3050 and ThinkPad T460. The fix? Either use the vendor's BIOS flashing tool (Dell Command Update, Lenovo System Update) or check if your machine has an UEFI capsule update flag in the BIOS. On some Dells, you need to enable Enable UEFI Capsule Firmware Updates in the BIOS setup. Try that, then reboot and run fwupd again.
Quick-Reference Summary
| Problem | Symptom | Fix |
|---|---|---|
| Stale metadata | fwupdmgr refresh hangs or returns no updates | sudo fwupdmgr refresh --force |
| USB/TB dock | Update fails at 50% or "device not present" | Unplug dock, use direct charger port |
| Unsupported hardware | "No approved firmware updates" | Check BIOS UEFI capsule setting or use vendor tool |
If none of these work, check the fwupd logs:
journalctl -u fwupd -xe
That'll tell you exactly where it's choking. I've only had one laptop – an old HP ProBook 450 G3 – that refused all fwupd updates. Ended up using the HP Support Assistant in a VM. Sometimes the hardware just won't play nice.