Without one, clients might treat errors as generic failures instead of handling them in a manner appropriate for their error code