Handle non-200 responses & don't cache them

If there is no cached content then return the error content from the server.