## TL;DR

Exposures only appear in docs when their YAML files live where dbt parses them and the YAML is valid. Put exposure definitions in `.yml` files under your model paths, run `dbt ls --resource-type exposure` to confirm dbt sees them, then regenerate and serve the docs.

## Error

```text
dbt exposures missing from docs site: generation error
```

## Steps

1. Find your exposure YAML files and confirm they sit under a directory dbt parses (model paths by default). Expected: the files are in a parsed location, not in a docs-only folder.
2. Run `dbt ls --resource-type exposure`. Expected: dbt lists every exposure; missing ones have a location or syntax problem.
3. Validate the YAML: each exposure needs `name`, `type`, `owner`, and a `depends_on` list referencing real models. Expected: the structure matches the documented schema.
4. Run `dbt docs generate`. Expected: it completes without errors.
5. Run `dbt docs serve` and check the exposures page. Expected: the exposures appear with their metadata.

## When to use

- Exposures are defined but absent from the docs site.
- You just added your first exposures.

## When not to use

- Exposures appear but show old descriptions (edit the YAML and regenerate).
- The docs site itself fails to serve (a serve problem, not an exposure problem).

## Tool compatibility

- dbt Core 1.0 and later, all adapters. Exposure definitions are adapter-independent.

## Variant phrasings

### Exposure depends_on a model that was renamed

The exposure silently drops the missing dependency; update the name.

### dbt ls shows the exposure but docs do not

The manifest is stale; recompile before generating docs.

## Why it happens

dbt only parses YAML in configured paths. Exposure files in unparsed directories are invisible, and invalid YAML fails silently or at parse time, so docs generation never sees them.

## Edge cases

- `depends_on` must reference model names exactly; a typo drops the link without an error.
- Exposure `type` must be one of the allowed values (dashboard, notebook, analysis, ml, application).
- Large numbers of exposures slow down docs generation; that is normal, not an error.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst__0TgZG9DfDQLL9tZSHtNag
