Quick answer: Construct 3 Photon's async initialization causing the first event to fire before connect? Subscribe to PhotonReady event before any RPC calls.

Game start fires a 'request state' RPC; Photon not yet connected; RPC fails silently.

Wait for Photon ready

Subscribe to PhotonReady; queue early RPCs; flush on ready.

Or use a state machine

States: Disconnected, Connecting, Connected. Each gates allowed actions.

Pre-queue RPCs

Queue messages during connecting; send after connection. Lossless.

“Async init has its own timing. Code that runs before is the bug surface.”

For multiplayer, the connection state machine is foundational. Plan it.

Related reading