a month ago
2026-05-26 03:20:58.695 UTC [15] LOG: starting PostgreSQL 18.4 (Debian 18.4-1.pgdg13+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 14.2.0-19) 14.2.0, 64-bit
2026-05-26 03:20:58.695 UTC [15] LOG: listening on IPv4 address "0.0.0.0", port 5432
2026-05-26 03:20:58.695 UTC [15] LOG: listening on IPv6 address "::", port 5432
2026-05-26 03:20:58.707 UTC [15] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2026-05-26 03:20:58.882 UTC [44] LOG: database system was interrupted; last known up at 2026-05-26 03:03:59 UTC
2026-05-26 03:20:58.882 UTC [45] FATAL: the database system is starting up
2026-05-26 03:20:59.437 UTC [44] LOG: invalid xl_info in checkpoint record
2026-05-26 03:20:59.437 UTC [44] PANIC: could not locate a valid checkpoint record at 0/6D4DDC8
2026-05-26 03:20:59.438 UTC [15] LOG: startup process (PID 44) was terminated by signal 6: Aborted
2026-05-26 03:20:59.438 UTC [15] LOG: terminating any other active server processes
2026-05-26 03:20:59.439 UTC [15] LOG: shutting down due to startup process failure
2026-05-26 03:20:59.441 UTC [15] LOG: database system is shut down
2 Replies
Status changed to Open Railway • 29 days ago
a month ago
looking at those timestamp I think your postgres service stopped after starting, not sure if this caused by incident at May 20, but you can try redeploy source image and see if that fixes it
go to your postgres service > open command palette (Ctrl+k on PC) > click "Redeploy source image"
if this helps, then the problem caused by corrupted cached image, doing step above will pull fresh postgres image
also, does your postgres works fine before?
a month ago
I’d be careful with this one. invalid xl_info + could not locate a valid checkpoint record usually isn’t just a normal startup delay. It can mean the WAL/checkpoint state on the Postgres volume is damaged.
So I wouldn’t delete the volume or create a fresh DB over it.
Redeploy source image is okay to try if the image is stale, but if the attached volume has corrupted WAL, redeploying the image probably won’t fix that part. Before any destructive recovery, I’d preserve the volume first / ask Railway if they can snapshot or copy it.
Cleanest path is:
- stop anything writing to that DB
- check if you have a backup/PITR to restore from
- preserve/copy the current volume
- only then attempt recovery on a copy
pg_resetwal is usually a last resort for this kind of thing, and I’d only touch it after copying the volume, because it can make data loss worse if used on the only copy.
Status changed to Solved Anonymous • 28 days ago