---
title: "E15091 — WhatsAppTemplateContactUnavailable"
description: "This template reads contact data, which this send cannot fill."
canonical: "https://bird.com/docs/api/errors/E15091"
---

# E15091 — WhatsAppTemplateContactUnavailable

This template reads contact data, which this send cannot fill.

- **HTTP status**: `422`
- **Type**: `validation_error`
- **Name**: `WhatsAppTemplateContactUnavailable`

## What to do

`bird.contact.<attribute>` in this template's parameter bindings reads the recipient's contact record, which a single send does not have. Parameter bindings are in preview. Rewrite those bindings to read send inputs and submit a new version, or send a template without them.

Operations that resolve this:

- [Get a message template](/docs/api/reference/get-whatsapp-template)
- [Get a version's language](/docs/api/reference/get-whatsapp-template-version-language)
- [Create a template draft](/docs/api/reference/create-whatsapp-template-draft)
- [Upsert a language's content](/docs/api/reference/upsert-whatsapp-template-language)
- [Submit a template version for review](/docs/api/reference/submit-whatsapp-template-version)

## Related

- [E15xxx — WhatsApp sending & delivery](/docs/api/errors/E15xxx): every code in this range
- [Errors](/docs/api/errors): the full wire contract, status mapping, and error catalog
- [Error handling](/docs/guides/errors): branching on `type` and `code`, validation details, and `vendor_code`

## Related resources

- [Should I use a Bird SDK or call the API directly?](/explained/platform/should-i-use-an-sdk-or-call-the-api-directly) (answer)
- [Build your first integration](/learn/paths/integration) (course)
- [Send your first email](/docs/get-started/send-your-first-email) (docs)

[Get an implementation brief](/learn/workspace?topic=api-basics)
