Lightning Message Service Limitations
Supported Experiences
Lightning message service supports only the following experiences:
- Lightning Experience standard navigation
- Lightning Experience console navigation
- Salesforce mobile app for Aura and Lightning Web Components, but not for Visualforce pages
- Lightning components used in Experience Builder sites.
Aura Components That Don’t Render Aren’t Supported
Lightning message service only supports Aura components that render. You can’t use lightning:messageChannel in an Aura component that uses the background utility item interface. Similarly, Aura components that use lightning:messageChannel can’t call Lightning Message Service methods in the init lifecycle handler because the component hasn’t rendered.
lightning:messageChannel Must Be a Child of aura:component
In a custom Aura component, lightning:messageChannel must be an immediate child of the aura:component tag. It can’t be nested in an HTML tag or another component.
For example, the following code renders without a problem.
1<aura:component>
2 <lightning:messageChannel type="myMessageChannel__c" />
3 <lightning:card>...</lightning:card>
4</aura:component>This code throws an error when the Aura component tries to render.
1<aura:component>
2 <lightning:card>
3 <lightning:messageChannel type="myMessageChannel__c" />
4 </lightning:card>
5</aura:component>Messages are Constrained by iframe Boundary
If your component uses Lightning message service to publish a message, that message is constrained by any iframe boundary. To work around this limitation, use the sforce.one.subscribe() and sforce.one.unsubscribe() methods.
Avoid Dynamically Creating lightning:messageChannel Components in Aura
Do not usecreateComponent() to dynamically create a lightning:messageChannel component in Aura. Dynamically created components may not work as expected. For information on supported ways to create a lightning:messageChannel component, see Create a Message Channel.