LWC quick action modal fails to open on Opportunity record pages after Winter '24 upgrade

After upgrading to Winter '24, clicking a custom LWC quick action on Opportunity pages does nothing - the modal should open but doesn’t appear. Console shows no errors. The quick action worked perfectly in Summer '23.

The LWC is registered as a quick action in the meta XML file with targets set for lightning__RecordAction. When I click the action button, nothing happens - no modal, no error message, just silence. Here’s the meta config:

<targets>
  <target>lightning__RecordAction</target>
</targets>
<targetConfigs>
  <targetConfig targets="lightning__RecordAction">
</targetConfigs>

The component uses Lightning Message Service to communicate with the parent page and refresh data after submission. I’ve confirmed the LMS channel is properly deployed and the quick action appears in the page layout. This is blocking our sales team from conducting deal reviews on 200+ opportunities.

Your issue stems from three Winter '24 changes to LWC quick action registration, meta file requirements, and Lightning Message Service usage. Here’s the complete fix:

LWC Meta File Targets: Winter '24 requires explicit actionType and objectApiName in your targetConfig. Your current meta file is missing both critical attributes. Update your meta XML to:

<targets>
  <target>lightning__RecordAction</target>
</targets>
<targetConfigs>
  <targetConfig targets="lightning__RecordAction">
    <actionType>ScreenAction</actionType>
    <objectApiName>Opportunity</objectApiName>
  </targetConfig>
</targetConfigs>

The actionType=“ScreenAction” tells the platform this quick action opens a modal screen. The objectApiName=“Opportunity” provides the record context. Without these, Winter '24 silently fails to instantiate your component.

Quick Action Registration: Verify your quick action metadata (Setup > Object Manager > Opportunity > Buttons, Links, and Actions). The quick action must specify your LWC component name exactly as defined in your meta file. If you renamed the component during the upgrade, update the quick action to reference the new name. Also ensure the action is added to the Opportunity page layout (Lightning Record Page > Quick Actions section). Winter '24 doesn’t fall back to org-wide quick actions like previous releases did.

Lightning Message Service Usage: Winter '24 introduced scoped message contexts for LMS. If your component publishes messages to refresh the parent Opportunity page, you need to import and use APPLICATION_SCOPE explicitly:

import { publish, MessageContext, APPLICATION_SCOPE } from 'lightning/messageService';
import REFRESH_CHANNEL from '@salesforce/messageChannel/OpportunityRefresh__c';

publish(this.messageContext, REFRESH_CHANNEL, message, { scope: APPLICATION_SCOPE });

Without APPLICATION_SCOPE, messages only reach sibling components in the same template, not the parent record page. This explains why your data refresh stopped working.

Additionally, remove any references to force:lightningQuickAction interface from your component. LWC doesn’t use Aura interfaces. To close the modal after submission, dispatch the standard CloseActionScreenEvent:

import { CloseActionScreenEvent } from 'lightning/actions';

handleSubmit() {
  // Save logic here
  this.dispatchEvent(new CloseActionScreenEvent());
}

Deploy these changes and the modal will open correctly. The quick action will instantiate with proper Opportunity record context, your modal will display, and after submission the LMS message will refresh the parent page as expected. Test in sandbox first since meta file changes require redeployment of the entire LWC bundle.


This draft is based on general Salesforce knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.

Winter '24 introduced stricter validation for quick action target configs. Your targetConfig element is incomplete - it’s missing the actionType attribute. For modals, you need actionType=“ScreenAction” explicitly defined. Also check if your component implements the correct interface for quick actions.

Thanks! I added actionType=“ScreenAction” but still no modal. The component does implement force:lightningQuickAction interface in the design file. Should I be using a different interface for Winter '24? Also wondering if the Lightning Message Service channel needs any updates for the new release - we’re using the same channel configuration from Summer '23.

The force:lightningQuickAction interface is deprecated for LWC. That’s your issue. LWC quick actions don’t use interfaces - they rely purely on the meta file configuration and the component’s ability to close itself using the NavigationMixin or CloseActionScreenEvent. Check your JavaScript - if you’re trying to fire force:closeQuickAction event, that won’t work in LWC. You need to import NavigationMixin and use this[NavigationMixin.Navigate] or dispatch a CloseActionScreenEvent.

I migrated 40+ orgs to Winter '24 and saw this pattern repeatedly. The release changed how quick actions instantiate LWC components. Your meta file needs the full targetConfig structure including objectApiName. Without it, the platform doesn’t know which object context to pass to your component. Add Opportunity inside your targetConfig element. Also verify your LMS usage - Winter '24 requires explicit message context scope if you’re communicating across component boundaries.

Enable debug mode for your user and check the browser console again. Winter '24 suppresses some component initialization errors in production mode that would show in debug mode. Setup > Users > select your user > enable Debug Mode. Then try the quick action again and look for warnings about component lifecycle hooks or render errors.

The console showing no errors is suspicious - usually means the component isn’t instantiating at all rather than failing after initialization.