Quick answer: Godot 4 RPC sent to a peer that's in process of disconnecting causing async error? Peer ID is valid for a brief window after disconnect - validate via has_multiplayer_peer.
Server detects disconnect; client RPC arrives; server processes; error.
Check peer state
if multiplayer.get_peers().has(id):
multiplayer.rpc(id, method)Skip if not present.
Or wrap in try
RPC may error; catch; log; continue.
Audit RPC paths
Each RPC's pre-send validation. Defensive.
“Peer lifecycle has windows. RPC code must handle.”
Build a SafeRPC wrapper that validates; logs failures; doesn't crash. Reusable.