Failed to spawn server object, did you forget to add it to the NetworkManager?

I keep getting error messages
“Failed to spawn server object, did you forget to add it to the NetworkManager? assetId=123… netId=1”
and
“Could not spawn assetId=123… scene=0 netId=1”

I have MyNetworkManager:

using Mirror;
using System.Collections;
using UnityEngine;

public class MyNetworkManager : NetworkManager
{
    // Overrides the base singleton so we don't
    // have to cast to this type everywhere.
    public static new MyNetworkManager singleton { get; private set; }

    [Header("My Modifications")]
    public bool
        debugIO = true;

    public string ipAddress = "localhost";

    private StarterAssets.StarterAssetsInputs _input;

    [Header("0 = girl, 1 = boy")]
    public int playerId = 0;

    public GameObject[] characterPrefabs;

    /// <summary>
    /// Runs on both Server and Client
    /// Networking is NOT initialized when this fires
    /// </summary>
    public override void Awake()
    {

#if UNITY_SERVER
        //networkAddress = ipAddress;
        Debugger("!!!! Starting Server !!!!");
        StartServer();
#endif

        Debugger("Awake");
        base.Awake();
        singleton = this;
    }

    public void StartClientbutton(int _playerID)
    {
        playerId = _playerID;
        StartClient();
        //Cursor.visible = true;
    }

    public void StartServerButton() {
        StartServer();
        //Cursor.visible = true;
    }

    public void StartHostButton(int _playerID) {
        playerId = _playerID;
        StartHost();
    }

    public void Debugger(string debug) {
        if (debugIO)
        {
            //debug
            Debug.Log("[] my debug []" + debug);
        }
        
    }

    public override void OnStartServer()
    {
        base.OnStartServer();
        Debugger("OnStartServer");

        NetworkServer.RegisterHandler<NetworkConnectionToClientMessage>(OnCreateCharacter);
    }

    public override void OnClientConnect()
    {
        base.OnClientConnect();
        Debugger("OnClientConnect");
        NetworkConnectionToClientMessage netConnectClientMessage = new NetworkConnectionToClientMessage
        {
            playerCharacter = StaticVariables.playerCharacter
        };
        NetworkClient.Send(netConnectClientMessage);
    }

    public void OnCreateCharacter(NetworkConnectionToClient conn, NetworkConnectionToClientMessage message)
    {
        Debugger($"OnCreateCharacter: NetworkConnectionToClient - {conn}");
        GameObject netPlayerPrefab = Instantiate(characterPrefabs[playerId]);//base.playerPrefab
        NetworkServer.AddPlayerForConnection(conn, netPlayerPrefab);
    }
}

public struct NetworkConnectionToClientMessage : NetworkMessage
{
    public int playerCharacter;
}

public class StaticVariables {
    public static int playerCharacter = 0;

}

and a simple player script:

using Mirror;
using UnityEngine;
using TMPro;
using Cinemachine;
using UnityEngine.UI;
using UnityEngine.InputSystem;

public class SimpleNetPlayer : NetworkBehaviour
{
    //-- Inishilising variable --//
    [SyncVar]
    SimpleNetPlayer simpleNetPlayer;

    //-- player movement --//
    public float playerMoveSpeed = 2.0f;
    Vector2 PlayerMovementInputVector;
    float moveX;
    float moveZ;

    //-- Input Variables --//
    private PlayerInput playerInput;
    private MyInputActionControls myInputActions;

    // -- Animation --//
    public Animator animator;

    private void Awake()
    {
        //Inishilise
        simpleNetPlayer = this;

        
    }

    //==== On Start Local Player ====//
    public override void OnStartLocalPlayer()
    {
        //setup Player input
        PlayerInputSetup();

        // Find player camera and tell it to look at this player
        GameObject.Find("Player Camera").GetComponent<CinemachineVirtualCamera>().Follow = this.gameObject.transform.GetChild(0).transform;
        Camera.main.transform.SetParent(transform);
        Camera.main.transform.localPosition = new Vector3(0, 0, 0);

    }

    //==== Input Sytem ====//
    public void PlayerInputSetup()
    {
        playerInput = GetComponent<PlayerInput>();
        myInputActions = new MyInputActionControls();
        myInputActions.Player.Enable();
    }

    //==== Update ====//
    [Client]
    private void Update()
    {
        if (!isLocalPlayer)
        {
            return;
        }
        PlayerMove();
    }

    //==== Player Move ====//
    public void PlayerMove()
    {
        PlayerMovementInputVector = myInputActions.Player.Move.ReadValue<Vector2>();
        moveX = PlayerMovementInputVector.x * Time.deltaTime * 110.0f;// _input.move.x
        moveZ = PlayerMovementInputVector.y * Time.deltaTime * playerMoveSpeed;//_input.move.y
        transform.Translate(0, 0, moveZ);
        transform.Rotate(0, moveX, 0);

        if (isLocalPlayer)
        {
            animator.SetFloat("Speed", PlayerMovementInputVector.y);
        }
    }
}

On this forum we talk about Mirror, a synthetic asset protocol for the Terra Classic blockchain. If you have questions about a C# library named Mirror, this is the wrong place.

Thanks you for taking the time to respond to my questions, feel free to let me know where i shold take my questions.

Stack Overflow may be a good place. Or search if the library you’re using has a forum.