Custom domain serves stale content even when bypassing DNS with direct Host header request
keeganzwick
HOBBYOP

20 days ago

Service: pleasant-cat (project: handle-generator)

My deployment shows "Active" with the correct latest commit, but

requests to my custom domain (gethandlenames.com) return stale HTML

from an old build — not the code in the active deployment.

I've ruled out DNS: nslookup confirms DNS resolves correctly to my

Railway target, AND I bypassed DNS entirely by sending a request

directly to my Railway-assigned subdomain (l5y2rmh8.up.railway.app)

with a Host header of gethandlenames.com — it still returned the old

content.

This means something on Railway's edge/routing layer is serving stale

content instead of the active deployment. Can someone look into what's

actually being served for this service/domain?

Solved$10 Bounty

Pinned Solution

Try setting NO_CACHE=1 in your variables and redeploy. Also make sure you’re deploying the latest commit.

I’d also try using an incognito browser to rule out browser caching.

7 Replies

Railway
BOT

20 days ago

Your service has CDN caching enabled, so the edge is serving a cached copy from a previous build. Purge the cache from your service's Edge settings (Purge All to clear everything, or Purge HTML for pages only), and the next request will fetch fresh content from the active deployment. To prevent this after future deploys, check that "Purge Cache on Deploy" in the same section is set to purge on each successful deploy.


Status changed to Awaiting User Response Railway • 20 days ago


keeganzwick
HOBBYOP

20 days ago

Adding IDs per the support guidelines:

Project ID: cf07613f-2724-4a25-b4bf-14cabb1004a4

Service Name: pleasant-cat

Service ID: 6d2d956e-b403-4c2c-8e03-fdc53f41e99c

Environment ID: 62daa3b3-fec1-40c9-802e-b82741690134 (production)

Deployment ID: 56063169 (the "Active" deployment showing commit

"Update Open Graph description for SEO")


Status changed to Awaiting Railway Response Railway • 20 days ago


Railway

Your service has CDN caching enabled, so the edge is serving a cached copy from a previous build. Purge the cache from your service's Edge settings (Purge All to clear everything, or Purge HTML for pages only), and the next request will fetch fresh content from the active deployment. To prevent this after future deploys, check that "Purge Cache on Deploy" in the same section is set to purge on each successful deploy.

keeganzwick
HOBBYOP

20 days ago

I checked Settings → Edge → CDN Caching, and the toggle is currently

OFF (screenshot attached). No "Purge Cache" or "Purge Cache on Deploy"

option appears since the feature itself is disabled.

So CDN caching doesn't seem to be the cause here — is there anything

else on the edge/routing layer that could be serving stale content

even with CDN caching turned off? Could this be a stale/orphaned

container still receiving traffic separately from the container the

dashboard shows as "Active"?

image.png

Attachments


Railway
BOT

20 days ago

To correct our earlier message, CDN caching is not the cause here. Your service has CDN enabled but response caching is off, so there is no stale cache to purge.

What we see in the edge logs is that requests to your custom domain are reaching the current active deployment on the pleasant-cat service and returning 200, so the edge is routing correctly. The content you see IS what the active deployment is serving.

Your workspace has two services both named handle-generator (in different projects), and only the one in pleasant-cat has the custom domain attached. If your recent commits are deploying to the other service, those changes would not appear at your custom domain. Check which project your repo's deploy trigger is connected to.


Status changed to Awaiting User Response Railway • 20 days ago


Railway

To correct our earlier message, CDN caching is not the cause here. Your service has CDN enabled but response caching is off, so there is no stale cache to purge. What we see in the edge logs is that requests to your custom domain are reaching the current active deployment on the `pleasant-cat` service and returning 200, so the edge is routing correctly. The content you see IS what the active deployment is serving. Your workspace has two services both named `handle-generator` (in different projects), and only the one in `pleasant-cat` has the custom domain attached. If your recent commits are deploying to the other service, those changes would not appear at your custom domain. Check which project your repo's deploy trigger is connected to.

keeganzwick
HOBBYOP

20 days ago

Ruled out the duplicate-service theory — the second handle-generator

service (project grand-wholeness) had no custom domain attached, so

it wasn't serving gethandlenames.com traffic. I've since deleted that

entire project.

Given your note that "the content you see IS what the active deployment

is serving" — this points to the build itself producing stale content,

not a routing issue. My build logs show several "cached" layer-copy

steps (e.g. "copy /app cached", "copy /app/node_modules cached"). Is it

possible the build's layer caching isn't detecting that public/index.html

changed, and is reusing a stale cached copy of the /app directory into

the final image?

Is there a way to force a clean, no-cache rebuild to test this theory?


Status changed to Awaiting Railway Response Railway • 20 days ago


Railway
BOT

20 days ago

This thread has been opened as a bounty so the community can help solve it.

Status changed to Open Railway • 20 days ago


Try setting NO_CACHE=1 in your variables and redeploy. Also make sure you’re deploying the latest commit.

I’d also try using an incognito browser to rule out browser caching.


0x5b62656e5d

Try setting `NO_CACHE=1` in your variables and redeploy. Also make sure you’re deploying the latest commit. I’d also try using an incognito browser to rule out browser caching.

keeganzwick
HOBBYOP

20 days ago

Thank you


Status changed to Solved 0x5b62656e5d • 20 days ago


Welcome!

Sign in to your Railway account to join the conversation.

Loading...