# What changed in @chat-adapter/whatsapp

> 20 changes in @chat-adapter/whatsapp 4 from its official release notes, upgrade guides and advisories: 2 breaking, 1 security, 8 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/@chat-adapter/whatsapp/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @chat-adapter/whatsapp 4

### Breaking changes

- Transport failures and unparseable response bodies now throw NetworkError instead of leaking raw fetch errors. (4.40.0) — [release notes](https://github.com/vercel/chat/releases/tag/%40chat-adapter/whatsapp%404.40.0)
- Updates the default API version to v25.0. (4.30.0) — [release notes](https://github.com/vercel/chat/releases/tag/%40chat-adapter/whatsapp%404.30.0)

### Security

- WhatsApp attachment downloads use guarded downloading: private and internal addresses are refused, responses are capped at 25 MB, and downloads time out after 30 seconds. The access token is kept on Meta media hosts and the configured Graph origin. (4.39.0) — [release notes](https://github.com/vercel/chat/releases/tag/%40chat-adapter/whatsapp%404.39.0)

### New APIs and options

- Exported for non-2xx Graph API responses, with Meta error details, HTTP status, the raw envelope, and a code mapped to the shared AdapterError taxonomy. (4.40.0) — [release notes](https://github.com/vercel/chat/releases/tag/%40chat-adapter/whatsapp%404.40.0)
- Adds native message replies with WhatsApp contextual reply support. (4.38.0) — [release notes](https://github.com/vercel/chat/releases/tag/%40chat-adapter/whatsapp%404.38.0)
- Adds a shared thread API for marking messages as read across WhatsApp, Messenger, and XChat. (4.38.0) — [release notes](https://github.com/vercel/chat/releases/tag/%40chat-adapter/whatsapp%404.38.0)
- Supports typed Attachment payloads for outbound sends, including binary or HTTPS link passthrough, multi-file sequencing, MIME mapping, caption fallbacks, and card-plus-file sequencing. (4.34.0) — [release notes](https://github.com/vercel/chat/releases/tag/%40chat-adapter/whatsapp%404.34.0)
- Adds sending of pre-approved template messages, enabling business-initiated conversations outside the 24-hour customer service window. (4.34.0) — [release notes](https://github.com/vercel/chat/releases/tag/%40chat-adapter/whatsapp%404.34.0)
- Adds typing indicator support by sending Meta's read-plus-typing payload when a recent inbound message is available. (4.30.0) — [release notes](https://github.com/vercel/chat/releases/tag/%40chat-adapter/whatsapp%404.30.0)
- The config argument is now optional, and every WhatsAppAdapterConfig field is optional; the factory still falls back to WHATSAPP_* environment variables. (4.29.0) — [release notes](https://github.com/vercel/chat/releases/tag/%40chat-adapter/whatsapp%404.29.0)
- Adds a WhatsApp adapter using Meta's WhatsApp Business Cloud API. (4.20.0) — [release notes](https://github.com/vercel/chat/releases/tag/%40chat-adapter/whatsapp%404.20.0)

### Behavior and default changes

- Inbound and outbound WhatsApp messages now support business-scoped user IDs. (4.39.0) — [release notes](https://github.com/vercel/chat/releases/tag/%40chat-adapter/whatsapp%404.39.0)
- A card with only one eligible LinkButton is now sent as a native cta_url interactive message instead of formatted text. (4.37.0) — [release notes](https://github.com/vercel/chat/releases/tag/%40chat-adapter/whatsapp%404.37.0)
- The context type now makes all fields optional and includes forwarded-message and product-inquiry variants, so consumers must guard optional fields such as `from` and `id`. (4.37.0) — [release notes](https://github.com/vercel/chat/releases/tag/%40chat-adapter/whatsapp%404.37.0)
- Supports binary FileUpload uploads for outbound files and attachments. (4.34.0) — [release notes](https://github.com/vercel/chat/releases/tag/%40chat-adapter/whatsapp%404.34.0)
- The adapter now depends on chat as a full dependency rather than an optional dependency, so installing the adapter also installs chat. (4.21.0) — [release notes](https://github.com/vercel/chat/releases/tag/%40chat-adapter/whatsapp%404.21.0)

### Fixes and other changes

- Empty `from` and `wa_id` values are treated as absent, allowing messages from username users who hide their phone number to reach handlers. (4.42.0) — [release notes](https://github.com/vercel/chat/releases/tag/%40chat-adapter/whatsapp%404.42.0)
- Incoming WhatsApp messages preserve the first line of code blocks in message text and formatted content, and bold/strikethrough rewriting no longer corrupts fenced code. (4.39.0) — [release notes](https://github.com/vercel/chat/releases/tag/%40chat-adapter/whatsapp%404.39.0)
- Link button URLs are now included in interactive button message bodies and media captions, rather than being dropped. (4.37.0) — [release notes](https://github.com/vercel/chat/releases/tag/%40chat-adapter/whatsapp%404.37.0)
- Prevents card titles and body content from appearing twice when sending cards with files on WhatsApp, and avoids adding full card fallback text as an image caption when an interactive message follows. (4.35.0) — [release notes](https://github.com/vercel/chat/releases/tag/%40chat-adapter/whatsapp%404.35.0)
