Skip to main content

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.