I'm trying to utilize the new [LightningModal library](https://developer.salesforce.com/docs/component-library/bundle/lightning-modal/documentation) to launch a modal from an LWC component. Running into an error that I'm having trouble resolving, and hoping someone here can help me out.

There is an aura component (LightningPath) that uses .find() to get the child LWC component (softValidationModalLauncher) and calls it's showModal() method. The showModal() method uses the .open() method described in the documentation to launch a modal screen. When I get to the showModal method in debugging, I hit the following error:

> 
> Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'open')
> at SoftValidationModalLauncher.showModal
> 
> 
> 

These are components in play:

1. LightningPath component (AURA) controller code

```
handleSelect: function (component, event, helper) {
var investment = component.get('v.record');
var stepClicked = event.getParam('detail').value;
component.set('v.nextWorkFlowStep', stepClicked);

var overlayModal = component.find('softValidationModalLauncher');

if(stepClicked === 'Refine Proposal'
    && investment !== null && investment.Record_Type__c !== null
    && investment.Record_Type__c === 'Investment'
    && (investment.Feature_Enabled__c === null || !investment.Feature_Enabled__c.includes('Payment Table'))) {
        overlayModal.showModal();
}
else {
    if(investment !== null && investment.Record_Type__c !== null) {
        overlayModal.showModal();
    } else if (investment == null) {
        overlayModal.showModal();
    }
}

```

},
2. softValidationModalLauncher component (LWC)

```
import { LightningElement, track, api } from 'lwc';
import { GModal } from 'c/gModal';

export default class SoftValidationModalLauncher extends LightningElement {

// Variables passed from parent component
recordId;
investmentType;
agreementReviewer;
showSpinner;
parentComponent;

// Variables used in logic
workflowStep;
investmentRecordType;

// Variables used in front end modal
headerText = 'test modal';
confirmationMessage;
confirmationMessageFooter;

@api async showModal() {

    const result = await GModal.open({
        size: 'large',
        description: 'Accessible description of modal\'s purpose',
        content: 'Passed into content api',
    });
    // if modal closed with X button, promise returns result = 'undefined'
    // if modal closed with OK button, promise returns result = 'okay'
    console.log(result);

}

```

}
3. gModal (LWC)

```
<template>
    <lightning-modal-header label={headerText}></lightning-modal-header>
    <lightning-modal-body>
        <p>{content}</p>
    </lightning-modal-body>
    <lightning-modal-footer>
        <!-- <lightning-button label="OK" onclick={handleOkay}></lightning-button> -->
    </lightning-modal-footer>
</template>

<<<JS FILE>>>
import { LightningElement, api, track } from 'lwc';
import LightningModal from 'lightning/modal';

export default class GModal extends LightningModal {
    @api content;
    @api headerText;
    @api modalBodyContentLine;
    @api modalBodyContentLineFooter;
}

```