ServerDisconnected signal does not arrive

Godot Version

3.6.1

Question

In my game, the multiplayer runs on WebSocketServer. When the host exits the game, I want to monitor it on the client for proper processing, but the ServerDisconnected signal does not arrive to the client.

Code

public class GameManager : Node
{
public static GameManager Instance { get; private set; }

public const int DEFAULT_PORT = 8080;
public const int MAX_PEERS = 12;
public State StateGame = State.Menu;

[Signal]
public delegate void Error(string message);

public override void _Ready()
{
    Instance = this;
    GetTree().Connect("network_peer_connected", this, nameof(PlayerConnected));
    GetTree().Connect("network_peer_disconnected", this, nameof(PlayerDisconnected));
    GetTree().Connect("connected_to_server", this, nameof(ConnectedSuccessful));
    GetTree().Connect("connection_failed", this, nameof(ConnectedFail));
    GetTree().Connect("server_disconnected", this, nameof(ServerDisconnected));
}
private void ServerDisconnected()
{
    GD.Print("Тебя выкинуло с сервера");
    GetTree().ChangeScene("res://Menu.tscn");
    CallDeferred("emit_signal", nameof(Error), "Тебя выкинуло с сервера");

}

public void HostGame()
{
    var server = new WebSocketServer();
    server.Listen(DEFAULT_PORT, new string[] { "Game" }, true);
    GetTree().NetworkPeer = server;
}

public void JoinGame(string ip)
{
    var client = new WebSocketClient();
    client.ConnectToUrl($"ws://{ip}:{DEFAULT_PORT}", new string[] { "Game" }, true);
    GetTree().NetworkPeer = client;
}
}