error is usually human-readable