Cargo and crates.io were developed in the rush leading up to the Rust 1.0 release to fill the needs for a tool to manage dependencies and a registry that people could use to share code. This rapid work resulted in these tools being connected with an API that initially didn't return the correct HTTP response status codes . After the Rust 1.0 release, Rust's stability guarantees around backward compatibility made this non-trivial to fix, as we wanted older versions of Cargo to continue working with the current crates.io API. \ When an old version of Cargo receives a non-" 200 OK " response, it displays the raw JSON body like this: error: failed to get a 200 OK response, got 400 headers: HTTP/1.1 400 Bad Request Content-Type: application/json; charset=utf-8 Content-Length: 171 body: {"errors":[{"detail":"missing or empty metadata fields: description, license.…