provide useful error messages matched to HTTP status codes when requests go wrong