Display more informative and actionable error messages
These error messages were a bit short and contained technical jargon. They did not give the user a good sense of how to proceed. With this commit, the error messages are changed to clearly include the important elements of a good error message: 1. What went wrong 2. Why it happened 3. How they can fix it themselves 4. How they can report the issue to get it permanently fixed for everyone To do this, the setError() function is extended to also be able to accept an optional explanation arguments, which is used to present better information to the user.