Firefox Tomorrow

web api event

BroadcastChannel: messageerror event

View on MDN ↗

Available in workers

The messageerror event of the BroadcastChannel interface fires when a message that can’t be deserialized arrives on the channel.

Syntax

Use the event name in methods like addEventListener(), or set an event handler property.

addEventListener("messageerror", (event) => { })

onmessageerror = (event) => { }

Event type

A MessageEvent. Inherits from Event.

Examples

Listening for messageerror events

This code uses addEventListener() to listen for messages and errors:

const channel = new BroadcastChannel("example-channel");

channel.addEventListener("message", (event) => {
  received.textContent = event.data;
});

channel.addEventListener("messageerror", (event) => {
  console.error(event);
});

The same, but using the onmessage and onmessageerror event handler properties:

const channel = new BroadcastChannel("example-channel");

channel.onmessage = (event) => {
  received.textContent = event.data;
};

channel.onmessageerror = (event) => {
  console.log(event);
};

Attempting to share memory

A common cause of messageerror events is attempting to send a SharedArrayBuffer object, or a buffer view backed by one, across agent clusters. The following code demonstrates this.

Page A runs the following code:

const channel = new BroadcastChannel("hello");
channel.postMessage({ data: new SharedArrayBuffer(1024) });

Page B runs the following code:

const channel = new BroadcastChannel("hello");
channel.addEventListener("messageerror", (event) => {
  console.error("Message error");
});

Then page B will receive a messageerror event when it tries to deserialize the message sent from page A.

Specifications

SpecificationsStandards references are available on the canonical MDN page.

Browser compatibility

Browser compatibilityCompatibility data is available on the canonical MDN page.

See also