A request was made for a deployment that does not exist. The hostname resolved and reached a shadw edge node, but neither that node nor the peers it knows of have a deployment or project for that host. The response is 404 with the header x-hive-error: DEPLOYMENT_NOT_FOUND.
This is a routing answer, not a crash. Your app was never invoked, so there are no runtime logs for the request — which is exactly how you tell it apart from an application error.
Every 404 screen carries a unique ID. It is the fastest way to identify which node answered:
Code: `DEPLOYMENT_NOT_FOUND`
ID: `sfo1::a1b2c-1785527146044-3f9c2db1e77a`The part before :: is the region that served the response. That matters because shadw resolves the public hostnames round-robin across the fleet: if only some requests 404, compare the region prefix on a failing response against a succeeding one — a difference points at one node, not at your deployment.
The most common case. A per-deployment URL points at one immutable build; deleting the deployment, or deleting the project, retires that URL permanently. Re-check the address against the deployment list in your dashboard.
Preview and commit URLs are pinned to a specific commit. Promoting or rolling back production does not move them. For an address that always follows the current production build, use the project's production domain rather than a commit URL.
DNS can point at shadw while no project claims the hostname — the request arrives and matches nothing. Attach the domain to the project under its domain settings, then re-request. Until it is attached, every request for that host returns this error.
This case returns 503, not this 404. When a deployment record or a project claims the host but this node has nothing ready to serve for it (a build in progress, a failed or cancelled build, no completed build yet, or no healthy route to the node that hosts it), the response carries the header x-hive-error: DEPLOYMENT_NOT_READY, a retry-after of 30 seconds and a page that names the project and the reason. A 404 means neither this node nor its peers know the host.
Confirm what the edge actually returned, including which node and why:
curl -sI https://your-app.shadw.app/ | grep -i 'x-hive-'x-hive-error confirms the classification and x-hive-region names the serving region. If the header is absent entirely, the response did not come from a shadw edge node at all — check that the hostname's DNS still points here before debugging anything else.