iOS app crashes on Mobile API 500s
I accidentally filed this as a Task. I am closing it and re-filing it as a Bug. Apologies for any confusion.
The iOS app does not gracefully handle 5xx errors (as well as 4xx errors probably) from certain Mobile API endpoints. This line tries to deserialize API responses as JSON without checking that the response is well-formed JSON. In the case of a 500, the response body contains something like "Internal Server Error" instead of JSON, causing the deserialization to throw an error and crash the app.
While this won't cause a problem if courses.edx.org is up and performing correctly, it might become a problem if courses.edx.org is under heavy load and intermittently returning 503s, for example. Instead of the app telling users that the server is busy, it will just crash.