# `email.partial_invalid`

Template includes a partial that doesn't exist, can't be reached or is given the wrong fields.

Area 16, [Built-in services](../topics/built-in-services.md); not declinable; the next step is usually the agent's.

A template includes a partial by its name, giving each of its fields once
by name, so what a shared piece needs is checked where it is used; a
partial that doesn't exist, can't be reached from the template, lacks the
template it is included from, is given the wrong fields or includes
itself is refused:






```jadpo
<p>Welcome, {{ name }}.</p>
{{ include button(label: name, link: notes_link) }}
```

```text
error: `button` has no field `link`
 --> domains/accounts/emails/welcome_email.html:2:32
  |
2 | {{ include button(label: name, link: notes_link) }}
  |                                ^^^^ not one of its fields
  reason: A partial is a `type Name = EmailPartial { ... }` in `shared/emails/` or the domain's own `emails/`, its `.html` and `.txt` beside it; a template includes it as `{{ include name(field: value, ...) }}`, giving each of its fields once by name, and its locale goes with it.
  next: Remove `link:` (agent)
  rule: email.partial_invalid
  help: https://jadpo.dev/docs/errors/email.partial_invalid

check failed: 1 error, 4 files
```
