EOS Server Not Showing Up in Developer Portal or Find Sessions

So, I am following SegBeby’s EOS Guide at The EOS Online Subsystem (OSS) Plugin | Course

I have my Server running successfully and creating the sessions, and setup the client to search for the EOS session, but it still fails to show up in the client side search or in my developer portal. I verified the Key Value Pairs, and the Developer Credentials. The only caveat is I am not using the Client.bat file included in the tutorial because I want to run the Login and Find Sessions from my custom menus. Not sure if not including the AUTH_LOGIN=“localhost:8081” -AUTH_PASSWORD=" makes any difference for this problem?

Here’s some code snippets if anyone can help me?

Create Session Code:

void AEOSGameSession::CreateSession(FName KeyName, FString KeyValue) // Dedicated Server Only
{
// Tutorial 3: This function will create an EOS Session.

IOnlineSubsystem* Subsystem = Online::GetSubsystem(GetWorld());
IOnlineSessionPtr Session = Subsystem->GetSessionInterface(); // Retrieve the generic session interface. 

// Bind delegate to callback function
CreateSessionDelegateHandle =
    Session->AddOnCreateSessionCompleteDelegate_Handle(FOnCreateSessionCompleteDelegate::CreateUObject(
        this,
        &ThisClass::HandleCreateSessionCompleted));


// Set session settings 
TSharedRef<FOnlineSessionSettings> SessionSettings = MakeShared<FOnlineSessionSettings>();
SessionSettings->NumPublicConnections = MaxNumberOfPlayersInSession; //We will test our sessions with 2 players to keep things simple
SessionSettings->bShouldAdvertise = true; //This creates a public match and will be searchable. This will set the session as joinable via presence. 
SessionSettings->bUsesPresence = false;   //No presence on dedicated server. This requires a local user.
SessionSettings->bAllowJoinViaPresence = false; // superset by bShouldAdvertise and will be true on the backend
SessionSettings->bAllowJoinViaPresenceFriendsOnly = false; // superset by bShouldAdvertise and will be true on the backend
SessionSettings->bAllowInvites = false;    //Allow inviting players into session. This requires presence and a local user. 
SessionSettings->bAllowJoinInProgress = false; //Once the session is started, no one can join.
SessionSettings->bIsDedicated = true; //Session created on dedicated server.
SessionSettings->bUseLobbiesIfAvailable = false; //This is an EOS Session not an EOS Lobby as they aren't supported on Dedicated Servers.
SessionSettings->bUseLobbiesVoiceChatIfAvailable = false;
SessionSettings->bUsesStats = true; //Needed to keep track of player stats.


DefaultKeyName = "Beta";
DefaultKeyValue = "Test";
// This custom attribute will be used in searches on GameClients. 
SessionSettings->Settings.Add(DefaultKeyName, FOnlineSessionSetting((DefaultKeyValue), EOnlineDataAdvertisementType::ViaOnlineServiceAndPing));

// Create session.
UE_LOG(LogTemp, Log, TEXT("Creating session... with KeyName: %s  Keyvalue: %s"), *DefaultKeyName.ToString(), *DefaultKeyValue);

if (!Session->CreateSession(0, SessionName, *SessionSettings))
{
    UE_LOG(LogTemp, Warning, TEXT("Failed to create session!"));
    Session->ClearOnCreateSessionCompleteDelegate_Handle(CreateSessionDelegateHandle);
    CreateSessionDelegateHandle.Reset();
}

}

void AEOSGameSession::HandleCreateSessionCompleted(FName EOSSessionName, bool bWasSuccessful) // Dedicated Server Only
{
// Tutorial 3: This function is triggered via the callback we set in CreateSession once the session is created (or there is a failure to create)
IOnlineSubsystem* Subsystem = Online::GetSubsystem(GetWorld());
IOnlineSessionPtr Session = Subsystem->GetSessionInterface(); // Retrieve the generic session interface.

// Nothing special here, simply log that the session is created.
if (bWasSuccessful)
{
    bSessionExists = true; 
    UE_LOG(LogTemp, Log, TEXT("Session: %s Created!"), *EOSSessionName.ToString());



}
else
{
    UE_LOG(LogTemp, Warning, TEXT("Failed to create session!"));
}

// Clear our handle and reset the delegate. 
Session->ClearOnCreateSessionCompleteDelegate_Handle(CreateSessionDelegateHandle);
CreateSessionDelegateHandle.Reset();

}

