messageerrorBaseline · Widely available
The messageerror event fires on a target, such as a window or worker, when an incoming message cannot be deserialized. This event can fire for many types of messages, such as cross-document messages or broadcast channel messages.
Supported in all major browsers for at least 30 months — safe to use without fallbacks. Baseline since Mar 27, 2023. Widely available since Sep 27, 2025.
Browser support
DesktopChrome
1–59Not supported
60+Supportedsince Jul 25, 2017
Current: 155Edge
12–17Not supported
18+Supportedsince Oct 2, 2018
Current: 154Firefox
1–56Not supported
57+Supportedsince Nov 14, 2017
Current: 157Safari
1–16.3Not supported
16.4+Supportedsince Mar 27, 2023
Current: 27MobileChrome Android
18–59Not supported
60+Supportedsince Aug 1, 2017
Current: 155Firefox Android
4–56Not supported
57+Supportedsince Nov 28, 2017
Current: 157Safari iOS
1–16.3Not supported
16.4+Supportedsince Mar 27, 2023
Current: 27How to use
This feature is Baseline widely available — use it freely, no fallback needed.
Example
Full syntax and examples are on MDN: messageerror event.
Feature detection
JS · check before using
if ("onmessageerror" in DedicatedWorkerGlobalScope.prototype) {
// the messageerror event is supported
}Sub-features
Support for each part of the feature (6). The overall table above shows when the whole feature works.
| Sub-feature | Chrome | Edge | Firefox | Safari | Chrome Android | Firefox Android | Safari iOS |
|---|---|---|---|---|---|---|---|
| DedicatedWorkerGlobalScope.messageerror_event | 60 | 18 | 57 | 16.4 | 60 | 57 | 16.4 |
| MessagePort.messageerror_event | 60 | 18 | 57 | 16.4 | 60 | 57 | 16.4 |
| ServiceWorkerContainer.messageerror_event | 80 | 80 | 65 | 16.4 | 80 | 65 | 16.4 |
| ServiceWorkerGlobalScope.messageerror_event | 81 | 81 | 65 | ✕ | 81 | 65 | ✕ |
| Window.messageerror_event | 60 | 18 | 57 | 16.4 | 60 | 57 | 16.4 |
| Worker.messageerror_event | ✕ | ✕ | 57 | 16.4 | ✕ | 57 | 16.4 |