2 months ago
My app downloads chromium browser upon deployment from:
Downloading Chromium 140.0.7339.16 (playwright build v1187) from https://cdn.playwright.dev/dbazure/download/playwright/builds/chromium/1187/chromium-linux.zip
But it's stuck at 0%, leading me to believe this is failing from Railway servers specifically. I am able to download an access the CDN link from my own browser.
Attachments
1 Replies
a month ago
What I’m seeing is the deploy getting stuck specifically at:
npx playwright install chromium → 0% of 173.7 MiB
So the build isn’t failing in your code — it’s hanging while downloading a ~174MB Chromium zip from Playwright’s CDN from inside Railway’s build container. Even if the link opens fine in your browser, Railway’s network path can behave differently (routing/DNS/IPv6/CDN throttling), and big binary downloads are the first thing to “stall”.
The most reliable fix (recommended)
Instead of downloading Chromium during every deploy, use the official Playwright image (it already includes browsers + deps). This avoids the CDN download entirely and makes deploys consistent.
If you want to keep your current setup
A few things that usually fix “stuck at 0%” downloads:
Force IPv4 (this fixes a lot of CDN stalls on some hosts)
Run the install like this:
NODE_OPTIONS="--dns-result-order=ipv4first" npx playwright install chromiumAdd retries / longer timeouts
Sometimes it’s just a slow/blocked connection and the default behavior doesn’t recover cleanly.Cache the Playwright browser folder
So it doesn’t need to re-download on every build.
Quick diagnostic
To confirm it’s a network stall in the build container, add a step before the install:
curl -I https://cdn.playwright.dev/If that hangs or is extremely slow inside Railway, it confirms it’s an outbound connectivity/routing issue during build.
If you tell me whether your project is using Dockerfile or Nixpacks, I can give you the exact snippet to implement the “no download during deploy” setup (the clean solution).