In my WebAPI class, an ApiController, I make a call such as:
string myCustomMessage = .....;
throw new HttpResponseException(
    new HttpResponseMessage(HttpStatusCode.Unauthorized)
        { ReasonPhrase = myCustomMessage });
When I call using AngularJS $resource service, I do get 401 in the status field the response, in the catch block of the promise.   The 401 matches HttpStatusCode.Unauthorized, so all's well.
The problem, however, is that the data field of the response is empty (null). I don't get the myCustomMessage returned.
Now, if rather than throwing a HttpResponseException exception, I just throw a regular Exception with a message, that message does make it sway back to Angular.   
I need to be able to do both: return a custom message from the server, as well as have the returned status code be whatever I want, in this case 401.
Anyone know how to make that work?
[edit] Solution:
 throw new HttpResponseException(
     Request.CreateErrorResponse(HttpStatusCode.Unauthorized, myCustomMessage));
 
     
    