Volume writes verified by writer process never visible to other readers (persists after volume wipe + redeploy)
sokonichansa-alt
FREEOP

a month ago

Issue: Files written to our attached volume (web-volume, mounted at /app/generated-sites) are verified present by the writing process (every individual file checked via existsSync, all confirmed) but are never visible to any other reader of the same volume — not a separate HTTP request in the same app, not a Console SSH session — even minutes later.

Reproduced multiple times, most recently:

Job f365f1b9-7251-4b20-b959-8240878c300e, completed 2026-09-06T11:37:58Z, claimed by container 667f059ec8ec, wrote to /app/generated-sites/b33a2fb2-900a-4631-b85f-c1ddce0b2e6f (confirmed via internal verification: directory + ~20 individual files all checked present).

A separate request to the same running service, seconds and repeatedly afterward, reports the directory does not exist.

Ruled out:

Disk space — volume was at 1% usage (432 MB free of ~433 MB) when this last reproduced.

Multiple replicas — not possible per Railway's own restriction for volume-attached services.

Volume corruption — wiped the volume entirely (Settings → Wipe Volume); issue reproduced identically on the fresh volume.

Stale container — triggered a manual redeploy; issue reproduced identically, and the container hostname was unchanged across the wipe and the redeploy.

Volume: 500 MB, mount path /app/generated-sites, device /dev/zd3568.

Solved

2 Replies

Railway
BOT

a month ago

Your project has two separate volumes, one on each service: worker-volume (attached to the worker service) and web-volume (attached to the web service), both mounted at /app/generated-sites. Volumes on Railway are per-service and are not shared, so files the worker writes land on worker-volume and are never visible to the web service, which reads from its own independent web-volume.


Status changed to Awaiting User Response Railway • 30 days ago


sokonichansa-alt
FREEOP

a month ago

That matches what we're seeing — we have a worker service that shouldn't exist in our architecture (a leftover from an earlier design). Our intended setup is a single web service handling everything, triggered by a lightweight cron pinger with no volume of its own. We'll remove the worker service and its volume. Thanks — this fully explains the issue.


Status changed to Awaiting Railway Response Railway • 30 days ago


Status changed to Solved Railway • 30 days ago


Welcome!

Sign in to your Railway account to join the conversation.

Loading...