WAHA 2026.3 - WPP Engine, LID Merge Control, GOWS & NOWEB Upgrades

March 31, 2026 in Releases by devlikeapro3 minutes

Image for WAHA 2026.3 - WPP Engine, LID Merge Control, GOWS & NOWEB Upgrades

⚡ New Engine: WPP

WPP is a new browser-based engine powered by wppconnect. It runs WhatsApp Web in a Puppeteer browser — same approach as WEBJS, different underlying library. forwardMessages is supported from the start.

WHATSAPP_DEFAULT_ENGINE=WPP

Check the WPP engine docs for details.

🔀 LID / @c.us Merge Control (NOWEB + GOWS)

WhatsApp uses two ID formats for the same contact: @lid (newer) and @c.us (phone-number-based). WAHA merges them by default so they appear as a single thread. That’s still the default, but now you can turn it off with a merge flag in session config.

This also covers the underlying merge fixes — duplicate chats, missing messages, wrong @lid@c.us mapping that piled up since @lid was introduced.

📦 GOWS

A few additions for GOWS this release:

  • Image messages now include width and height.
  • WAHA_GOWS_DEVICE_* env variables to control how far back historical messages sync on first connect.
  • sendContactVcard now includes displayName in the payload.
  • CPU spikes in PostgreSQL storage — fixed.

👁️ NOWEB

NOWEB picks up a couple of additions in message handling:

  • View-once messages now appear in the message event.
  • Image size (width/height) is included when sending to a newsletter.
  • CPU spikes from the @lid/@c.us merge path — fixed.

🗄️ Storage Namespaces

Two new env variables for storage path isolation:

  • WAHA_NAMESPACE — top-level prefix applied to all storage in this instance.
  • WAHA_SESSION_NAMESPACE — per-session path override.

Useful when multiple WAHA instances share the same storage backend (S3, mounted volume, etc.) and you need their data kept separate. See 🗄️ Storages – Namespace.

🔍 New API: GET /api/{session}/contacts/{id}

Fetch a single contact by ID without pulling the full list:

GET /api/{session}/contacts/{id}

🧩 Apps: No Queue Required

Apps are now enabled by default and can run in-memory — no Redis or other queue needed. If you have a queue configured, nothing changes on your end.

🧩 ChatWoot

  • Message sync now targets only the @c.us chat when both @lid and @c.us are present — stops duplicate conversations from appearing.
  • Group participant is now mapped to the message, so replies in group chats correctly attribute the sender.

📊 Dashboard

Chat UI got some layout and rendering cleanup.

🛠️ Other Fixes

WEBJS

  • QR Code generation failure in some environments.
  • Profile picture endpoint and channels list broken.
  • Apps endpoints (GET/PUT/DELETE) returning 403.
  • Stale browser processes on restart — now cleaned up, Singleton removed.

NOWEB

  • Out-of-order messages and timestamp-based sorting.

Other

  • Brazilian landline number normalization.
  • Send media crash: user_agents_1.default is not a constructor.
  • yarn now supports all CPU/OS architectures.
  • Auth middleware no-auth case.

⚙️ Full Changelog

All versions, issue links, and engine bumps are in the 🆕 WAHA 2026.3 Changelog.