Cannot override Online Subsystem in DefaultEngine.ini

According to the documentation, this is the order of the configuration hierarchy, with values in later files in the hierarchy overriding earlier values:

  1. Engine/Config/Base.ini
  2. Engine/Config/BaseEngine.ini
  3. Engine/Config/[Platform]/[Platform]Engine.ini
  4. [ProjectDirectory]/Config/DefaultEngine.ini
  5. [ProjectDirectory]/Config/[Platform]/[Platform]Engine.ini
  6. [ProjectDirectory]/Saved/Config/[Platform]/Engine.ini

Therefore if I add this to [ProjectDirectory]/Config/DefaultEngine.ini,

[OnlineSubsystem]
DefaultPlatformService=Null

The resulting default platform online subsystem service should be Null, but its not.

???

So I think I found a bug in the way UE4 loads config files?

In the docs (Which last update was 4.9) Configuration Files | Unreal Engine Documentation
The file hierarchy for config files is wrong,
but its not only wrong for UE4 4.22.2, Its wrong for 4.9 too (the last time this page was updated)


If you take a look at:
static void GetSourceIniHierarchyFilenames(…)

in:

UnrealEngine\Engine\Source\Runtime\Core\Private\Misc\ConfigCacheIni.cpp


Taking a closer look, you will see the correct file hierarchy order is:

  1. Engine/Config/Base.ini
  2. Engine/Config/BaseEngine.ini
  3. [ProjectDirectory]/Config/DefaultEngine.ini
  4. Engine/Config/[Platform]/[Platform]Engine.ini
  5. [ProjectDirectory]/Config/[Platform]/[Platform]Engine.ini
  6. [ProjectDirectory]/Saved/Config/[Platform]/Engine.ini

So basically switching 3 with 4


so

[ProjectDirectory]/Config/DefaultEngine.ini

is going to get overwritten by

Engine/Config/[Platform]/[Platform]Engine.ini


I solved my own problem haha! But seriously could we please get an update on the docs? and maybe we ACTUALLY SHOULD load DefaultEngine.ini after the platform configs?