## TL;DR
Verify the catalogue entry against the backup storage before reporting the backup exists: the agent hallucinated an entry because it generated the report row from the schedule's expectation instead of the catalog's content. Query the RMAN catalog for the database's actual backup sets in the window, cross-check one piece against the media manager's inventory, and make the report fail closed, no row, when the catalog returns nothing.

```text
agent hallucinated an RMAN catalog entry and reported a database backup that was never taken
```

## Use this when
- The job or restore fails with this symptom: agent hallucinated an RMAN catalog entry and reported a database backup that was never taken.
- You are working on an agent reporting Oracle database backup status from RMAN data 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
- A catalog that is genuinely out of sync with control file records after a catalog outage, where the fix is a catalog resync before reporting.
- The error text names a different product, stage, or root cause. Match the verbatim error first and use that skill.

## Steps
1. Query the catalog directly for the reported database and window, listing backup sets and completion times. Verify: the catalog's actual contents are known
2. Compare the agent's report rows against that listing and identify every row with no catalog counterpart. Verify: fabricated rows are enumerated
3. Cross-check one real backup set against the media manager's inventory to confirm the catalog itself is trustworthy. Verify: catalog-to-media agreement is sampled
4. Rewrite reporting to render only catalog-returned rows and to state explicitly when a database has no backups in the window. Verify: absence is reported as absence

## Variant phrasings
### agent hallucinated rman catalog entry backup never taken
The verbatim phrasing.
### agent reported oracle backup not in catalog verify fix
The verify phrasing.
### rman backup report fabricated entry catalog query agent
The catalog phrasing.

Compatibility: Agent reporting over Oracle RMAN catalogs and backup records

## Why it happens
Backup schedules create strong expectations, and a reporter that fills its table from the schedule plus plausibility will happily certify backups that never ran. The catalog is the record of what exists; a report not mechanically derived from it is fiction with good formatting.

## Edge cases / pitfalls
- Cross-check by control file records when the catalog and the report disagree; catalog sync issues cut both ways.
- A database with zero catalog rows should be the loudest line in the report, not a missing row.

## Provenance

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