networkview does not exist?

I occasionally get this, in our game's player session:

Received RPC "RegisterPlayerWNumber" for viewID 2 but this networkview does not exist!

And other times, i've gotten:
Received RPC "SetReadyReceive" on viewID 2 with a prefix of -1, our prefix is 1. The RPC has been ignored

obviously, the RPC names are just our functions
But i'm not intentionally doing anything tricky with view IDs or anything. What is going on? how do I go about tracking down this problem? It worries me that this only happens sometimes given the same situation.

Comments

  • Are you using scene viewIDs or do you instantiate them during runtime?
    It seems the IDs get mixed up. This could happen either by a bug in our code, or when you don't use PhotonNetwork.Instantiate and PhotonNetwork.Destroy.
    As we don't have known issues at the moment, please check if the issue could be on your side. If you can, send us reproduction code and we will check it out.
  • I don't have a repro case that i can nail down yet.

    In this case, the objects with the sceneview components are pre-existing in the scene when loaded, so they are not being created by photonnetwork.instantiate. So, I guess its relying on scene viewIDs
    This is the way it was before converting it to photon from unity networking. Is this not a supported pattern of doing things?
  • The Photon Unity Package v1.2 had a know issue with scene views. If you attached one to a disabled object, it didn't get a view id and thus caused issues.
    I submitted v1.3 to the asset store and hope it's online soon. The ID assigment got improved, so maybe updating to the new package does the trick for you.

    Give it a try when possible, ok?!
  • I have a similar issue which is when a level starts, the character (created using PhotonNetwork.instantiate)receives a random cloth from an array of materials, then I send a buffered RPC to all PhotonTargets in order to call the function that simply changes the renderer.material whith the chosen random material index. That way all joining people would see each players cloths of course.

    That works fine to everyone but the creator of the room which when I join the room from the editor, I receive the same error log as scritch: Received RPC "ChangeCloths" for viewID 1000 but this networkview does not exist!

    Its very easy to reproduce. Just let me know if you need the code.
  • The issue still persists in V1.3 downloaded from Asset Store.
  • Update:
    With the help of tutibueno (thanks again), we could reproduce the issue and found a big flaw in our implementation: Currently, all buffered RPCs will fail for joining players.
    Somehow this escaped us and most others within 3 months of testing.

    The solution seems relatively simple but of course we need some time to implement it on server and client alike.
    I will update you when we have something to test.
  • Thats a pretty big find actually.

    For us it was impossible to struggle over it in the end, we have no buffered RPCs, there is no 'join later' scenario for us :)
  • I had little experience with Unity Networking so I just assumed this worked as intended and wrote my own logic :oops:
  • Hehe, awesome!
    I hope our update is either not breaking your implementation or a good replacement.