Client can't ClientTravel in a session when the server uses servertravel instead of openlevel

Hello !
I have a session based game fully in C++. When session create completed I want to servertravel to a waiting (lobby) room, and that is fine I can servertravel there. But when I find the session from another game and try to client travel there there is no response and for a minute I am stuck there. Eventually it gets the client to startup level.
Interestingly if I use OpenLevel when the session create completed Everything is fine and working. Clients can client travel there. But this time all other information like playercontrollers playerstates etc. reset. And I dont want that. I think I should use servertravel somehow.

This is The Log in Client when it cant connect

Display: Match State Changed from InProgress to LeavingMap
[2020.07.20-11.37.10:184][882]LogGameState: Match State Changed from InProgress to LeavingMap
[2020.07.20-11.37.10:186][882]LogNet: Browse: 192.168.1.45:0//Game/ThirdPersonCPP/Maps/Lobby?Name=Player
[2020.07.20-11.37.10:190][882]LogInit: WinSock: Socket queue. Rx: 32768 (config 32768) Tx: 32768 (config 32768)
[2020.07.20-11.37.10:190][882]LogNet: Created socket for bind address: 0.0.0.0 on port 0
[2020.07.20-11.37.10:193][882]PacketHandlerLog: Loaded PacketHandler component: Engine.EngineHandlerComponentFactory (StatelessConnectHandlerComponent)
[2020.07.20-11.37.10:195][882]LogNet: Game client on port 0, rate 10000
[2020.07.20-11.37.30:207][415]LogNet: Warning: UNetConnection::Tick: Connection TIMED OUT. Closing connection… Elapsed: 20.01, Real: 20.01, Good: 20.01, DriverTime: 20.02, Threshold: 20.00, [UNetConnection] RemoteAddr: 192.168.1.45:0, Name: IpConnection_0, Driver: PendingNetDriver IpNetDriver_0, IsServer: NO, PC: NULL, Owner: NULL, UniqueId: INVALID
[2020.07.20-11.37.30:213][415]LogNet: Error: UEngine::BroadcastNetworkFailure: FailureType = ConnectionTimeout, ErrorString = UNetConnection::Tick: Connection TIMED OUT. Closing connection… Elapsed: 20.01, Real: 20.01, Good: 20.01, DriverTime: 20.02, Threshold: 20.00, [UNetConnection] RemoteAddr: 192.168.1.45:0, Name: IpConnection_0, Driver: PendingNetDriver IpNetDriver_0, IsServer: NO, PC: NULL, Owner: NULL, UniqueId: INVALID, Driver = PendingNetDriver IpNetDriver_0
[2020.07.20-11.37.30:214][415]LogNet: Warning: Network Failure: PendingNetDriver[ConnectionTimeout]: UNetConnection::Tick: Connection TIMED OUT. Closing connection… Elapsed: 20.01, Real: 20.01, Good: 20.01, DriverTime: 20.02, Threshold: 20.00, [UNetConnection] RemoteAddr: 192.168.1.45:0, Name: IpConnection_0, Driver: PendingNetDriver IpNetDriver_0, IsServer: NO, PC: NULL, Owner: NULL, UniqueId: INVALID
[2020.07.20-11.37.30:216][415]LogNet: NetworkFailure: ConnectionTimeout, Error: ‘UNetConnection::Tick: Connection TIMED OUT. Closing connection… Elapsed: 20.01, Real: 20.01, Good: 20.01, DriverTime: 20.02, Threshold: 20.00, [UNetConnection] RemoteAddr: 192.168.1.45:0, Name: IpConnection_0, Driver: PendingNetDriver IpNetDriver_0, IsServer: NO, PC: NULL, Owner: NULL, UniqueId: INVALID’
[2020.07.20-11.37.30:217][415]LogGameMode: Display: Match State Changed from LeavingMap to Aborted
[2020.07.20-11.37.30:219][415]LogGameState: Match State Changed from LeavingMap to Aborted

And this the line that i servertravel to a level

GetWorld()->ServerTravel("/Game/ThirdPersonCPP/Maps/WaitingRoom?listen"); // THIS DOESNT WORK
//UGameplayStatics::OpenLevel(GetWorld(), “WaitingRoom”, true, “listen”); // THIS WORKS

This is the line for the client to travel there

ThisPlayerController->ClientTravel(Address, ETravelType::TRAVEL_Relative);

What am I missing, How can I use ServerTravel instead of OpenLevel ?? Please get me the right direction thx.



APlayerController* PC = GetWorld()->GetFirstPlayerController();
const FString URL = FString::Printf(TEXT("ServerTravel WaitingRoom?listen"));
UKismetSystemLibrary::ExecuteConsoleCommand(PC, URL, PC);

This is what we do

Thank you for quick response and I didnt know about KismetSystemLibrary much. But when I tested it didnt solve the issue. I think my SessionInterface->GetResolvedConnectString(SessionName, Address); returning a wrong adress when launched the server with servertravel. But it gets correct when use open level on the server. The reason I think that way is in the log

LogNet: Browse: 192.168.1.45:0//Game/ThirdPersonCPP/Maps/Lobby?Name=Player

port and map is wrong here: not 7777 and waitingroom level turns into lobby level.

I am really lost here. why it is correct when server opens the level with openlevel() command and not correct when server opens the level with servertravel() command. Please I apricieate all your help