Description
Right now HoS only use a few error codes. For the majority of the errors, user will see an error code 1 followed by a lengthy stacktrace. This is not ideal since:
1. It is often hard to find the root cause - sometimes it is hidden deeply inside the stacktrace.
2. After identifying the root cause, it is not easy to find a fix. Often user have to copy & paste the error message and google them.
3. It is not clear whether the error is transient or not, depending on which user may want to retry the query.
To improve the above, this JIRA propose to assign error code & canonical error messages for different HoS errors. We can take advantage of the existing ErrorMsg class.