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) readsreadyState: "READY",target: "production" aliason that deployment includesstarklab.design,aliasError: nullGET /v9/projects/{id}.latestDeployment.idcorrectly points at this deployment- Domain is directly in the project’s own
domainslist — 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 viavercel pull, reflecting actual dashboard settings) vercel buildrun 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:
outputDirectorymisconfiguration — found a real one (was pointed at Astro’s intermediatedist/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/outputrelative to an unset Root Directory (repo root) while our artifact sat elsewhere doesn’t hold: my localvercel buildrun 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.