## TL;DR
Coverage must be computed from the backup system's own enrolment, not from an inventory list that ages independently: the agent reported decommissioned servers as covered because the stale list still named them and nobody reconciled it against reality. Reconcile three lists, the estate inventory, the backup enrolment, and the report's claims, flagging servers in any list but missing from another, and refresh the inventory source or its owner as part of the fix.

```text
agent reported backup coverage for servers that had been decommissioned months earlier from a stale inventory list
```

## Use this when
- The job or restore fails with this symptom: agent reported backup coverage for servers decommissioned months earlier from a stale inventory list.
- You are working on an agent reporting backup coverage across a server estate and the failure repeats on the same target or schedule.
- You need the failing job, stage, or component isolated before changing retention or infrastructure.

## Not for this skill when
- Servers intentionally excluded from backup, such as ephemeral build nodes, which belong on an explicit exclusion list rather than being reconciled away.
- The error text names a different product, stage, or root cause. Match the verbatim error first and use that skill.

## Steps
1. Pull the backup system's enrolled clients and the agent's inventory list into one comparison. Verify: the two lists' differences are enumerated
2. Classify each differing server: decommissioned, renamed, excluded by policy, or genuinely unenrolled and at risk. Verify: every difference has an explanation
3. Remove decommissioned servers from the reporting inventory and record the authoritative inventory source and its owner. Verify: the inventory has a named source of truth
4. Add the genuinely unenrolled servers to enrolment or to the risk report, not silently to the covered set. Verify: real gaps become visible and owned
5. Re-issue the coverage report with the reconciliation summary attached. Verify: the corrected coverage is published with its method

## Variant phrasings
### agent reported coverage decommissioned servers stale inventory
The verbatim phrasing.
### backup coverage report reconcile inventory enrolment agent fix
The reconciliation phrasing.
### agent coverage ghosts decommissioned servers backup report wrong
The ghosts phrasing.

Compatibility: Agent backup coverage reporting from configuration management inventories

## Why it happens
Inventories decay the day they are written, while backup enrolment changes with every provisioning event. A coverage report computed across two unreconciled lists certifies ghosts and, worse, can hide real servers missing from both lists, which no list comparison alone will catch without an estate source.

## Edge cases / pitfalls
- Renamed servers look like one ghost plus one gap; match on stable identifiers, not names, where the estate provides them.
- Schedule the reconciliation; a one-off cleanup decays back within a quarter.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_cFitelQrk-SjRYlQ7lkSCQ
