Correct.  In many cases, there can be "errors" that still return a 200 code (which was why I was previously looking for "error" in the JSON response, and then calling that _categorize_error() method.  Except for the 404, most "expected" errors do not return http error codes.