Agreed, if we consider that errors have two kinds of users (the end user and the developer) we might be able to find common needs for both sides. The needs of the end user are probably harder to generalize (as they depend on the intended action) but even here there might be requirements that are always appropriate: e.g googlability.
For developers, needs probably revolve around being able to comprehend what logical situation resulted in the unexpected behaviour. Meaning that errors should give some sense of what internal state cause it to appear and where the input that formed this state came from.
(edit: typos)