|Docs

Incident Management

Introduction

Railway understands the importance of effective incident management procedures. Everything we do is to minimize downtime of your workloads and applications and maximize communication when any part of the Railway platform goes down.

In the interest of transparency, we publish as much of Railway's procedure to keep Railway's customers in the know on how we handle and learn from incidents.

Monitoring + reporting

Railway has a robust monitoring system in place to proactively detect and address any potential incidents. We continuously monitor Railway's infrastructure, including servers, networks, and applications, to ensure their smooth operation. By monitoring key metrics and performance indicators, we can identify any anomalies or potential issues before they escalate into full-blown incidents.

However, it's important to note that while we strive to stay ahead of incidents, there may be situations where unforeseen issues arise. In such cases, we rely on qualitative customer feedback to help us identify and address any issues promptly. We encourage Railway's customers to report any problems they encounter through the Railway Help Station or Slack.

Status page + uptime

Railway's uptime and incident retrospective can be accessed on the Railway status page at https://status.railway.com/. On this page, you can view the historical uptime of Railway's systems and services. Additionally, you can find detailed information about past incidents, including retrospectives that provide insights into how incidents were handled and what measures were taken to prevent similar issues in the future.

The status page is built and hosted in-house. If you'd like to consume its data programmatically, it's backed by two simple JSON endpoints:

  • https://api.railwaystatus.com/status — current status of Railway's systems and services. Its response schema is published at https://api.railwaystatus.com/status/schema.json.
  • https://railway.com/.railway/pops — Railway's CDN points of presence (POPs) and their status. These are edge POPs, not deployment regions.

These endpoints are provided as-is, without any support, and their response format may change without notice.

For Enterprise customers, we offer SLOs and guarantees of service that may not be represented on the uptime dashboard.

Uptime methodology

The uptime on the status page is the share of the last 90 days that a component was up. Major outages count as 100% downtime, while partial outages are counted at 30% downtime. This section explains how we calculate uptime.

Definitions

Uptime

The share of the last 90 days, plus today, that a component was up.

downtime = major outage hours + (0.3 × partial outage hours)
uptime   = 1 - downtime / total hours in the last 90 days, plus today

Downtime

The share of the last 90 days, plus today, that a component was down. An hour of major outage counts as an hour of downtime, and an hour of partial outage counts as 18 minutes (30% of 60 = 18).

Incident

An unplanned event that harms a customer's running workload or stops them from doing something on Railway. An incident affects one or more components.

Components

A distinct part of Railway that has its own uptime, such as Builds or Networking - Public.

ComponentWhat it covers
ComputeThe CPU and memory infrastructure powering your services. Incidents may affect service performance, availability, or capacity to start new workloads.
StoragePersistent volumes attached to your services. Incidents may affect reading or writing files, database availability, or starting services with attached volumes.
Storage BucketsStoring and retrieving objects such as uploads, images, and backups. Incidents may cause uploads, downloads, or other bucket operations to fail.
Networking - PublicConnecting to your services over the internet. Incidents may make your app slow or unreachable even while it is running.
Networking - PrivateCommunication between services over Railway's private network. Incidents may prevent your app from reaching its database or other services.
Networking - Outbound Static IPsConnections from your services to external systems using a fixed IP address. Incidents may prevent access to APIs or databases that allowlist that address.
SandboxesCreating and running isolated environments for executing code. Incidents may prevent sandboxes from starting or interrupt active sessions.
DomainsRegistering domains and setting them up for your services. Incidents may delay domain purchases, setup, or activation.
BuildsTurning your code into a deployable image. Incidents may delay or block new releases without affecting apps that are already running.
Dashboard - railway.comThe website you use to manage Railway projects. Incidents may prevent viewing or changing your configuration while deployed apps continue running.
API - backboard.railway.comThe API used to manage Railway resources through the dashboard, CLI, and automation. Incidents may prevent management actions or deployments while existing apps continue running.
AuthenticationSigning in to Railway and authorizing access. Incidents may prevent login or new connections without interrupting deployed apps.
ObservabilityCollecting and displaying service logs and metrics. Incidents may delay or hide monitoring data while your services continue running.
Payments & BillingProcessing payments and managing subscriptions, invoices, and billing information. Incidents may prevent payments or billing changes.
Support & Community - station.railway.comAccessing Railway's support and community discussions. Incidents may prevent opening tickets, reading discussions, or receiving updates.
External & Third-Party IntegrationsExternal services Railway depends on for source code, container images, and packages. Incidents may block affected builds or deployments while existing apps continue running.

Major outage

The impact level for a component that is unavailable. Every minute counts in full as downtime.

Partial outage

The impact level for a component that is unavailable for some customers, some regions, or some of its functions, while the rest still works. It shows on the day bar, and each minute counts as 30% of a minute of downtime.

Degraded performance

The impact level for a component that works but is slower, or returns more errors, than normal. It shows on the day bar but doesn't count as downtime.

