FileBasedDocument::saveAsInteractiveAsync() not displaying system dialog

FileBasedDocument::saveAsInteractiveAsync() is not displaying a dialog on macOS (haven’t tried Windows)
JUCE version 7.0.7

In juce_FileChooser_mac.mm launch() line 189 ref is always nullptr

Invoking it like this doc.saveAsInteractiveAsync(true, [](FileBasedDocument::SaveResult result) {});

   void launch() override
    {
        if (panel != nil)
        {
            setAlwaysOnTop (WindowUtils::areThereAnyAlwaysOnTopWindows());
            addToDesktop (0);

            enterModalState (true);

            MessageManager::callAsync ([ref = SafePointer<Native> (this)]
            {
                if (ref == nullptr)
                    return;

                [ref->panel beginWithCompletionHandler: ^(NSInteger result)
                                                        {
                                                            if (auto* ptr = ref.getComponent())
                                                                ptr->finished (result);
                                                        }];

Since I can’t delete this post the issue was that a few layers up the document was going out of scope in my app.