DEBT.OBJECT_NOT_FOUND — the recorded object is not in the catalog
- Category: safety
- Level: 0
- Stability: stable
- Suites: audit, deploy
The ledger records a debt against an object the catalog does not show at all.
Why this is not reported as settled
Because it is not the same statement, and the difference is the whole reason this finding exists. All of these produce an object that cannot be found:
- The table was dropped — the debt went with it, which is fine, but nobody paid it.
- The object lives in a schema this run never looked at, because the audit was scoped.
- The connecting role cannot see it. A privilege it lacks is invisible from the inside.
Only the first is good news, and none of them is "somebody validated the constraint". Reading an absence as a resolution removes a ledger entry on the strength of not having found something.
An expand without its contract adds a fourth. Its entry names the column the expand added and not
its table, so the question is whether any table still carries a column of that name. When none does,
the column may have been renamed onto the old name once the old one was dropped, which is the debt
paid, and a dropped table looks the same. While a table still carries it, the finding is
DEBT.STANDING_UNKNOWN instead.
What to do
Check which of the three it is. If the object really is gone for good, remove the entry by hand in the repository — that is the explicit confirmation this finding is asking for. If the audit was scoped, or the role is narrow, widen it and run again: the entry is doing its job by staying.