Scheduled maintenance

Planned work we post in advance, with a start time and an estimated end time. It never counts as downtime, as long as we give advance notice.

Impact levelCounts as downtimeShows on the day bar?
Major outage100%Yes
Partial outage30%Yes
Degraded performance0%Yes
Scheduled maintenance0%Yes, if nothing worse happened that day

Calculations

Component uptime

weighted downtime = major outage time + (0.3 × partial outage time)
component uptime  = 1 - weighted downtime / (91 × 24 hours)

The window is the last 90 days plus today, in UTC.

Incident duration

An incident counts from when we post it to when we resolve it. Time before we post it doesn't count. Time spent monitoring a fix does.

Impact weighting

We weight each impact level by how much of a component is down. A major outage counts 100%, a partial outage 30%, and degraded performance 0%. We call this 100/30/0.

A component that's fully down should cost the most. A component that's down for some customers should still cost something, or a partial outage that lasts for days would leave uptime at 100%. Degraded performance means the component still works, so it doesn't count.

The 30% is a convention adopted by, among others, GitHub and Atlassian. Although it is flawed (a partial outage that hits 5% of customers and one that hits 50% count the same), we use it because it's simple, it's applied the same way every time, and it's a common way to weight partial outages so that they actually count against uptime, which they should.

Two rules keep the weighting honest:

  • Each period counts at the level in effect at the time. If an incident is a major outage for 2 hours and then a partial outage for 10 hours, it counts as 2 + (0.3 × 10) = 5 hours of downtime.
  • When incidents overlap, the highest level wins. A major outage and a partial outage on the same component during the same hour count as 1 hour of downtime, not 1.3.

Group rollup

A group's uptime counts the time when any of its components was down. We combine the downtime of every component in the group (and every region of a regional component), so time when two components are down at once counts once, not twice. When components overlap at different impact levels, the highest level wins, using the weights above.

For example, if Builds is in a major outage for 10 hours in September and the Dashboard is in a major outage for 10 hours in October, the group counts 20 hours of downtime. If both outages happened during the same 10 hours, the group counts 10.

A group's uptime is never higher than its lowest component, and it never double-counts overlapping incidents.

Rounding

We round every figure to 2 decimal places. Anything at 99.99% or above shows as 100.00%. As illustrated below, it is worth noting that it's possible to "hide" up to 13 mins of downtime in a 91 day lookback period and have that round up from 99.99% to 100%.

Day bar color

Each day takes the color of the worst impact that touched it.

Uptime reference

UptimeAllowed downtime over 91 daysAllowed downtime in a 31-day month
99.99%13 min4.5 min
99.9%2h 11m45 min
99.5%10h 55m3h 43m
99%21h 50m7h 26m
97.10%63h 20m21h 34m

Philosophy

1. Our first job is keeping your workloads up

Workload or deployment uptime is our number one priority and the number one metric we care about on the status page. As a cloud provider we take seriously the mandate to keep your apps running independent of the platform itself.

2. We call every incident, no matter how small

We post every incident on the status page, however small and it is our policy to write thorough incident reports for every major outage. For full transparency, those reports are listed below.

Date (UTC)Incident report
Oct 20–22, 2026October 21 security incident (preliminary)
Sep 30, 2026Domain routing disruption
Jul 2, 2026US East services outage
May 19–20, 2026GCP account suspension
Mar 30, 2026Authenticated user data cached
Feb 18–21, 2026DDoS and Cloudflare outage
Feb 11, 2026February 11, 2026
Jan 26–29, 2026January 28–29, 2026
Dec 16, 2025December 16, 2025
Dec 8, 2025December 8, 2025
Nov 25–26, 2025November 25, 2025
Nov 20, 2025November 20, 2025
Oct 28, 2025October 28, 2025
Oct 16, 2025October 16, 2025
Oct 15, 2025October 15, 2025
Sep 22, 2025September 22, 2025
Jun 6, 2025June 6, 2025
Apr 30, 2025April 30, 2025
Apr 23, 2025April 23, 2025
Dec 17, 2024December 16, 2024
Aug 27, 2024August 27, 2024
Jun 11, 2024June 11, 2024
May 4, 2024May 4, 2024
Jan 31, 2024January 31, 2024
Dec 13, 2023December 13, 2023
Dec 1, 2023December 1, 2023
Nov 30, 2023Google Cloud host restart

3. Upstream failures are our failures

We own everything up and down the stack, including the upstream providers we choose, such as cloud and transit providers. When they fail, it counts against our uptime. Third-party services you connect to Railway, such as GitHub, Docker Hub, and npm, are shown separately and don't count against it.

4. Degradation procedure and precedence

In the event that we determine it's necessary to restrict certain components to the Railway userbase, we do so in reverse order of plan service level:

  • Trial users
  • Hobby users
  • Pro users
  • Enterprise users