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

# Graph Health

> Compare the live graph to the published ontology and repair mismatches in place

## Overview

Navigate to **Admin > Monitoring > Graph Health** to see where the live graph disagrees with the
published ontology, and to repair those mismatches from the same page.

This page changes the graph. [Graph Evaluation](/admin-guide/graph-evaluation) judges extraction
quality and does not write. [Startup Health](/admin-guide/startup-health) checks migrations, seeds,
and indexes. Neither of those is a graph repair.

Reading the page requires Monitoring **read** access. Scan and Fix require Monitoring **write**
access.

## Scan

**Scan** does not change the graph. It starts in the background. The table keeps the previous
results until the new scan finishes. Fix stays unavailable while a scan is running.

| Status | Meaning |
| - | - |
| **running** | The scan is still in progress |
| **healthy** | Every finding is ok |
| **action needed** | At least one finding can be reviewed |
| **degraded** | A check failed to read the graph, or a scan did not finish |

An empty list counts as healthy only after a scan has finished.

## Findings

Findings are grouped into **Schema**, **Structure**, **Content**, and **Metric**. Each row shows
a count and a few sample nodes.

| Row status | Meaning |
| - | - |
| **ok** | This check found nothing to repair |
| **action needed** | Review the row. Fix when the page offers it |
| **failed** | The check could not read this part of the graph |

**Fix** asks you to confirm. Some rows apply one repair. Others ask you to choose from a list.
Rows with no Fix are report-only. Each repair writes a [lineage](/admin-guide/graph-lineage)
record with source `graph_health`.

Fix one finding at a time. A large count is applied in batches, and the row stays until that
finding is done.

## Checks

### Unknown label

A label whose casing does not match an ontology node type can be renamed to that type. A label
that is not a node type is listed only; rename it in the graph browser. Labels with no remaining
nodes are omitted.

### Unknown property

A property key that is not an attribute of that ontology type. Fix removes it. Ingestion keys and
vector keys are left alone.

### Property type

A node or relationship value stored as a different type than the ontology. Fix rewrites the stored
value to the ontology type.

### Illegal relationship

A source, relationship, and target the ontology does not allow. When one legal relabel is safe for
every node in the pattern, Fix applies that relabel. Otherwise choose delete, or a relabel that is
safe for the nodes it would change.

### Orphan nodes

Nodes of an ontology type with no relationships. Fix deletes them.

### Duplicate entities

The same entity more than once. An exact group shares a name, and shares a parent or identity
attributes when the ontology implies them. Fix merges the whole group into one survivor. A near
pair is two similar names. Choose merge or dismiss. A dismissed pair stays dismissed on later
scans.

### Contradicting values

Lineage shows more than one data source wrote different values for the same property. The row
shows the current value. Choose which value to keep. On a large graph this is the disagreements
the scan read, not every multi-source node.

### Stale enrichment

A document changed after an enrichment rule wrote facts derived from it. Report only.

### Label mix

Node counts compared with the previous scan, including a label that dropped to zero. Report only.
A count change stays on this tab and does not mark the scan action needed. The first scan records
a baseline and does not list changes.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.