Incident Report: December 8th, 2025

Incident Report: December 8th, 2025

Authors: Noah Dunnagan & Ray Chen Date: Dec 8, 2025

Impact

The outage disrupted Railway’s backend API, affecting “dashboard access, CLI operations, GitHub-based deployment processing, login, and API functionality.” Notably, running deployments remained operational, and users avoiding dashboard interactions experienced no problems.

Incident Timeline

  • 15:03 UTC – Engineers merged a database schema change with data migration
  • 15:17 UTC – Migration began processing
  • 15:18 UTC – “Lock conflicts in the database caused backend replicas to become unhealthy”
  • 15:26 UTC – Migration completed; replicas recovered

Root Cause

Railway deployed a migration adding a nullable column to a heavily-used table containing approximately 1 billion rows. A long-running query held locks, blocking the migration. Connection attempts accumulated until “PgBouncer exceeded the database’s connection limit,” causing replicas to fail health checks and be removed from traffic rotation.

Remediation

Once the prolonged query released its locks, the migration applied immediately, allowing replicas to reconnect and resume serving traffic.

Preventative Measures

  • Increase database connections and reconfigure PgBouncer
  • Fix the long-running query to prevent future row lock conflicts