NetworkServer.Spawn working only on some gameobjects

My game currently runs something along the lines of
var a=A.create();
var b=B.create();
var c=C.create();
NetworkServer.Spawn(a.gameObject);
NetworkServer.Spawn(b.gameObject);
NetworkServer.Spawn(c.gameObject);

while a and b spawn the component’s game object well, c do not.

all three of them are instances of different prefabs, all of which has a NetworkIdentity component, and are registered in the NetworkManager spawn list.

Another note that although the host sees that the client is observing the object, the client do not see it either in the editor or in a script (transferring the object via an RPC call results in an exception).

What could be causing this strange behavior?

Turns out that everything worked fine, except that the Spawn command do not take position into account when spawning, causing C to spawn and immediately run the OnCollision, getting destroyed, while it was invisible on the server who had the positions working as intended.