Heroku Status

Last Updated: 17 March 2015

alert notification status

Table of Contents

Heroku Status provides the current status and incident history report for the Heroku platform. The status site covers all stacks on the Heroku platform (Bamboo and Cedar) as well as key add-ons necessary for smooth operation of production applications.

Accessing Heroku Status

The current status and history of platform issues is shown at:

https://status.heroku.com

The heroku client can be used to ascertain the current status:

$ heroku status
=== Heroku Status
Development: No known issues at this time.
Production:  No known issues at this time.

Status information

The status site includes the current status of the platform, the uptime for the last full month, and the most recent incidents, all broken down into two categories, production and development. The site will auto-refresh when there is an incident or update.

Production Issues

Production issues are those that affect running, stable applications that have at least two web dynos or use a non-hobby database (or no database at all).

Components include:

  • Dynos
  • Heroku Postgres databases
  • Routing
  • Scheduler

Development Issues

Development issues are those that affect the health of deployment workflow, the Heroku API, and tools.

Components include:

  • Git-push deployments and the Deployment API
  • General git activity
  • Dropbox Sync and Github Sync
  • API / CLI / Heroku Dashboard (scaling up/down, changing configuration, etc.)
  • Un-idling free dynos
  • New app creation
  • Hobby-tier Heroku Postgres databases

The types of platform work that can result in notifications, and the types of notifications are documented in Platform Updates, Maintenance and Notifications.

Getting notified when there is an incident

You can sign up for email or SMS alerts when there are issues affecting the platform. Go to the status site and click on Subscribe to Notifications. You can also follow the twitter feed, RSS feed, or connect to the status site via its API.

Uptime calculation

Heroku is a distributed platform spread across many different datacenters and components. During any given incident, it is rare for all applications running on the platform to be affected, and they’re usually not affected evenly.

For this reason, we report our uptime based on a combination of rate of platform errors for the month (H99s) and canary availability. Canary is our testing service which gathers platform app reliability and performance metrics by executing repeated HTTP requests against various platform endpoints as a regular external user.

Heroku Status Uptime

Uptime figures are featured on the Heroku Uptime site.

Once we have calculated the uptime for a given month, it will be displayed on our status site. Gathering and tallying these numbers is a manual process so there may be a delay before the uptime for a given month is posted.

In addition to monthly uptime figures, we’re also showing incident occurrences on a per-day basis. These incidents are indicated on the calendar based on length and severity of incident.

Actions to take when you suspect an outage

Check the status site if there is a current incident. If nothing is reported, or if you are experiencing something different than what is reported, submit a support ticket.

Heroku Status API v3

Get current status

The Heroku Status API has CORS support, allowing client-side JavaScript requests.

$ curl "https://status.heroku.com/api/v3/current-status"
{"status":{"Production":"green","Development":"green"},"issues":[]}

Get list of issues (optionally limited by date or count)

$ curl "https://status.heroku.com/api/v3/issues?since=2012-04-24&limit=1"
[{"created_at":"2014-04-01T17:16:00Z","id":604,"resolved":true,"status_dev":"green","status_prod":"green","title":"Error when deploying certain apps","upcoming":false,"updated_at":"2014-04-02T06:03:49Z","href":"https://status.heroku.com/api/v3/issues/604","full_url":"https://status.heroku.com/incidents/604","updates":[{"contents":"This change was reverted at 7:26 PM PDT (02:26 UTC).","created_at":"2014-04-01T19:26:00Z","id":1961,"incident_id":604,"status_dev":"green","status_prod":"green","title":"Error when deploying certain apps","update_type":"resolved","updated_at":"2014-04-02T06:03:55Z"},{"contents":"At 5:16 PM PDT (00:16 UTC), we deployed a change which validated the list of add-ons being returned from buildpacks. Buildpacks failing this validation would fail with the following error:\r\n\r\n```\r\nInvalid add-on specification. Buildpacks must inform addons as a string.\r\n```\r\n\r\nThis impacted some of our own buildpacks, such as Python, Clojure, and PHP, when these buildpacks did not specify any add-ons to install.","created_at":"2014-04-01T17:16:00Z","id":1960,"incident_id":604,"status_dev":"yellow","status_prod":"green","title":"Error when deploying certain apps","update_type":"issue","updated_at":"2014-04-02T06:04:32Z"}]}]

Get a single issue by ID number

$ curl "https://status.heroku.com/api/v3/issues/336"
{"created_at":"2012-04-24T14:02:39Z","id":336,"resolved":true,"status_dev":"green","status_prod":"green","title":"Custom Domains: Errors Adding / Updating","upcoming":false,"updated_at":"2012-06-22T23:41:08Z","href":"https://status.heroku.com/api/v3/issues/336","full_url":"https://status.heroku.com/incidents/336","updates":[{"contents":"The fix has been applied, and custom domains are functioning as expected.\r\n\r\nFurther investigation shows that custom domains created or updated after 4/23/2012 19:50 UTC were affected.","created_at":"2012-04-24T15:24:58Z","id":980,"incident_id":336,"status_dev":"green","status_prod":"green","title":null,"update_type":"resolved","updated_at":"2012-06-22T23:39:21Z"},{"contents":"All previously malfunctioning custom domains are now online.  Engineers are continuing to roll out the fix.","created_at":"2012-04-24T15:06:53Z","id":979,"incident_id":336,"status_dev":"yellow","status_prod":"green","title":null,"update_type":"update","updated_at":"2012-06-22T23:39:22Z"},{"contents":"The issue has been identified and engineers are working to fix.","created_at":"2012-04-24T14:45:49Z","id":978,"incident_id":336,"status_dev":"yellow","status_prod":"green","title":null,"update_type":"update","updated_at":"2012-06-22T23:39:22Z"},{"contents":"Engineers are still investigating the source of issues regarding custom domains. We have determined that only domains added or updated in the past 24 hours should be affected.\r\n\r\nWe'll continue to provide more information as it becomes available.","created_at":"2012-04-24T14:23:58Z","id":977,"incident_id":336,"status_dev":"yellow","status_prod":"green","title":null,"update_type":"update","updated_at":"2012-06-22T23:39:22Z"},{"contents":"Engineers are investigating issues with custom domains around applications. We will provide more information as it becomes available.","created_at":"2012-04-24T14:02:39Z","id":976,"incident_id":336,"status_dev":"yellow","status_prod":"green","title":null,"update_type":"issue","updated_at":"2012-06-22T23:39:22Z"}]}