## TL;DR
Unmet dependencies mean the package database is in an inconsistent state, so apt blocks new work until it is consistent again. Run apt --fix-broken install and read what it proposes before accepting: it may install missing dependencies or remove the package that cannot be satisfied. If a held or PPA package is the blocker, resolve that package specifically, then run dpkg --configure -a to finish half-configured packages.

```text
apt upgrade failed unmet dependencies try apt --fix-broken install
```

## Use this when
- apt upgrade or install stops with You might want to run apt --fix-broken install.
- One package is described as having unmet dependencies in the error.
- The problem started after a PPA install, a held kernel, or an interrupted upgrade.

## Not for this skill when
- The system is mid-release-upgrade between Ubuntu versions. Follow the release-upgrade recovery path instead.
- apt update cannot reach repositories. Fix repo connectivity first.

## Steps
1. Run apt --fix-broken install and read the proposed installs and removals carefully before confirming. Verify: the proposal does not remove packages you need (desktop, kernel, drivers)
2. Run dpkg --configure -a to complete any half-configured packages. Verify: it finishes without leaving packages in a failed configure state
3. Check held packages with apt-mark showhold and release or satisfy the hold that blocks the transaction. Verify: the hold list no longer includes the blocking package, or its dependencies are met
4. If the blocker is a PPA package, update or remove that PPA and its package, then rerun the fix. Verify: apt no longer references the PPA package as broken
5. Run apt update and apt upgrade again. Verify: the upgrade resolves and proceeds

## Variant phrasings
### apt fix broken install unmet dependencies
The hint-first phrasing apt itself prints.
### dpkg configure pending half installed package
The half-configured sibling phrasing.
### held package breaks apt upgrade fix
The apt-mark hold root-cause phrasing.

Compatibility: Compatibility: Ubuntu and Debian with apt 2.x and dpkg; PPA tooling via software-properties on Ubuntu.

## Why it happens
apt maintains a global consistency invariant: every installed package dependencies must be satisfiable. An interrupted configure, a hold that pins one side of a dependency pair, or a PPA built against newer libraries breaks that invariant, and from then on apt refuses unrelated installs to avoid making it worse. The fix-broken run is apt proposing the shortest path back to consistency.

## Edge cases / pitfalls
- If fix-broken proposes removing most of the desktop or the running kernel, stop: the satisfier found a drastic path because a core repo is missing or disabled.
- Forcing a package with dpkg --force-depends converts a solvable inconsistency into a permanent one; avoid it outside disposable containers.
- After recovery, run apt autoremove only once upgrades are clean, not during the broken state.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_1VD2547X3G7QEzqaqdKWSw