Find Session Code:

void UBaseGameInstance::FindSessions(FName SearchKey, FString SearchValue)//put default value for example
{
// Tutorial 4: This function will find our EOS Session that was created by our DedicatedServer.
// Tutorial 7: This function will find our EOS lobby. Note that at the OSS layer we are using a Session that is marked as a lobby. Code is similar with minor tweaks

IOnlineSubsystem* const Subsystem = IOnlineSubsystem::Get();
IOnlineSessionPtr Session = Subsystem->GetSessionInterface();
TSharedRef<FOnlineSessionSearch> Search = MakeShared<FOnlineSessionSearch>();


DefaultKeyName = "Beta";
DefaultKeyValue = "Test";

// Remove the default search parameters that FOnlineSessionSearch sets up.
Search->QuerySettings.SearchParams.Empty();

Search->QuerySettings.Set(DefaultKeyName, DefaultKeyValue, EOnlineComparisonOp::Equals); // Seach using our Key/Value pair

FindSessionsDelegateHandle =
	Session->AddOnFindSessionsCompleteDelegate_Handle(FOnFindSessionsCompleteDelegate::CreateUObject(
		this,
		&ThisClass::HandleFindSessionsCompleted,
		Search));

GEngine->AddOnScreenDebugMessage(-1, 10.f, FColor::Red, FString::Printf(TEXT("Finding session.")));
UE_LOG(LogTemp, Log, TEXT("Seraching For Session... with KeyName: %s  Keyvalue: %s"), *  DefaultKeyName.ToString(), *DefaultKeyValue);



if (!Session->FindSessions(0, Search))
{

    UE_LOG(LogTemp, Log, TEXT("Finding sessions failed"));
    Session->ClearOnFindSessionsCompleteDelegate_Handle(FindSessionsDelegateHandle);
    FindSessionsDelegateHandle.Reset();
}
    // Clear our handle and reset the delegate. 

}

void UBaseGameInstance::HandleFindSessionsCompleted(bool bWasSuccessful, TSharedRef Search)
{
// Tutorial 4: This function is triggered via the callback we set in FindSession once the session is found (or there is a failure).
// Tutorial 7: This function will triggered via the callback we set in FindSession once the lobby is found (or there is a failure). Finding the lobby here has the similar code as finding a session.

IOnlineSubsystem* const Subsystem = IOnlineSubsystem::Get();

IOnlineSessionPtr Session = Subsystem->GetSessionInterface();

UE_LOG(LogTemp, Log, TEXT("Handle Find Sessions Completed"));

if (bWasSuccessful)
{
    // added code here to not run into issues when searching for sessions is succesfull, but the number of sessions is 0
    if (Search->SearchResults.Num() == 0)
    {
        UE_LOG(LogTemp, Log, TEXT("Found Zero Sessions.."));
        GEngine->AddOnScreenDebugMessage(-1, 10.f, FColor::Red, FString::Printf(TEXT("Found Zero Sessions.")));
		return; 
	}


} else {
    UE_LOG(LogTemp, Log, TEXT("Search Unsuccesful!"));
    
}

for (auto SessionInSearchResult : Search->SearchResults)
{
	// Typically you want to check if the session is valid before joining. There is a bug in the EOS OSS where IsValid() returns false when the session is created on a DS. 
	// Instead of customizing the engine for this tutorial, we're simply not checking if the session is valid. The code below should go in this if statement once the bug is fixed. 
	/*
	if (SessionInSearchResult.IsValid()) 
	{

		
	}
	*/
	
	//Ensure the connection string is resolvable and store the info in ConnectString and in SessionToJoin
	if (Session->GetResolvedConnectString(SessionInSearchResult, NAME_GamePort, ConnectString))
	{
		SessionToJoin = &SessionInSearchResult; 
	}

    UE_LOG(LogTemp, Log, TEXT("Found A Session.."));
    GEngine->AddOnScreenDebugMessage(-1, 10.f, FColor::Red, FString::Printf(TEXT("Found A Session.")));


	// For this course we will join the first session found automatically. Usually you would loop through all the sessions and determine which one is best to join. 
	break;            
}

JoinGameSession();  



// Clear our handle and reset the delegate. 
Session->ClearOnFindSessionsCompleteDelegate_Handle(FindSessionsDelegateHandle);
FindSessionsDelegateHandle.Reset();

}