starklab.design 404s at edge despite READY deploy (live:false)

Project: Astro monorepo (Turborepo), deployed via @astrojs/vercel adapter
Domain: starklab.design (custom domain, DNS/SSL pointing at Vercel)
Symptom: https://starklab.design/ returns 404 NOT_FOUND (x-vercel-error: NOT_FOUND) at the edge — every response header (x-vercel-id) is edge-only (e.g. fra1::...), never showing a function region, meaning the request never reaches our deployment’s serverless function at all.

What’s confirmed working, checked directly against the API/CLI:

  • Latest production deployment (dpl_CVLvqJvndh6hipTKUiyJPx6M8MgT) reads readyState: "READY", target: "production"
  • alias on that deployment includes starklab.design, aliasError: null
  • GET /v9/projects/{id}.latestDeployment.id correctly points at this deployment
  • Domain is directly in the project’s own domains list — only one team and one project exist on this account, so there’s no possibility of it being attached to a different project
  • Framework Preset is Astro (confirmed via vercel pull, reflecting actual dashboard settings)
  • vercel build run locally (replicating the real build machine) completes successfully and produces a correct Build Output API v3 artifact (config.json, static/, functions/_render.func/) at the repo root — /.vercel/output

What I’ve already ruled out by testing, not just checking settings:

  • outputDirectory misconfiguration — found a real one (was pointed at Astro’s intermediate dist/ folder instead of the adapter’s actual output), fixed it, redeployed. No change to the symptom.
  • Root Directory / Build Output API path mismatch — the theory that Edge looks for .vercel/output relative to an unset Root Directory (repo root) while our artifact sat elsewhere doesn’t hold: my local vercel build run puts the artifact at the repo root already, matching that expectation.
  • Multiple fresh production deployments — all READY, all correctly aliased, symptom unchanged every time.

The one thing that hasn’t moved, across every deployment and every fix:
GET /v9/projects/{id} returns "live": false. I don’t have visibility into what that field actually gates internally — has anyone else seen a custom domain 404 at the edge (never reaching a function region) correlate with this field, even on a project with an otherwise-healthy READY deployment? Trying to figure out if this is a known account/project-state issue before I file an official support ticket.

Happy to share full deployment IDs / config if useful for anyone debugging alongside.


There’s another community post with 404 debugging tips that might be helpful. Please give these solutions a try and let us know how it goes.

A human should be around soon to offer more advice. But you can also get helpful information quickly by asking v0.