# `Ash.Error.Changes.InvalidAttribute`
[🔗](https://github.com/ash-project/ash/blob/v3.33.1/lib/ash/error/changes/invalid_attribute.ex#L5)

Used when an invalid value is provided for an attribute change

`required?: true` marks the error as reporting an absent value rather than a
bad one, which a changeset drops for a field that already failed to cast, the
same way it drops `Ash.Error.Changes.Required`.

# `exception`

```elixir
@spec exception(opts :: Keyword.t()) :: %Ash.Error.Changes.InvalidAttribute{
  __exception__: term(),
  bread_crumbs: term(),
  class: term(),
  field: term(),
  has_value?: term(),
  message: term(),
  path: term(),
  private_vars: term(),
  required?: term(),
  splode: term(),
  stacktrace: term(),
  value: term(),
  vars: term()
}
```

Create an `Elixir.Ash.Error.Changes.InvalidAttribute` without raising it.

## Keys

- :field
- :message
- :private_vars
- :value
- :has_value?
- :required?

---

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