Critical Production PostgreSQL Data Loss Occurred Before Any Recovery Attempt / Unable to Reattach Original Volume
phong-swit
PROOP

13 hours ago

Important clarification:

The database data was already missing before we attempted any volume swap.

Timeline:

  1. Nobody from our team deployed, restored, deleted, migrated, or intentionally modified the production database.

  2. We noticed the application was failing and immediately checked the Railway PostgreSQL database.

  3. At that moment, the database was already missing data. Many tables were empty/missing and the DB size was only around 14 MB, while previous production volume/backups were around 1.15 GB.

  4. We then saw multiple PostgreSQL volumes/snapshots in the Railway UI, including:

    • postgres-volume
    • postgres-2026-03-30 18:33 UTC
    • postgres-2026-03-28 07:10 UTC
  5. Because the production DB was already missing data, we tried switching/attaching another volume to check whether the original data was still there.

  6. After trying the volume swap, the DB still did not show the expected production data.

  7. We then attempted to switch back / reattach the previous volume, but Railway now blocks the operation with:

Service already has a volume attached in this environment. A service can only have one volume.

So the critical point is:

The data loss happened first.

The volume swap attempt was only a recovery attempt after we had already confirmed the production DB was missing data.

Please investigate the original PostgreSQL volume state before our recovery attempts and help us restore or reattach the correct production volume/snapshot.

Awaiting Railway Response

9 Replies

Status changed to Awaiting Railway Response Railway about 13 hours ago


hoaiqt-web
PRO

3 hours ago

URGENT UPDATE:

It has been several hours and our entire company's operations are completely paralyzed. This is a severe production outage.

We are a paying PRO customer and this data loss/volume conflict issue is causing catastrophic business disruption for us. We have also escalated this via email to team@railway.com.

Could a Level 3 Infrastructure Engineer please look into our physical volume immediately? We desperately need to recover our data from your internal platform snapshot from MAY 24 before it is permanently overwritten or garbage-collected by your system.

Please advise immediately. Every minute counts!


huypxbaolam
PRO

3 hours ago

Adding a +1 to this issue. >

I am facing the exact same catastrophic data loss today with my Postgres database. Absolutely no deployments or manual changes were made from our side. The database just woke up completely empty (logs show normal checkpoints but with almost 0 data, acting like a brand-new blank volume).

this appears to be a broader platform issue affecting persistent volumes silently. Our production ERP system is completely paralyzed right now. Could you please escalate this urgently and help us restore the connection to our original volumes?


kiennvuong
FREE

3 hours ago

+1, we are also experiencing the same issue with our Postgres database. No deployments or infrastructure changes were made from our side before the data suddenly disappeared. This looks like a serious persistent volume problem on the platform side. Please investigate urgently.


Anonymous
FREE

2 hours ago

We are seeing the same behavior on our side. The database restarted with an empty state even though no actions were taken from our infrastructure team. This appears to be related to persistent storage/volume handling on the platform. Any urgent update would be greatly appreciated.


hoaiqt-web
PRO

2 hours ago

EXPLICIT PERMISSION TO RESTORE:

Dear Railway Engineering Team,

We are in the GMT+7 timezone and our team will be offline for the next few hours (night time).

To minimize our severe downtime, if you are able to locate our lost volume or the internal platform snapshot from MAY 24, 2026, you have our EXPLICIT AND FULL PERMISSION to restore/reattach it immediately to our production Postgres service.

You do NOT need to wait for our confirmation to proceed with the restoration. Please just do it and let us know. Thank you!


hoaiqt-web
PRO

2 hours ago

Additional Note on Snapshot Timing:

For the restoration, the absolute best/most complete snapshot would be around May 24 at 23:00 UTC (which is May 25 at 6:00 AM in our GMT+7 timezone - just 1 hour before the incident).

However, if you cannot find a snapshot at that exact time, ANY recent snapshot from the last 1 to 3 days is perfectly acceptable. Please just restore the most recent valid snapshot you have prior to the incident. Thank you!


sam-a
EMPLOYEE

an hour ago

Your data is not lost. Your original postgres-volume is still attached to the "Postgres" service and holds ~1.15 GB, which matches your expected production size. The service your application is currently querying is a different Postgres instance created during your recovery attempts, which is why it appears empty (~14 MB with missing tables).

During the backup restore process, new volumes and services were created ("Postgres-Phong-đang-recovery", "test 1", and others). Your app's DATABASE_URL likely now points to one of these newer, near-empty instances instead of the original "Postgres" service. Update your application's database connection variables to point back to the original "Postgres" service and your data should be accessible again.

For the other users reporting similar issues in this thread, please open individual support threads so we can investigate your specific projects and volumes.


Status changed to Awaiting User Response Railway about 1 hour ago


bachtn-web
FREE

an hour ago

URGENT (PRO Plan)

Our entire company's operations are currently paralyzed due to this production outage. Every single minute of downtime is causing severe business disruption for us right now. We urgently need a Railway engineer to look into this volume conflict immediately.

Thank you for your prompt assistance!


Status changed to Awaiting Railway Response Railway about 1 hour ago


sam-a

Your data is not lost. Your original `postgres-volume` is still attached to the "Postgres" service and holds ~1.15 GB, which matches your expected production size. The service your application is currently querying is a different Postgres instance created during your recovery attempts, which is why it appears empty (~14 MB with missing tables). During the backup restore process, new volumes and services were created ("Postgres-Phong-đang-recovery", "test 1", and others). Your app's DATABASE_URL likely now points to one of these newer, near-empty instances instead of the original "Postgres" service. Update your application's database connection variables to point back to the original "Postgres" service and your data should be accessible again. For the other users reporting similar issues in this thread, please open individual support threads so we can investigate your specific projects and volumes.

phong-swit
PROOP

an hour ago

Thanks for checking this.

However, I manually verified both points already:

  1. The backend DATABASE_URL is still pointing to the original Postgres service.
  2. When I directly open/query the original Postgres instance itself, it also appears nearly empty (~14 MB with missing tables).

So this does not seem to be only an application connection issue.

Additionally:

  • before any recovery attempt, the production app suddenly failed
  • I immediately checked the original Postgres service and the data was already missing at that moment
  • the volume swap attempts happened only afterwards while trying to recover

This is why I’m confused by the current state:

  • the original postgres-volume still shows ~1.15 GB
  • but querying the original Postgres instance itself does not expose the expected production data

Could there possibly be:

  • a volume mount mismatch
  • stale attachment metadata
  • partial volume rollback
  • or PostgreSQL starting against a different/empty PGDATA path while the original volume still exists?

At the moment, the behavior seems inconsistent between:

  • the reported volume size (~1.15 GB)
  • and the actual visible database contents (~14 MB / missing tables)

Could you please inspect:

  • which exact volume is currently mounted to the original Postgres service
  • which PGDATA path PostgreSQL is actually reading from
  • and whether the original 1.15 GB volume contents are still accessible internally?

Thank you.

image.png

Attachments


Welcome!

Sign in to your Railway account to join the conversation.

Loading...