unfortunately, the parse api returns non-json responses for both client and server error types, so the "&& response.status >= 500" condition on retrying json parse errors in the original code was necessary to prevent retrying things like 404's