Describe the bug
Unhandled TypeError: Cannot read properties of undefined (reading 'includes') thrown from parseMessageIdSerialized while processing a message. The crash happens inside toWAMessage → processIncomingMessage in the WEBJS engine: a message reaches parseMessageIdSerialized with an undefined serialized id, so calling .includes() on it throws.
Because it's thrown from the RxJS fromEvent message stream handler, it surfaces as an unhandled error and the message event is not delivered (no webhook fired for it).
Version
{
"version":"2026.5.1",
"engine":"WEBJS",
"tier":"PLUS",
"browser":"/usr/bin/google-chrome",
"platform":"linux/x64","worker":{"id":null}
}
▎ Docker image in use: devlikeapro/waha-plus:chrome-2026.5.1
Will try to update to the latest version before/after reporting.
Steps
To Reproduce Steps to reproduce the behavior:
- Start a WEBJS (Plus) session and keep it connected
- Send a message
- See the error below in the logs (the message event throws while building the WAMessage)
Expected behavior
parseMessageIdSerialized should defensively handle an undefined/missing serialized id (return null / skip) instead of throwing, so sending a message does not crash the processing pipeline with an unhandled TypeError.
Requests - Responses
N/A — I don't have the request/response payload to attach.
Docker Logs
TypeError: Cannot read properties of undefined (reading 'includes')
at parseMessageIdSerialized (/app/dist/core/utils/ids.js:9:20)
at WhatsappSessionWebJSPlus.toWAMessage (/app/dist/core/engines/webjs/session.webjs.core.js:1329:56)
at WhatsappSessionWebJSPlus.processIncomingMessage (/app/dist/core/engines/webjs/session.webjs.core.js:1205:32)
at /app/dist/core/engines/webjs/session.webjs.core.js:1100:261
at doInnerSub (/app/node_modules/rxjs/dist/cjs/internal/operators/mergeInternals.js:22:31)
at outerNext (/app/node_modules/rxjs/dist/cjs/internal/operators/mergeInternals.js:17:70)
at OperatorSubscriber._this._next (/app/node_modules/rxjs/dist/cjs/internal/operators/OperatorSubscriber.js:33:21)
at Subscriber.next (/app/node_modules/rxjs/dist/cjs/internal/Subscriber.js:51:18)
at /app/node_modules/rxjs/dist/cjs/internal/operators/filter.js:9:164
at OperatorSubscriber._this._next (/app/node_modules/rxjs/dist/cjs/internal/operators/OperatorSubscriber.js:33:21)
at Subscriber.next (/app/node_modules/rxjs/dist/cjs/internal/Subscriber.js:51:18)
at WebjsClientPlus.handler (/app/node_modules/rxjs/dist/cjs/internal/observable/fromEvent.js:59:31)
at WebjsClientPlus.emit (node:events:520:35)
at /app/node_modules/whatsapp-web.js/src/Client.js:451:18
at Binding. (/app/node_modules/whatsapp-web.js/src/util/Puppeteer.js:28:28)
at Binding.run (/app/node_modules/puppeteer-core/lib/cjs/puppeteer/cdp/Binding.js:132:46)
Additional context
- Engine: WEBJS Plus (WhatsappSessionWebJSPlus / WebjsClientPlus), Chrome build.
- The failing call chain is entirely internal to WAHA's WEBJS engine: parseMessageIdSerialized (core/utils/ids.js:9) is invoked from toWAMessage (session.webjs.core.js:1329) during processIncomingMessage (session.webjs.core.js:1205).
- Root cause appears to be a missing null-guard: parseMessageIdSerialized assumes the serialized id string is always defined and calls .includes() on it. The message being processed arrives without a populated serialized id.

Describe the bug
Unhandled TypeError: Cannot read properties of undefined (reading 'includes') thrown from parseMessageIdSerialized while processing a message. The crash happens inside toWAMessage → processIncomingMessage in the WEBJS engine: a message reaches parseMessageIdSerialized with an undefined serialized id, so calling .includes() on it throws.
Because it's thrown from the RxJS fromEvent message stream handler, it surfaces as an unhandled error and the message event is not delivered (no webhook fired for it).
Version
{ "version":"2026.5.1", "engine":"WEBJS", "tier":"PLUS", "browser":"/usr/bin/google-chrome", "platform":"linux/x64","worker":{"id":null} }▎ Docker image in use: devlikeapro/waha-plus:chrome-2026.5.1
Will try to update to the latest version before/after reporting.
Steps
To Reproduce Steps to reproduce the behavior:
Expected behavior
parseMessageIdSerialized should defensively handle an undefined/missing serialized id (return null / skip) instead of throwing, so sending a message does not crash the processing pipeline with an unhandled TypeError.
Requests - Responses
N/A — I don't have the request/response payload to attach.
Docker Logs
TypeError: Cannot read properties of undefined (reading 'includes')
at parseMessageIdSerialized (/app/dist/core/utils/ids.js:9:20)
at WhatsappSessionWebJSPlus.toWAMessage (/app/dist/core/engines/webjs/session.webjs.core.js:1329:56)
at WhatsappSessionWebJSPlus.processIncomingMessage (/app/dist/core/engines/webjs/session.webjs.core.js:1205:32)
at /app/dist/core/engines/webjs/session.webjs.core.js:1100:261
at doInnerSub (/app/node_modules/rxjs/dist/cjs/internal/operators/mergeInternals.js:22:31)
at outerNext (/app/node_modules/rxjs/dist/cjs/internal/operators/mergeInternals.js:17:70)
at OperatorSubscriber._this._next (/app/node_modules/rxjs/dist/cjs/internal/operators/OperatorSubscriber.js:33:21)
at Subscriber.next (/app/node_modules/rxjs/dist/cjs/internal/Subscriber.js:51:18)
at /app/node_modules/rxjs/dist/cjs/internal/operators/filter.js:9:164
at OperatorSubscriber._this._next (/app/node_modules/rxjs/dist/cjs/internal/operators/OperatorSubscriber.js:33:21)
at Subscriber.next (/app/node_modules/rxjs/dist/cjs/internal/Subscriber.js:51:18)
at WebjsClientPlus.handler (/app/node_modules/rxjs/dist/cjs/internal/observable/fromEvent.js:59:31)
at WebjsClientPlus.emit (node:events:520:35)
at /app/node_modules/whatsapp-web.js/src/Client.js:451:18
at Binding. (/app/node_modules/whatsapp-web.js/src/util/Puppeteer.js:28:28)
at Binding.run (/app/node_modules/puppeteer-core/lib/cjs/puppeteer/cdp/Binding.js:132:46)
Additional context