Repository navigation
Silent RPC failure? #3989
Description
Activity
- addedtype:bugBug ReportBug Reportstat:awaiting-triageStatus - Awaiting triage from the Netcode team.Status - Awaiting triage from the Netcode team.stat:reply-neededAwaiting reply from Unity accountAwaiting reply from Unity account
on May 15, 2026 - addedstat:InvestigatingIssue is currently being investigatedIssue is currently being investigated
on May 17, 2026 - removedstat:awaiting-triageStatus - Awaiting triage from the Netcode team.Status - Awaiting triage from the Netcode team.
on May 17, 2026 Hey @zachstronaut!
Sorry to hear you are encountering this issue.The script you pointed out in
RpcMessagedoes appear to yield silent failures and should indeed log a message for troubleshooting purposes (even though both checks mean something is really wrong...either missingNetworkBehaviouror the injected ILPP code doesn't exist).That area is within the
RpcMessageHelpersclass that is commonly used between universal RPCs (Rpc) and the legacy RPCS (ClientRpc and ServerRpc).If the RPC clients are invoking works most of the time but at times it appears to not work occasionally, then it could be this one area (only if you are adjusting the NetworkBehaviour components, add or remove, such that the index is invalid):
var networkBehaviour = networkManager.SpawnManager.SpawnedObjects[metadata.NetworkObjectId].GetNetworkBehaviourAtOrderIndex(metadata.NetworkBehaviourId); if (networkBehaviour == null) { return false; }It is an area we should add a warning to (for sure), but the underlying issue would be (if you are modifying the components) an order of operations-oriented issue where a client hasn't invoked the script to make the adjustments to that instance before the RPC is processed.
But... if you are just loading the scene once and not making any form of modifications to the components...then you might increase the spawn timeout value (unless you have it already maxed) in the event the client requires a message to be received prior to invoking the
ServerRpc(based on the description, not sure if this is the case or not) as that message could be getting dropped if it takes longer than the spawn timeout (the message that then triggers the client invoking the RPC...if such a thing exists).If none of this sounds anywhere close to what "could" be happening, then we will need some kind of log from the client-side (if possible) and additional information regarding the order of operations/logic that occurs up to the point where the client invokes the
ServerRpcin question.Reacted by Zachary Johnson- addedstat:awaiting-responseAwaiting response from author. This label should be added manually.Awaiting response from author. This label should be added manually.and removedstat:reply-neededAwaiting reply from Unity accountAwaiting reply from Unity account
on May 17, 2026 We are going to have LogLevel Developer for development builds for now on, with some additional new logging of our own, so if it does happen again we may have more info for you.
Adding/reordering components is something we only do in one place, and I think not on this gameobject. I will look into that more closely.
And I'll bump up timeouts a bit again, too.
Thanks!
Reacted by Noel Stephens- addedstat:reply-neededAwaiting reply from Unity accountAwaiting reply from Unity accountand removedstat:awaiting-responseAwaiting response from author. This label should be added manually.Awaiting response from author. This label should be added manually.
on May 19, 2026 Thank you for bringing this to our attention and being so active over the years!
Reacted by Zachary Johnson and Squashi- addedstat:awaiting-responseAwaiting response from author. This label should be added manually.Awaiting response from author. This label should be added manually.and removedstat:reply-neededAwaiting reply from Unity accountAwaiting reply from Unity account
on May 19, 2026 - addedstat:importStatus - Issue is going to be saved internallyStatus - Issue is going to be saved internally
on May 21, 2026 - addedstat:importedStatus - Issue is tracked internally at UnityStatus - Issue is tracked internally at Unityand removedstat:importStatus - Issue is going to be saved internallyStatus - Issue is going to be saved internally
on May 26, 2026 - removedstat:awaiting-responseAwaiting response from author. This label should be added manually.Awaiting response from author. This label should be added manually.stat:InvestigatingIssue is currently being investigatedIssue is currently being investigated
on May 29, 2026
Description
We have confirmed a ServerRPC being invoked on a Client and never invoking on the Host+Server through a Log immediately before calling the ServerRPC on the client and a Log inside the ServerRPC on the server. We didn't have log levels set to Developer at the time we captured this happening, so we're unsure the cause or if the higher log level would have perhaps mentioned something. This was in Netcode 2.7.0. It seems to happen rarely when additively loading the next game level, perhaps when loading that level is slow. The ServerRPC in question lives on a NetworkObject in a scene that never gets unloaded.
But also, I noticed that in RpcMessages.cs in all Netcode versions through 2.11.2 the Deserialize method has what look like two silent failures. Are these in fact potential silent failures?
Environment