AGameModeBase::Logout doesn't seem to work in UE 4.26

Hello. Yes, I override it exactly like this. The function never called, I even waited after 2 hours since the client disconnect to make sure there is no timed out.
The pawn which the PlayerController posses isn’t even destroyed like they say it will be.
The function GetNumPlayers() still return the same number of players. (Yup, I print it to log in Tick for 2 hours straight)
Something is wrong with my unreal engine I guess.

Edit: When a client disconnect, I found this little piece of log inside Dedicated server console:


LogNet: UNetConnection::Close: [UNetConnection] RemoteAddr: 127.0.0.1:61283, Name: IpConnection_0, Driver: GameNetDriver IpNetDriver_0, IsServer: YES, PC: PlayerControllerTank_0, Owner: PlayerControllerTank_0, UniqueId: NULL:, Channels: 9, Time: 2021.01.20-11.31.10

LogNet: UChannel::Close: Sending CloseBunch. ChIndex == 0. Name: [UChannel] ChIndex: 0, Closing: 0 [UNetConnection] RemoteAddr: 127.0.0.1:61283, Name: IpConnection_0, Driver: GameNetDriver IpNetDriver_0, IsServer: YES, PC: PlayerControllerTank_0, Owner: PlayerControllerTank_0, UniqueId: NULL:

The dedicated server is well aware of a client recently disconnected. It just doesn’t do anything. Doesn’t destroy pawn, doesn’t reduce the number of player, and doesn’t call “Logout”.