URL_NOT_FOUND
The target URL returned 404 — the page doesn't exist on the origin.
| Code | HTTP status | Retryable? |
|---|---|---|
| URL_NOT_FOUND | 404 | No |
What this means
URL_NOT_FOUND is a passthrough of the origin's 404. Onto attempted the fetch, the origin returned 404 Not Found, and Onto preserves that signal back to you. This is distinct from ROBOTS_BLOCKED (site refused before fetch) and WAF_BLOCKED (site refused at fetch time) — here the site responded normally, the URL just doesn't exist.
When you'll see it
HTTP 404. Body always includes code: "URL_NOT_FOUND". Branch on code, never on the human-readable message — wording can change without notice; the code is the stable contract.
Example response
{
"status": "error",
"code": "URL_NOT_FOUND",
"message": "Target URL returned 404"
}How to handle
Check the URL is current. Many sites change URL structure on relaunches; if you're following a stale aggregator link, the canonical URL has probably moved. If you control the input, validate that the URL was reachable when it entered your system. If the URL was historically valid, the Wayback Machine may have an archived copy you can read instead.
Suggested handling in a Node client:
if (data.code === 'URL_NOT_FOUND') {
// The page is gone; skip this URL.
return null;
}Related errors
| Code | Status | What it means |
|---|---|---|
| INVALID_URL | HTTP 400 | The request body wasn't valid JSON, or the url field was missing or unparseable as a URL. |
| WAF_BLOCKED | HTTP 403 | The target site's WAF or CDN refused the Onto crawler (origin returned 401 / 403). |
See the full error index for the complete catalog with the handling switch statement covering every code at once.