> ## Documentation Index
> Fetch the complete documentation index at: https://docs.get-exo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Node not found

> No such graph node exists for the effective subject.

This page is the resolution target of the RFC 9457 `type` URI on every `node_not_found` problem body: `https://docs.get-exo.com/errors/node_not_found`.

**HTTP status: `404` Not Found**.

```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
{
  "type": "https://docs.get-exo.com/errors/node_not_found",
  "title": "Node not found",
  "status": 404,
  "detail": "No such node owned by the effective subject.",
  "code": "node_not_found",
  "requestId": "req_9f2c41ab7d0e5c18"
}
```

## Why it happens

Graph reads and writes are scoped to the effective subject. A node that belongs to a different subject in the same organization is not visible and comes back as not found.

A forgotten node also reads as not found on the ordinary get. Its tombstone is still addressable by `POST /v1/graph/nodes/{node_id}/undelete` inside the retention window.

## How to fix it

* Confirm the id came from `GET /v1/graph/nodes` under the same effective subject.
* If you meant a different end user's node, send `X-Exo-Subject` for that subject.
* If the node was forgotten, try `POST /v1/graph/nodes/{node_id}/undelete`.

## Related

* [`edge_not_found`](/errors/edge_not_found)
* [`domain_not_found`](/errors/domain_not_found)
* [`not_found`](/errors/not_found)
* [Errors](/platform/errors) for the envelope and the full catalogue
