When the simulator tries to download a HTTP_RESPONSE_CONTENT_TYPE_FIT workout and receives a non 200 response code it is passed back to the makeWebRequest callback, but on at least a 735xt the response appears to be flattened to a responseCode 0 in all cases.
This makes it hard to distinguish an expired authorisation from a server error or even a watch workout storage full
A similar (but different) case seems to occur with HTTP_RESPONSE_CONTENT_TYPE_JSON. If the server sends an error code back without setting media type then neither the simulator nor the 735xt see the code, but if the server sets the media type to JSON the simulator will see the response, but the 735 spams the request twenty more times then returns -300.
When I say "the 735" I appreciate I'm talking about (in my case) the ConnectIQ android app which is proxying the request, so there could well be a better place to report this, but as its biting my when running MonkeyC I'm going to put it here :)
Thanks