NetworkLobbyManager doesn't retain message handlers after scene change?

I’m using NetworkLobbyManager (with DontDestroyOnLoad checked) in a Menu scene. When the game starts, I call NetworkManager.ServerSceneChange() and the new scene is loaded by the clients. However, message handlers that had worked before no longer work on the client. The NetworkLobbyManager is there, but the handlers don’t work. Here is my client-side join game code:

public void joinGame(int p_iGame)
{
  NetworkManager.singleton.matchMaker.JoinMatch(_matches[p_iGame].MatchInfo.networkId, "", "", "", 0, NetworkConstants.NET_VERSION, onMatchJoined);
}

private void onMatchJoined(bool success, string extendedInfo, MatchInfo responseData)
{
  NetworkManager.singleton.StartClient(responseData);
  NetworkManager.singleton.client.RegisterHandler(1002, MenuManager.Instance.onReceiveGameMetaData);
}

While in the Menu scene, this works and correctly calls onReceiveGameMetaData().

I use NetworkManager.ServerSceneChange() to load the game scene, and then when I use NetworkServer.SendToAll(1002, msg), I get:

Unknown message ID 1002 connId:1

on the client. Do these handlers not survive the scene change? I’ve also tried registering them after the scene change, but that also yields the same result. Any help would be appreciated. Network messages are an important part of the project I’m working on. Thank you!

I figured it out. The answer is pretty much the usual answer for questions like this…I’m an idiot. In my initial thrashings about while trying to learn and set up network play, I’d instantiated a new NetworkClient in my GameManager object to tell my server that the client was done loading the level and that it could start spawning objects. Naturally, creating a new instance would revert it back to its original set of message handlers. I went back to using NetworkManager.singleton.client for that function, and now the messages are now being received loud and clear by all clients every time.