Can't spawn object on client side

Hello,
I’m trying spawn bullet when player hit screen. When I make server in matchmaking I can spawn bullets an i can see them on client side too. But when I connect like client to server on matchmaking I cant spawn bullets. I got this error on server side:

my code:

for (int x = 0; x < Input.touchCount; x++) // cyklus ktory prejde vsetky dotyky na obrazovke
        {
            touchpos = Camera.main.ScreenToWorldPoint(touch[x].position);
            if ((touchpos.x > -4.5f || touchpos.y > -1.2f))
            {
               pos = transform.position;

               if (magazine > 0)
                {
                    if (time > firetime && autoriffle)
                    {
                        Cmd_Fire();
                      
                        time = 0;
                        magazine--;
                       
                    }
                  
        time += Time.deltaTime;
      
    }

    [Command]
    void Cmd_Fire()
    {       
        GameObject bullet = Instantiate(bulet, pos, Quaternion.FromToRotation(Vector3.up, new Vector3(touchpos.x, touchpos.y, transform.position.z) - transform.position)) as GameObject;

        bullet.GetComponent<Rigidbody>().AddForce(bullet.transform.up * bulletspeed, ForceMode.Impulse);
        
        NetworkServer.Spawn(bullet); 
        
        // I try NetworkServer.SpawnWithClientAuthority(bullet, connectionToClient); too but same reason
    }

I have this script on my player prefab. I have add on player and on bullet prefab Network Identity and Netwrok Transform. On player i checked Local Player Authority.

Thanks for help.

I make new project where I put everything from official unity networking tutorial and I got same error.

Is your bullet a registered prefab? Run the game twice (with editor as server, and editor as client). Are any errors thrown?

In registered prefabs I have bullet prefab from which a spawn bullet in my script.

When I run Editor as Server I got error

and warning

When I run Editor as Client I didn’t got any error or warning.

Even if I run simple command

[Command]
void CmdTest(){
    Debug.Log("Test");
}

I got Error.

I figured it out. I was destroying this script if it wasn’t attached to local player. I should only do

if(!isLocalPlayer)
return;

not

if(!isLocalPlayer){
Destroy(this);
return;
}