Errors use standard HTTP status codes and a JSON body with a human-readable message:
Messages are meant for developers and may change; branch on the status code, not the text.