SteamAPI_InitEx crash

Hello

We are seeing quite a significant number of occurrences of our game crashing when calling `SteamAPI_InitEx` with the error `Unhandled Exception: 0xc06d007f` and the following callstack:

FSteamClientInstanceHandler::FSteamClientInstanceHandler FSteamSharedModule::ObtainSteamClientInstanceHandle FOnlineSubsystemSteam::InitSteamworksClient FOnlineSubsystemSteam::Init FOnlineFactorySteam::CreateSubsystem FOnlineSubsystemModule::GetOnlineSubsystem FOnlineSubsystemModule::TryLoadSubsystemAndSetDefault FOnlineSubsystemModule::LoadDefaultSubsystem FOnlineSubsystemModule::StartupModule

When googling this error, we see that many Unreal games have this crash as there are posts with the same callstack and error 0xc06d007f on the forums of other Unreal Engine games. Therefore we do not believe the crash is with our code.

We have been unable to reproduce this crash locally and are now asking you if you have encountered this crash yourselves and know of a fix. We are currently using Unreal 5.4 but looking at the file history for the SteamShared module, it doesn’t look too different from latest upstream.

Have you seen this?

Thanks!

Hello!

How are you getting the callstack? Do you have a dump? If would be interesting to know what is triggering the exception. The SteamAPI_Init should always return according to the Steam documentation so I would guess that it’s the call of the method that fails meaning there is something wrong when the DLL is loaded. Searching for the exception value doesn’t yield great results with most of the info related to system’s related issues (corruption, Anti-virus)…

A colleague ran the exception in the Microsoft Error Lookup Too and it found something that look interesting:

`PS D:\UE_5.6> C:\Users\patrick.laflamme\Downloads\Tools\Err_6.4.5.exe 0xc06d007f

No results found for hex 0xc06d007f / decimal -1066598273

as an HRESULT: Severity: FAILURE (1), FACILITY_VISUALCPP (0x6d), Code 0x7f

for hex 0x7f / decimal 127

ERROR_PROC_NOT_FOUND winerror.h

The specified procedure could not be found.

1 matches found for “0xc06d007f”`ERROR_PROC_NOT_FOUND … It could a stretch but since the problem is around a method from a DLL, it could indicate a dynamic linkage problem,

Please share the dump if you have one. We would be interested to have a look.

Martin

Hey!

Yes, we do have minidumps, have to check how we can share them to you.

More info from the dev following that topic:

  • I actually think this might be a bug in the Steamworks SDK rather than any of the Unreal code. The error code is ERROR_PROC_NOT_FOUND (procedure not found) and it seems the SteamAPI_InitEx function tries to load some dll. I wonder if it’s users on an old Steam version pre Steamworks 1.61 who are encountering this?
  • The specific symbol that is failing to be found is SteamInternal_SteamAPI_Init from disassembling the state of the callstack in __delayloadHelper2
  • I wonder if the crashes we’re seeing are users playing a pirated copy of the game? These versions will have a Steamworks emulator to bypass the Steam DRM and maybe they don’t work properly with the version of the steam API we’re linking against. I have no proof though, just a hypothesis

You seem to be on the right path. The last bits you shared were part of the discussion I had with a colleague. The annoying part is that you haven’t found a way to reproduce. I’m guessing that the crash reports are anonymous and you don’t have a way to reach out to the affected users?

One thing I did in the past for a similar case was to reach out to users on the Steam forums. You might be able to source more details that way.