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 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)

                [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.