Software Engineering ยท Code Quality
An abstraction meant to hide complexity that occasionally forces the caller to understand what's happening underneath anyway.
Example: A database tool meant to hide SQL, but it throws a raw SQL error when something goes wrong.
In practice: Joel Spolsky's 'Law of Leaky Abstractions' argues that all non-trivial abstractions leak eventually, so understanding what's underneath is often necessary for debugging, not just curiosity.