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

# Errors and nullability

> Understand GraphQL errors, paths, and non-null propagation.

FastQL returns `ExecutionResult(data, errors, extensions, executed)`. Use
`result.formatted()` to obtain the GraphQL response dictionary.

Syntax, operation selection, validation, and variable coercion errors set
`executed=False` and omit `data` from the formatted result. Resolver and completion
errors happen during execution, include a response path, and preserve data from
unaffected branches.

When a non-null field produces null, the null propagates to the nearest nullable
parent as required by GraphQL semantics.

```python theme={null}
result = await execute(schema, query, variable_values={"id": "missing"})

if result.errors:
    for error in result.errors:
        logger.warning(error.message, extra={"path": error.path})
```

Model nullability deliberately. Use `T | None` where absence is part of the API;
use non-null output types when failure should invalidate the containing branch.
