FreeAgent API down again

Hi,
I have noticed on 2 occasions, just now and about 3 weeks ago, that the API is down with a maintenance page showing the message: “We’re experiencing unexpected downtime. We should be back online shortly”

I have 2 questions about this:

  1. Why is this happening?

  2. Why is the response html when i am making a request for JSON data? this makes it hard to present a meaningful error to the user and breaks the client’s error handling unless i account for the possibility of non JSON data when parsing errors out. The api does output errors in JSON in a standard format in other scenarios.

Here is the error response:

We're having to perform some unexpected maintenance.

We'll be back soon!

We're experiencing unexpected downtime. We should be back online shortly.

Thank you for your patience.

Hi Chris,

We did have a couple of brief (<1 minute) periods of downtime while we upgraded some of our systems and performed disaster recovery tests on March 2nd and March 21st. Both were planned to have as minimal an impact as possible on our users, so were conducted at 11pm GMT.

All our planned and unplanned downtime is logged at http://status.freeagent.com/ or you can follow @FreeAgentOps on Twitter to be alerted should our systems be unavailable. There’s also an interesting (we think) blog post over at http://engineering.freeagent.com/2017/02/06/ha-infrastructure-without-breaking-the-bank/ outlining our approach to uptime and DR.

I’ve flagged the fact that we’re returning HTML error messages for JSON requests as a bug, and that’s something we’ll fix up shortly.

If you’re seeing those 500 maintenance pages outside of those times we can certainly look into it for you. In order to do this if you could provide precise timestamps, HTTP status code, and if possible your integration id and/or name (although you might want to DM this rather than share on a public forum).

Kind Regards,
Paul

Hi Paul,

I have experienced the unexpected downtime message again, the response is still html with the content-type header set to text/html despite requesting json in the request headers so nothing seems to have changed on this issue since i last experienced it.

As for the downtime, I also checked the status.freeagent.com page and there is nothing listed for today as unplanned or planned as suggested.

Here is the response i received, the status code was 502

==================================

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
  <title>We're having to perform some unexpected maintenance.</title>
  <meta http-equiv="Content-type" content="text/html; charset=utf-8" />

  <style type="text/css">
    <!--
      /*=========================== MAINTENANCE PAGE =========================*/
      html {background:#ecf1f2;}
      #Main {margin:0;padding:0 0 6.2em 0; width:100%;}
      body#session{background:#ecf1f2;margin: 0;padding: 0;font:62.5%/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;}
      #Main p{font-size:14px; margin:1em 0;}

      #loginbox {margin: 1em auto 0 auto;padding: 10px;width: 50em;color:#666;background:#d2dcde;clear:both;}
      #session .plogin{margin-top:80px;}
      #session .maintenance{margin-top:20px;}
      #loginbox #innerinfo{padding:10px 20px 10px 20px}
      #loginbox h1 {margin:10px 0 5px 0;text-align:center; color:#000; font-size:18px;}

      #infobox{overflow:hidden}
      #innerinfo, .innerinfo{border:1px solid #fff; border-top:0;background:#ecf1f2;padding:1em;overflow:hidden}

      .maintenance{padding:0 0 20px 80px; background:url(https://freeagent-maintenance-assets.s3.amazonaws.com/maintenance.png) left 10px no-repeat}
      .error{padding:0 0 20px 80px; background:url(https://freeagent-maintenance-assets.s3.amazonaws.com/error.png) left 10px no-repeat}
      .maintenance ul, .error ul{margin:0;padding:0;}
      .maintenance li, .error li{font-size:14px;margin:0; padding:0;}
      #loginbox .maintenance a, #loginbox .error a{font-size:13px;}
    -->
  </style>
</head>
<body id="session">
  <div id="wrap">
    <div id="Main">
      <div id="loginbox" class="plogin">
        <div id="innerinfo">
          <h1>We'll be back soon!</h1>
          <div class="maintenance">
            <p>We're experiencing unexpected downtime. We should be back online shortly.</p>
            <p>Thank you for your patience.</p>
          </div>
        </div>
      </div>
      <div style="clear:both"></div>
    </div>
  </div>
</body>
</html>

=========================================

Just keeping you updated.
It worked again minute later when i tried it

Thanks,
Chris