To start: I understand what this error means - I\'m not attempting to resolve an instance of it.
This error is notoriously difficult to troubleshoot
Descriptive error messages in software systems are as good as non-existant.
That holds not only for DBMS's but for as good as any kind of software one can imagine.
I think the underlying reason is that "good descriptive error messages" take too much time to implement. It is not part of the average software developer's culture to spend much time thinking about "which information would the user want to see if this particular kind of exception occurs" ? The programmers who have to write down the code for giving "good descriptive error messages" only see the cost (their time), not the benefit.
One of the most recent error messages I got from a software system is "Something wrong has happened. Please try again later.". No kidding.