Most likely, the reason is related to COM. The "Open / Save" dialog box must be started in the STA COM apartment, otherwise some shell extensions may be blocked.
If you have something in your application that initializes COM in a different mode for the main thread, many strange things can happen.
source share