Here is the code that epic uses to create the game mode for default map when game engine is being loaded.
void UGameInstance::StartGameInstance()
{
UEngine* const Engine = GetEngine();
// Create default URL.
// @note: if we change how we determine the valid start up map update LaunchEngineLoop's GetStartupMap()
FURL DefaultURL;
DefaultURL.LoadURLConfig(TEXT("DefaultPlayer"), GGameIni);
// Enter initial world.
EBrowseReturnVal::Type BrowseRet = EBrowseReturnVal::Failure;
FString Error;
TCHAR Parm[4096] = TEXT("");
const TCHAR* Tmp = FCommandLine::Get();
#if UE_BUILD_SHIPPING
// In shipping don’t allow an override
Tmp = TEXT(“”);
#endif // UE_BUILD_SHIPPING
//other code
}
so you can get the real reason in here.