# `AshNeo4j.Error.GeoDimensionMismatch`
[🔗](https://github.com/diffo-dev/ash_neo4j/blob/v0.10.1/lib/error.ex#L68)

Returned (never raised) when a spatial operation combines geometries of
different coordinate dimensions (2D vs 3D) — e.g. a 3D `%Geo.PointZ{}` against
a 2D attribute, or vice versa. Neo4j silently returns `null` for mixed-CRS
operations (which then drops rows in a `WHERE`), so AshNeo4j refuses up front
(#270) by returning `{:error, error}`.

Bridge worlds explicitly with a downward projection
(`AshNeo4j.Geo.force_2d/1`) — collapse the 3D operand to its 2D footprint
and evaluate in 2D. There is no implicit 2D→3D lift (a height cannot be
fabricated).

# `exception`

```elixir
@spec exception(opts :: Keyword.t()) :: %AshNeo4j.Error.GeoDimensionMismatch{
  __exception__: term(),
  attr_dim: term(),
  bread_crumbs: term(),
  class: term(),
  path: term(),
  splode: term(),
  stacktrace: term(),
  value_dim: term(),
  vars: term()
}
```

Create an `Elixir.AshNeo4j.Error.GeoDimensionMismatch` without raising it.

## Keys

- :attr_dim
- :value_dim

---

*Consult [api-reference.md](api-reference.md) for complete listing*
