Custom domain SSL stuck — Railway edge returns 404 for the assigned target, blocking Let's Encrypt HTTP-01 validation
pj-max501
PROOP

a month ago

Project:attractive-alignment (cf2d6cc8-e983-4326-805b-810117c29c18)

Service:web (f60ba5f2-d736-43e5-8910-679618542a25)

Environment:production (fc8bbd7a-2fe2-4fd7-8320-35de0db48f87)

Custom domains affected (both):

  • app.timsio.com — Railway target: ap8nhvo9.up.railway.app
  • admin.timsio.com — Railway target: 5ndx2wax.up.railway.app

Issue:

The Railway edge does not route the assigned targets to any application. A direct curl to either CNAME target (or to the custom domain itself) returns a 404 with server: railway-edge:

$ curl https://ap8nhvo9.up.railway.app

{"status":"error","code":404,"message":"Application not found","request_id":"Wd9bNCOgQ_2A5E-Y8u2xcg"}

$ curl http://app.timsio.com/.well-known/acme-challenge/test

HTTP/1.1 404

server: railway-edge

This means Let's Encrypt's HTTP-01 challenge gets a 404, validation never completes, and certs stay in CERTIFICATE_STATUS_TYPE_VALIDATING_OWNERSHIP forever.

Confirmed working from our side:

  • DNS resolves correctly via 1.1.1.1 / 8.8.8.8 / Railway's own status (currentValue == requiredValue, status DNS_RECORD_STATUS_PROPAGATED)
  • No CAA records on timsio.com
  • Cloudflare records are DNS-only (grey cloud, not proxied)
  • The same web service serves correctly on its Railway-provided URL web-production-acbb1.up.railway.app (HTTP 307 → /login)

What I tried:

  • Original creation: cert stuck for ~30 min
  • Deleted both custom domains and re-created — they got new CNAME targets, I updated Cloudflare to match. Same stall: 25+ min, no progress.

NOT trying again: I'm aware Let's Encrypt has a 5/week duplicate-cert rate limit per domain. We're at 2/5 on each.

Could someone on your side check the edge-routing config for these custom domains and either fix it or rebuild it? Looks like the customDomainCreate API succeeded but the edge-router rule was never written.

Solved$20 Bounty

Pinned Solution

You need to add TXT records.

To get the TXT record contents, you'll need to access the verificationToken property under status for the customDomainCreate mutation call.

1 Replies

Status changed to Open Railway about 1 month ago


You need to add TXT records.

To get the TXT record contents, you'll need to access the verificationToken property under status for the customDomainCreate mutation call.


Status changed to Solved brody about 1 month ago


Welcome!

Sign in to your Railway account to join the conversation.

Loading...