Skip to content
shadwshadw/Docs
GuidesAPIGetting Started
Dashboard
⌘K
Start
  • Overview
  • Getting started
  • Fundamentals
  • Production checklist
Deploy
  • Deploying apps
  • Environment & secrets
  • GitOps
  • Domains & TLS
Platform
  • Regions
  • CLI
  • API reference
  • Self-hostingOps
Errors
  • DEPLOYMENT_NOT_FOUND
Errors

DEPLOYMENT_NOT_FOUND

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.

Read the error ID first

Every 404 screen carries a unique ID. It is the fastest way to identify which node answered:

bash
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.

Common causes

The URL is wrong or the deployment was deleted

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.

You are using a preview URL for a superseded build

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.

A custom domain is not attached to a project

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.

The fleet knows the host but nothing is ready to serve it

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.

Quick checks

Confirm what the edge actually returned, including which node and why:

bash
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.

Related

shadw's error code and 404 screen intentionally mirror Vercel's, so a URL or workflow moved between the two platforms surfaces the same diagnosis. Vercel documents the equivalent error here:

Vercel — DEPLOYMENT_NOT_FOUND

Domains & TLS covers attaching a custom domain, and Regions explains how a request finds the node hosting your deployment.