This question was created in reference to: [Steam thinks the game is running even after [Content removed]
Hello,
We’re encountering a consistent crash on game exit that occurs during the Steam Online Subsystem shutdown. With a debugger attached, the crash consistently points to FOnlineSubsystemSteam::Shutdown() while interfaces are being destructed.
This doesn’t appear to be limited to the Achievements interface—we don’t currently use achievements at all. Our working theory is a race condition/use-after-free: one or more interfaces are being accessed after they’ve already been destroyed, or the destruction order is inconsistent during shutdown.
[Image Removed]
Steps to Reproduce
We can usually reproduce it by quitting the game.
Hi,
Thank you for the report.
Just to double check, if you disable the OSSAdapter, do you still see the crash occurring?
Thanks,
Alex
Hi, thanks for the follow-up. I’m the original poster, writing from a different account due to policy changes.
I tested with OSSAdapter disabled. The crash no longer occurs in that configuration, but I also lose multiplayer functionality as a result.
Thanks.
Hi,
Thank you for confirming that. We’ve received other reports of this issue, as it is due to the order in which the OSS Adapter module and the Online Subsystem Steam module are unloaded. When the OSS Steam module is unloaded first, the OSS Adapter still has references to these interfaces, causing IsUnique to return false.
Ensures are generally not fatal, but after the IsUnique ensures, I’m also seeing a fatal error in FAuthOSSAdapter::PreShutdown: “Pure virtual function being called.”
I’ve opened a new issue for this, UE-348586, which should be visible in the public tracker in a day or so.
In the meanwhile, you may want to consider using OSSv1 (not OnlineServices) without the OSS Adapter. V1 is more battle-tested with Steam, and unless your project has some custom online functionality, it should provide the functionality you need.
Thanks,
Alex