Plugin ‘OnlineSubsystemUtils’ failed to load because module ‘OnlineSubsystemUtils’ could not be loaded. There may be an operating system error or the module may not be properly set up.
The actual error from dlopen is for some dubious reason hidden by the editor, but after jumping through the hoops to get the editor to log it, here it is:
UnrealEditor[57897:4507623] [UE] LogMac: Warning: dlopen failed: dlopen(UnrealEngine/Engine/Plugins/Online/OnlineSubsystemNull/Binaries/Mac/UnrealEditor-OnlineSubsystemNull.dylib, 0x0005): weak-def symbol not found '__ZN21FOnlineSearchSettings3SetI7FStringEEv5FNameRKT_N19EOnlineComparisonOp4TypeEi’
There is an explicit instantiation of this template in OnlineSearchSettings.cpp which is in the OnlineSubsystem module, so I can’t explain it. Maybe due to circular module dependencies?
As I searched for help on this today with no luck, I’d like to mention here that in Project fails to load because of the plugin with third party library (macOS) it is mentioned that the error used to appear in the logs (~/Library/Logs → Unreal Engine → MyProjectEditor → MyProject.log)
But for me it does not! (UE5.4)
So for people looking for more detailed help, here is what I had to do:
launch in the debugger (in a console: lldb /Users/Shared/Epic\ Games/UE_5.4/Engine/Binaries/Mac/UnrealEditor.app/Contents/MacOS/UnrealEditor)
break on dlopen
run until the error shows up (can take some time… 135 calls before my module loaded)
check the breakpoint hit count (“breakpoint list”)
delete and re-create the dlopen breakpoint with a condition on the hitcount (a couple hits less to be on the safe side): br dlopen then br modify -i 135
configure lldb with setting set escape-non-printables false to get the full error string
run until the dlopen call that fails, let it execute but no further!
finally you get to see the error using print (char*)dlerror()